Etiketler

AutoCAD (63) bedava (48) Dosya (34) Resim (33) program (21) Ziyaretçi Defteri (20) excel (18) Eğitim (17) Güncelleme (17) Nasıl yapılır (16) asgbookphp (16) VBA (15) Şablon (15) Qbasic (14) php (14) online (13) Fotoğraf (12) Freeware (12) PHP script (12) Visual Basic (12) Kaynak kod (11) Dos (10) SolidWorks (10) ürünler (9) E-book (8) Photoshop (8) tutorial (6) Ders (5) Lisp (5) Word (5) Programlama (4)

Youtube Kanalıma Abone Olunuz

10 Ağustos 2019 Cumartesi

AutoCAD ile VBA makro kullanımı #5-3

Yazının önceki bölümü: AutoCAD ile VBA makro kullanımı #5-2

6) Lisp ile AutoCAD komutu oluşturarak makro çalıştırma

AutoCAD'de programlama için kullanılan dillerden biri de LISP'dir. Lisp hakkında başlangıç seviyesinde bir yazımı okumak için: AutoLisp ile programlama: Orijine zumla

Autocad'de LISP kodlamak için AutoCAD ile birlikte kurulan Visual Lisp for AutoCAD kullanılabilir ancak "Lisp ile AutoCAD komutu oluşturarak makro çalıştırma" için bunu kullanmayacağım. LISP kodları yazmak için Visual LISP şart değildir. Herhangi bir metin editörü kullanılabilir.

VBA makro kodlarının çalıştırılması için VBA içinde AutoCAD komut tanımlaması yoktur. LISP'de ise LISP komutlarını çalıştıracak AutoCAD komut tanımlaması yapılabiliyor.
LISP'in bu özelliğinden faydalanarak oluşturduğumuz VBA makrolara AutoCAD komutu tanımlayacağız.

İşlem çok basittir. Bu iş için LISP dillinde kodlamayı bilmek şart değildir.
Eksen Çiz VBA makromuz için LISP ile bir AutoCAD komutu oluşturacağız.

Bunun için;
Bir metin editörü(Örneğin Windows Not Defteri = notepad.exe, ya da Notepad++) açıp aşağıdaki kodları ekleyin.

(defun c:EC()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!EksenCiz")
(princ)
)

Dosyayı EksenCiz.lsp olarak kaydedin. Windows'da dosya uzantılarınız gizli ise ayarlardan görünür yapın.


LISP kodlarındaki c:EC() Autocad komut satırından girilecek komut adıdır(EC), alt satır ise bu komut girildiğinde buna karşılık gelen komutu ve parametresini belirtir.
EC yerine başka bir ad verilebilir. EKSENCIZ gibi.

Lisp dosyayı AutoCAD'e yüklemek için bir kaç yol var ancak burada en basit olanı göstereceğim.

Masaüstüne kaydettiğimiz EksenCiz.lsp dosyasını sürükleyip AutoCAD çizim alanına bırakın.
VBA makroları yüklerken olduğu gibi bir güvenlik uyarısı gelecek. Burda Load Once tıklayın. Bir dahakinde sormasını istemiyorsanız Always Load tıklayın.

Artık komut satırından EC girilerek Eksen Çiz VBA makrosu çalıştırılabilir.
İlk çalıştırmada VBA makro yüklü değilse dosyayı belleğe yükleyeceği için üstteki gibi güvenlik uyarısı çıkabilir. Load Once tıklayın.

Eğer birden fazla VBA makro kodu varsa bunlara ayrı ayrı lsp dosya oluşturmak şart değildir.
Bir lsp dosyada tüm VBA makro kodları için ayrı ayrı AutoCAD komutu tanımlanabilir.

Aşağıdaki gibi:
(defun c:EC()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!EksenCiz")
(princ)
)

(defun c:DIKDORTGEN()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!Dikdortgen")
(princ)
)

(defun c:SLOT()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!Slot")
(princ)
)

7) Userformda komut butonu ile makro çalıştırma

........ Hazırlanıyor ........

