Etiketler

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

12 Aralık 2017 Salı

AutoCAD ile VBA makro kullanımı

AutoCAD özelliklerini geliştirmek ve isteğe özel uygulamalar ve işlevler kazandırmak için VBA makroları kullanılabilir.
VBA kısaltmasının açılımı Visual Basic for Application(Uygulamalar için Visual Basic)dir.

BASIC öğrenilmesi ve kodlaması en kolay olan programlama dilidir. Microsoft Visual Studio Programlama seti içerisinde MS Visual Basic bulunur. Bununla Windows uygulamaları geliştirip derleyebilir ve çalışabilir EXE dosyaya dönüştürebilirsiniz.

Öğrenmesi kolay bir dil olduğundan MS Office paketlerinin her sürümünde VBA eklenti olarak bulunmaktadır. Özellikle Excelde VBA yaygın olarak kullanılmaktadır. VBA'nın, Visual Studio'daki Visual Basic gibi program derleme ve exe dosyaya dönüştürme özelliği yoktur. Ancak kodlama mantığı VS'deki gibidir. VS'deki kodların çoğunluğu VBA ile uyumludur.

Office'de olan bu yararlı özellik AutoCAD'e de eklenmiştir. Kullanımı, kodlaması, çalıştırma yöntemi vs. Office VBA ile aynıdır.

AutoCAD 2013 sürümüne kadar AutoCAD kurulum paketleri içinde VBA modülü bulunuyordu ancak 2013'den sonraki sürümlerde VBA modülü kuruluma dahil edilmemiştir. VBA modülünü kurmak isteyenler AutoCAD kurulumundan sonra internetten modülü indirip kurması gerekiyor. Modül ücretsizdir.

Eğer kullandığınız AutoCAD sürümü 2013'ten sonrası ise www.autodesk.com/vba-download adresinden kullandığınız AutoCAD sürüme uygun VBA modülünü indirip kurunuz.

AutoCAD için VBA modülü kurulu ise klavyeden ALT+F11'e (Office'de olduğu gibi) basarak ya da VBAIDE komutu ile VBA editörüne geçilir. Kurulu değilse aşağıdaki gibi VBA kurulu değil diye belirten bir uyarı çıkacaktır. Bu durumda verilen adresten modülü indirip kurunuz.
Office VBA kullananlar AutoCAD VBA editöründe yabancılık çekmeyecektir.

KOD GİRME

