AutoCAD LISP ile Otomasyon: Başlangıç Rehberi

· 3 dk

AutoLISP, AutoCAD'in kırk yıla yakın süredir sunduğu, kullanıcının kendi komutunu yazmasını sağlayan dildir. Birçok ofisin çizim standardı, yıllar içinde biriken LISP rutinleriyle ayakta durur: katman kurulumu, otomatik ölçülendirme, blok nitelik güncelleme, pafta numaralandırma. Bu rutinler ofisin gizli sermayesidir ve yalnızca AutoLISP'i tam destekleyen bir ortamda çalışır. Bu yazı, LISP'e sıfırdan başlayanlar için ilk adımı, deneyimli kullanıcılar için ise düzenli kullanımı kolaylaştıran araçları anlatır.

Neden LISP?

Action Recorder ve script, sabit adımları tekrarlar; LISP ise karar verir. "Seçilen tüm dairelerin çapını yanına yaz", "bu bloğun niteliklerini Excel'den oku", "paftaların hepsine sıradaki numarayı ver" gibi mantık gerektiren işler LISP ile birkaç satırda çözülür. Kod, düz metin dosyasıdır; kurulum gerektirmez; abonelik boyunca tüm sürümlerde çalışır.

İlk komutunuz: Katman kurulumu

Aşağıdaki örnek, ofis standardındaki üç katmanı renk ve çizgi tipiyle oluşturan bir komut tanımlar:

(defun c:KATMANLAR ()
  (command "-LAYER" "M" "A-DUVAR" "C" "1" "" "")
  (command "-LAYER" "M" "A-KAPI"  "C" "3" "" "")
  (command "-LAYER" "M" "A-OLCU"  "C" "7" "L" "CONTINUOUS" "" "")
  (princ "\nKatmanlar hazir.")
  (princ)
)

Kodu bir metin düzenleyicide .lsp uzantısıyla kaydedin, APPLOAD ile yükleyin ve komut satırına KATMANLAR yazın. Kodu her açılışta otomatik yüklemek için APPLOAD içindeki Startup Suite'e ekleyin ya da acaddoc.lsp dosyasına load satırı yazın.

Kullanıcıdan bilgi almak

Aşağıdaki örnek, seçilen dairelerin yanına çap değerini metin olarak yazar:

(defun c:CAPYAZ (/ ss i ent obj r p)
  (setq ss (ssget '((0 . "CIRCLE"))))
  (if ss
    (repeat (setq i (sslength ss))
      (setq ent (ssname ss (setq i (1- i)))
            obj (entget ent)
            r   (cdr (assoc 40 obj))
            p   (cdr (assoc 10 obj)))
      (command "TEXT" (polar p 0 (* r 1.2)) 2.5 0
               (strcat "D" (rtos (* 2 r) 2 1)))
    )
  )
  (princ)
)

Bu on satır, yüz delikli bir plakada dakikalar süren işi tek komuta indirir.

Komut takma adları (PGP)

LISP yazmadan hız kazanmanın en kolay yolu acad.pgp dosyasıdır. Sık kullandığınız komutlara kendi kısaltmalarınızı tanımlayın: örneğin "KK" için KATMANLAR. Options > Files altında dosya yolunu bulun, düzenleyin, REINIT ile yeniden yükleyin. Ekip için ortak bir pgp dosyası standardı, herkesin aynı kısaltmaları kullanmasını sağlar.

CUI: Komutları şeride taşıyın

CUI (Customize User Interface) ile LISP komutlarınızı şeride, araç çubuğuna veya sağ tık menüsüne düğme olarak ekleyin. Kod bilmeyen ekip üyeleri komutu düğmeden çalıştırır; standart yaygınlaşır. Özelleştirmeleri ana CUIx yerine ayrı bir partial CUIx dosyasında tutun; sürüm geçişlerinde taşınması kolaylaşır.

Otomatik ölçülendirme örneği

Üretim çizimlerinde en çok zaman alan iş ölçülendirmedir. Seçilen tüm yatay çizgilere otomatik uzunluk ölçüsü koyan bir LISP, DIMLINEAR komutunu çizgi uç noktalarıyla döngüde çağırır. Cadbim eğitim ekibi, bu ve benzeri hazır rutinleri eğitim katılımcılarıyla paylaşır.

Kodunuz ofisin varlığıdır

LISP rutinleri, şablon ve tool palette dosyalarıyla birlikte ofisin çizim standardını oluşturur. Bu dosyaları sürüm kontrolüyle ortak klasörde saklayın, kim yazdı ve ne işe yarıyor bilgisini kod başına yorum olarak ekleyin. Yeni sürüme geçişte tümü sorunsuz çalışır; farklı bir CAD ortamına geçiş düşünüldüğünde ise bu birikimin birebir taşınabilirliği mutlaka test edilmelidir — CAD yazılımı seçerken sorulacak 10 soru bu testi ikinci maddesine alır.

Devam etmek için

Cadbim'in AutoCAD ileri seviye eğitimi, AutoLISP'e ayrılmış bir modül içerir. Bu yazıdaki örneklerin canlı yazılıp çalıştırılması ve katılımcıların kendi tekrar işleri için rutin geliştirmesi, Cadbim webinar oturumlarının kapsamındadır.

AutoCAD'i kendi projelerinizde değerlendirin

Deneme kurulumu talebiyle ürünü kendi dosyalarınızla sınayabilir, güncel webinar programındaki AutoCAD oturumlarını inceleyebilirsiniz.

Deneme Kurulumu Talep Et Webinar Programı
İş Ortaklarımız
AutodeskAdobeHPChaosUltiMakerSketchUpLumionTrimbleMicrosoft