8 Ağustos 2019 Perşembe

AutoCAD ile VBA makro kullanımı #5-2

Autocad VBA Makro Kodlarını Çalıştırma Yöntemleri

Yazının önceki bölümü: AutoCAD ile VBA makro kullanımı #5-1

4) AutoCAD komut butonu ile makro çalıştırma

Komut satırından -VBARUN C:\Users\Mesut\Desktop\Makrolarim.dvb!EksenCiz yazmak yerine bu kodları giren bir AutoCAD butonu oluşturarak makronun çalıştırılması sağlanabilir. Bu işlem, makroyu çalıştırmada kolaylık sağlayacaktır.

Bunun için;
Komut satırından CUI komutu(Customize User Interface = Özelleştirme Kullanıcı Arabirimi) verilir ya da menüden Manage / Customization / User interface tıklanır.

Açılan pencerede; Customize tab'ı seçili iken altındaki açılır listeden Main Customization File(acad.cuix) seçilir. Bu AutoCAD'in kullandığı ana özelleştirme dosyasıdır.
Bu dosyanın hangi konumda olduğunu öğrenmek için bu penceredeki ACAD simgesi tıklanır, sağ bölmede Filename yanında konum görünür. Bendeki bilgisayarda şu adreste görünüyor. C:\Users\Mesut\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\enu\support\acad.cuix
Bu konum sizin bilgisayarda farklı olacaktır

İşlemlere başlamadan önce bu dosyanın bir yedeğini almanızda fayda var. Gerçi bu pencereden ACAD üzerinde sağ tıklayıp açılan menüden RESET ACAD.CUİX tıklayarak ayarları ilk kurulum haline getirebiliyoruz.

Sonraki işlem: Komut butonu eklemek.
Burada yeni bir komut butonu oluşturmak yerine işlemlerin hızlı olması için ben var olan bir komut butonunu çoğaltıp onun üzerinde değişiklik yapacağım.
Böylece komut butonu simgesi(icon) ayarları için uğraşmayacağım. Oluşturacağım eksen çizme butonu için en uygun simgeyi Center Mark butonunda gördüm onu çoğaltacağım.

Center Mark komutunu Command List listesini kaydırarak ya da arama metin kutusuna center mark yazarak bulabilirsiniz.
Center Mark üzerinde sağ tıkla / Duplicate tıkla. Bir tane daha Center Mark oluşacak.
Orijinal olanın Element ID özelliği ID_Centermark. Bunu değil diğer yeni oluşan Center Mark'ı tıklayıp sağ alt bölmede aşağıdaki değişiklikleri yapın.

Name: Eksen Çiz
Description: Daire ya da yaylara eksen çizer
Macro: ^C^C_.-VBARUN "C:/Users/Mesut/Desktop/Makrolarim.dvb!EksenCiz"

Makro dosya adresi, Autocad komut satırından girilirken \ (ters bölü) işaretini kabul ederken burada, web adreslerinde olduğu gibi / (bölü) işareti kullanmak gerekiyor.

Buradaki Macro kodu VBA makro kodu ile karıştırılmasın. Bu AutoCAD makro kodudur. Farklı bir kodlama yapısı vardır. Ayrı bir konu başlığı olarak incelenmelidir. Çok detaya girilmeden kısa açıklayacağım.
^C^C : İki kere ESC tuşudur. Bu da komut verildiğinde çalışan bir AutoCAD komutu varsa ondan çıkış yapar.
_(alt tire) : Yerelleştirilmiş komut adını değil, genel komut adını kullanması.
.(nokta) : Var olan yeniden tanımlanmış komutu değil, komutun standart tanımını kullanması.
-(eksi) : Daha önce açıklamıştım, komut parametrelerinin iletişim penceresinden değil komut satırından girilmesi.

Button Image ile ilgili bir şey yapmama gerek kalmadı. İsterseniz kendinize uygun bir simge seçebilir ya da var olanı Edit ile düzenleyebilirsiniz.