(Verilen örnek kodlar AutoCAD 2007 ve AutoCAD 2017'de denenmiştir)
Örnek olarak bir kod ekleyelim.

ALT+F11 ile ya da VBAIDE komutuyla VBA editörünü açın.
Kod eklemek için sol bölmedeki ThisDrawing'i çift tıklayın. Sağ tarfta Kod alanı açılacak.
Kod alanına aşağıdaki kodları ekleyin.

Sub Merhaba()

MsgBox "Merhaba Dünya !"

End Sub

Bu verdiğim kod VBA için en basit kod tabii ki. İşlevi Ekrana bir mesaj kutusu ile Merhaba Dünya ! yazdırmak.

KODLARI ÇALIŞTIRMA:

Kodları çalıştırmak için birkaç yol var:
Klavyeden F5'e basabilir,
Çalıştır simgesi tıklanabilir,
Menüden Run / Run Sub/UserForm tıklanabilir.

AutoCAD penceresi aktifken VBA kod çalıştırmak için ise;
Klavyeden ALT+F8,
Komut satırından VBARUN,
Ribbon menüden Manage / Applications / Run VBA Macro tıklanabilir.

Üsttekilerden birini uyguladığımızda hangi makroyu çalıştıracağımızı soran bir pencere açılacak.
Şimdilik bir makro var ama daha çok makro da olabilirdi.

Bu pencerede Run tıklanarak makro çalıştırılır.
Kodlarda bir hata yoksa aşağıdaki gibi bir ileti penceresinde Merhaba Dünya ! yazacaktır.
Evet biliyorum bu çok çok basit bir kodlama oldu. AutoCAD çizim programı hani? Çizim yapan kod nerede? diyeceksiniz. Bu kodu vermemdeki amaç kodlamanın nasıl yapıldığını en basit haliyle açıklamaktı.

Şimdi kodlarla bir çizgi çizelim.
Kod alanındaki kodları silin ya da kodların altındaki boş satıra aşağıdaki kodları ekleyin.

Sub CizgiCiz()
    Dim lineObj As AcadLine
    Dim bslNokta(0 To 2) As Double
    Dim btsNokta(0 To 2) As Double
    bslNokta(0) = 10#: bslNokta(1) = 10#
    btsNokta(0) = 50#: btsNokta(1) = 40#  
    Set lineObj = ThisDrawing.ModelSpace.AddLine(bslNokta, btsNokta)
    ZoomAll
End Sub

Kodları çalıştırdığınızda model alanında (10,10) koordinatından (50,40) koordinatına uzanan bir doğru çizgi çizildiğini göreceksiniz

Kodların açıklaması:
Sub CizgiCiz()

Dim lineObj As AcadLine
Çizgi çizebilmek için lineObj adında AcadLine nesnesini örnek alan
bir değişken oluşturuluyor
Dim bslNokta(0 To 2) As Double
Dim btsNokta(0 To 2) As Double
Başlama ve bitiş noktalarını belirtmek için 2 tane 3 boyutlu değişken 
oluşturuluyor.
AutoCADde bir nokta 3 boyut ile belirtilir. 0.boyut X için
1. boyut Y için
2. Boyut Z için
bslNokta(0) = 10#: bslNokta(1) = 10#
Değişkenlere değer atanıyor. Başlangıç noktası için XYZ değerleri 10,10,0 
olacak.
Z değeri girilmedi. Varsayılan olark 0 kabul edilir. kod ile girilecek olursa
bslNokta(2) = 0#
yazılır.
x=10 diye belirtmek için bslNokta değişkeninin 0. boyuta 10 değeri aktarıldı
y=10 için bslNokta değişkeninin 1. boyutuna 10 değeri aktarıldı
btsNokta(0) = 50#: btsNokta(1) = 40#
Bitiş noktası için XYZ değerleri 50,40,0 olacak
Set lineObj = ThisDrawing.ModelSpace.AddLine(bslNokta, btsNokta)
Bu çizim çalışmasının Model Alanına başlangıç ve bitiş noktaları verilen çizgiyi 
çiz
ZoomAll
Tüm çizimi ekrana yaklaştır
End Sub

Evet, bilenler için bu da çok basit bir koddu. Ancak yeni başlayanlar için iyi bir başlangıç olacaktır.

Şimdi biraz daha geliştirelim kodları. Bu kodlar öncekine göre daha interaktif olacak. Kullanıcıdan başlangıç ve bitiş noktalarının koordinatlarını isteyecek.
Koordinatları AutoCAD komutlarında olduğu gibi fare ile tıklayarak ya da klavye ile koordinat girerek verebiliriz.

Kod alanına aşağıdaki kodları girin:

Sub CizgiCizInteraktif()
    Dim lineObj As AcadLine
    Dim bslNokta As Variant, btsNokta As Variant
        
    bslNokta = ThisDrawing.Utility.GetPoint(, "Başlangıç noktasını belirtin:")
    btsNokta = ThisDrawing.Utility.GetPoint(bslNokta, "Bitiş noktasını belirtin:")
    
    Set lineObj = ThisDrawing.ModelSpace.AddLine(bslNokta, btsNokta)
End Sub


Kodları çalıştırdığınızda Başlangıç noktasını girmenizi isteyecek, nokta girildikten sonra bitiş noktasını isteyecek, nokta girildikten sonra 2 nokta arası çizgi ile birleştirilecek.

GetPoint fonksiyonu ekranda bir nokta belirtmenizi ister bunu fare ile bir koordinatı tıklayarak veya diğer komutlarda olduğu gibi klavyeden 50,40 ya da @100,50 ya da @100<60 ya da #100,50 gibi değerler girebilirsiniz.

Umarım yeni başlayanlar veya AutoCAD'de VBA kodlamayı merak edenler için faydalı olmuştur.
Sonraki yazımda VBA kodları ile belirtilen noktaya eksen çizgileri çizen kodları yazmayı düşünüyorum.

Konuyla ilgili sonraki yazı: AutoCAD VBA makro: Eksen çizimi

İlgili Video:

6 yorum:

  1. cok güzel devamı varmı.kıtap yada site tavsiye edermisiniz. 05313248698 saitcandemir@hotmail.com

    YanıtlaSil
    Yanıtlar
    1. benim kitap ya da cd'im yok.
      googleda aratırsanız ingilizce pdf dosyalar bulabilirsiniz.

      Sil
  2. the macros in this project are disabled hatası alıyorum sorunu nasıl düzeltebilirim?

    YanıtlaSil
    Yanıtlar
    1. makro güvenlik ayarlarında makroların çalışmasına izin vermelisiniz.

      Sil

Related Posts Plugin for WordPress, Blogger...