Bu işlemlerden sonra Apply tıklanır. Ayarlar kaydedilip uygulanmış olur.
Burada OK ile çıkış yapılabilir ancak Eksen Çiz komut butonunu oluşturduğumuz halde Autocad'de buna erişecek bir imkan bulunmaz.
Komutun erişebilir olması için birkaç seçenek var. Ribbon, Toolbar, Quick Access Toolbar ...
Burada konuyu çok dallandırmamak için en kolay ve hızlı olanı seçeceğim. Quick Access Toolbar. Diğerleri ayrı bir konu gerektirir.

OK butonu tıklamadan önce (eğer tıklandı ise sorun değil CUI komutu ile aynı yere ulaşabilirsiniz.) sol bölmedeki komut listesinden Eksen Çiz komutunu fare ile sürükleyip Autocad penceresindeki Quick Access Toolbar(Hızlı erişim araç çubuğu) üzerine sürükleyip bırakın. OK tıklayın.

Artık Quick Access Toolbar üzerindeki Eksen Çiz butonu ile Eksen Çiz VBA makro kodu kolaylıkla çalıştırılabilir.

5) Klavye Kısayolu ile makro çalıştırma

VBA makro kodlarını çalıştırmanın bir başka yolu da klavyeden bir ya da birden fazla tuşa basmaktır. AutoCAD kullanırken zaten bazı klavye kısayollarını kullanıyoruz. Örneğin: Ortho modu değiştirmek için F8, Osnap modu değiştirmek için F3, Seçili nesnenin özelliklerini görmek için CTRL+1 ... vb. çok sayıda kısayol vardır.
AutoCAD'de bu kısayolları düzenleme, ekleme ve silme özellikleri bulunmaktadır.
Bu işlemleri yapmak için CUI komutu kullanılır.

Eğer oluşturmadıysanız üstteki "4) AutoCAD komut butonu ile makro çalıştırma" başlığı altındaki açıklamalardan yardım alarak "Eksen Ciz" komut butonunu oluşturun.
Butonu Araç çubuğuna eklemeseniz de olur.

CUI komutunu verin.
Listeden acad.cuix'i seçin
Altındaki listede Keyboard Shortcuts yanındaki +(artı) tıklanarak alt listeyi açın
Açılan listedeki Shortcut Keys yanındaki +(artı) tıklanarak alt listeyi açın.
Command List bölmesindeki listede oluşturduğumuz Eksen Çiz komutunu bulun. Kolayca bulmak için arama kutusuna eksen çiz yazın.
Eksen Çiz komutunu fare ile sürükleyip üst listedeki Shortcut Keys üzerine ya da onun altındaki bir eleman arasına bırakın.

Shortcut Keys altındaki az önce eklediğimiz Eksen Çiz elemanını seçin. (Alt bölmedeki Eksen Çiz değil)
Eksen Çiz seçili iken sağ bölmede Key(s) yanındaki kutucuğun sağındaki ...(üç nokta) butonunu tıklayın

Açılan pencere klavyeden CTRL+5 'e basın(CTRL basılı iken harf tuşlarının üzerindeki 5 tuşuna basın)
Farklı bir tuş ya da tuş kombinasyonu da olabilir ancak daha önceden aktif edilmiş tuş yada tuş kombinasyonlarını kullanmayın. Kullanılmamış bir klavye kısayolu seçerseniz altta [unassigned] yazar.(unassigned = atanmamış) Diğer durumda kısayolun hangi komuta atandığı bilgisi görünür.
Apply ve OK tıklanır.
Böylece CTRL+5 klavye kısayolu ile Eksen Çiz VBA makro kodu kolaylıkla çalıştırılabilir.

Yazının sonraki bölümü: AutoCAD ile VBA makro kullanımı #5-3

6 Ağustos 2019 Salı

AutoCAD ile VBA makro kullanımı #5-1

Autocad VBA Makro Kodlarını Çalıştırma Yöntemleri

Yazının önceki bölümü: AutoCAD ile VBA makro kullanımı #4-2

Yazının bu bölümünde AutoCAD VBA kodlarını çalıştırma yöntemlerini açıklayacağım.
Bu yöntemlerden bazılarını önceki bölümlerde göstermiştim. Bu yazıda ise tüm yöntemleri detaylı olarak açıklayacağım.

1) VBA Editöründen makro çalıştırma:

VBA editöründeyken;
a) Klavyeden F5'e basarak,
b) Menüden Run / Run Sub/Userform tıklanarak,
c) Araç çubuğundan Run Sub/Userform simgesi tıklanarak
kodlar çalıştırılır. Kodlar çalışırken Autocad ekranı öne gelmez Autocad ekranındaki işlemler için Autocad'e geçiş yapılmalıdır. Kodların çalışması tamamlandığında VBA editörüne otomatik geçiş yapar.

İmleç hangi Sub içinde ise o Sub kodları çalıştırılır. İmleç Sub dışında bir satırda ise Macros Penceresi açılır hangi makro çalıştırılacağı sorulur. Burada makro adı listeden seçiler ve Run butonu tıklanır.

 Kodları adım adım çalıştırmak gerekirse; klavyeden F8 tuşuna basılır ya da menüden Debug / Step Into tıklanır. 

İmlecin bulunduğu satıra kadar çalışıp imlecin bulunduğu satırda durmak için menüden Debug / Run to Cursor (CTRL+F8)

Çalışan kodları duraklatmak için menüden Run / Break tıklanır ya da klavyeden CTRL+Break, kaldığı yerden çalıştırmaya devam etmek için menüden Run/Continue, klavyeden F5
Çalışan kodları durdurmak(sonlandırmak) için menüden Run / Reset

Kodlar çalıştırılırken istediğiniz satır ya da satırlarda duraklamasını isterseniz imleç satırda iken klavyeden F9'a basılır ya da menüden Debug / Toggle Breakpoint tıklanır ya da kod satırının solundaki dikey çubuk üzerinde tıklanır. Burada bir duraklama noktası oluşur. Duraklama noktasını kaldırmak için aynı işlem uygulanır.

Tüm duraklama noktalarını kaldırmak için klavyeden CTRL+SHIFT+F9, menüden Debug / Clear All Breakpoints tıklanır.

2) Macros pencesinden makro çalıştırma

Macros penceresini açmak için yöntemler;
  1. Klavyeden ALT+F8'e basarak,
  2. Menüden Manage / Applications / Run VBA Macro tıklanarak,
  3. Komut satırından VBARUN girilerek,
  4. VBA Manager(VBAMAN komutu ile açılır) penceresindeki Macros butonu tıklanarak.

Macros penceresinde makro listesinden çalıştırılacak makro adı seçilir. Seçili makro adı üst alanda belirir.
Run butonu tıklanarak makro çalıştırılır.
Step into butonu ile seçili makro adım adım çalıştırılır.
Edit butonu ile VBA editöründe seçili makro kodu açılır.
Delete butonu ile seçili VBA makro kodu silinir.

"Macros in:" yanındaki açılır listede varsayılan olarak All active drawings and project seçili gelecek.
Bu açılır liste makro listesinde hangi makroların gösterileceğini belirler.

All active drawings and project: Aktif çizim dosyalarındaki gömülü(embed) ve yüklü projelerdeki makroları listeler. Yani aktif olan tüm makrolar listelenir.
All active drawings: Aktif çizim dosyalarına gömülü(embed) makroları listeler.
All active projects: dvb proje dosyalarından yüklenen makroları listeler.
Ayrıca listede beliren dosya adı tıklandığında sadece o dosyada bulunan makrolar listelenir.
Listede Global3 olarak görünen ise kaydedilmemiş proje dosyasıdır.

3) Komut Satırından makro çalıştırma

Komut satırından makro çalıştırmak için;
-VBARUN komutu girilir ardından ENTER ya da boşluk tuşuna basılır,
sonra makro adı yazılır
Örneğin:
-VBARUN EksenCiz

Burada VBARUN yerine -VBARUN kullanıldığına dikkat ediniz. Autocad komutlarının başına -(eksi) eklemek o komutun parametrelerinin bir pencere ile değilde komut satırından girileceğini belirtir. Böylece Lisp, Autocad VBA, Script gibi kodlamalarda komut kullanımına kolaylık sağlanmış olur. (Bu özellik iletişim penceresi açan tüm komutlara uygulanabilir. Örneğin LAYER yerine -LAYER deneyiniz.)
Makro adı olarak belleğe yüklü olan makrolardan birinin adı olabileceği gibi belleğe yüklenmemiş bir dosyadaki makro adı da yazılabilir. Ancak makro adı ile birlikte dosya adı ve yolu da belirtilmelidir.
Kullanımı:
-VBARUN Dosyayolu\DosyaAdı!MakroAdı
Dosya adı ve makro adı bir !(ünlem işareti) ile ayrılır
Örnek:
-VBARUN C:\Users\Mesut\Desktop\Makrolarim.dvb!EksenCiz

Bu işlem makro proje dosyasını(C:\Users\Mesut\Desktop\Makrolarim.dvb) belleğe yükleyip adı verilen makronun(EksenCiz) çalışmasını sağlar.
Aynı komutu tekrar etmek bir sorun oluşturmamaktadır. Dosya zaten yüklü olduğu için tekrar yükleme yapılmadan makro çalıştırılır.

Çok az rastlanan bir durumdur ama aynı proje dosyasında aynı isimde birden fazla makro olabilir. Yani örnekte olduğu gibi C:\Users\Mesut\Desktop\Makrolarim.dvb dosyasında birden fazla EksenCiz makro kodu olabilir. Bu karışıklığı önlemek için makronun hangi modülde olduğunu belirtmek gerekir. Aşağıdaki örnekler gibi

-VBARUN C:\Users\Mesut\Desktop\Makrolarim.dvb!ThisDrawing.EksenCiz
-VBARUN C:\Users\Mesut\Desktop\Makrolarim.dvb!Module1.EksenCiz

Yazının sonraki bölümü: AutoCAD ile VBA makro kullanımı #5-2

27 Temmuz 2019 Cumartesi

Microsoft Visual C++ Redistributable Paketleri

Güncelleme: 27 Temmuz 2019
Visual C++ ile yazılmış uygulamalar çalışma sırasında bazı kütüphane dosyalarına ihtiyaç duyar.
Bunlar sisteminizde kurulu değilse uygulama hata vererek çalışmayı durdurur.
İşte bu ihtiyaç duyulan dosyalar Microsoft tarafından yeniden dağıtılabilir paket (Redistributable Package) halinde sunulmaktadır.
Aşağıdaki linkleri kullanarak sisteminizde eksik olan dosyaları indirip kurabilirsiniz.

Paket AdıSürüm NoSürüm Tarihi
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update
32-Bit - 64-Bit
07.06.2011
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package MFC Security Update
32-Bit - 64-Bit
9.0.30729.567707.06.2011
Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update
32-Bit - 64-Bit
10.0.40219.32509.08.2011
Microsoft Visual C++ 2012 Update 4 Redistributable Package
32-Bit - 64-Bit
11.0.61030.020.11.2013
Microsoft Visual C++ 2013 Update 5 Redistributable Package
32-Bit - 64-Bit
12.0.40660.028.07.2016
Microsoft Visual C++ 2015 Update 3 Redistributable Package
32-Bit - 64-Bit
14.0.24215.115.09.2016
Microsoft Visual C++ 2017 RTM Redistributable Package
32-Bit - 64-Bit Not: Microsoft Visual C++ 2017 sürümü Microsoft Visual C++ 2015 sürümünün yerine geçer.
14.16.27027.130.03.2019
Microsoft Visual C++ 2019 RTM Redistributable Package
32-Bit - 64-Bit Not: Microsoft Visual C++ 2019 sürümü Microsoft Visual C++ 2015 ve 2017 sürümünün yerine geçer.
14.22.27821.027.07.2019