AutoCAD Kılavuzu

AutoCAD LISP ve otomasyona giriş: APPLOAD, script, ilk komut

AutoCAD'de bir LISP dosyasını yüklemek için APPLOAD komutunu açıp .lsp dosyasını seçer ve Load dersiniz; her açılışta yüklenmesi için aynı penceredeki Startup Suite'e eklersiniz. Bu bölüm LISP yüklemeyi, ilk kendi komutunuzu (defun c:...) yazmayı, .scr script dosyalarını ve Action Recorder'ı adım adım anlatır.

KNCad Ekibi8 dk okumaAutoCAD Kılavuzu

AutoLISP nedir, ne işe yarar?

AutoLISP, AutoCAD'in içinde çalışan bir programlama dilidir. Bir LISP dosyası (.lsp) yeni komutlar tanımlar: komut satırına yazdığınız kısa bir ad, arka planda AutoCAD komutlarını sırayla çalıştırır, hesap yapar, kullanıcıdan nokta ve nesne ister.

Tipik kullanımlar:

  • Her gün aynı sırayla yapılan işler: katman oluşturma, temizlik, çıktı ayarı.
  • Hesap gerektiren çizimler: seçilen polyline'ın alanını m² olarak yazmak, uzunlukları toplamak.
  • Ofis standardını zorlamak: doğru katmanda, doğru yazı yüksekliğiyle çizim.

Otomasyonun üç düzeyi vardır ve öğrenmeye bu sırayla başlamak mantıklıdır:

AraçNe yapar?Zorluk
Script (.scr)Komut satırına yazılacakları sırayla çalıştırırKolay
Action Recorder (.actm)Yaptığınız işlemleri kaydedip tekrar oynatırKolay
AutoLISP (.lsp)Koşul, döngü, hesap içeren yeni komutlarOrta

AutoLISP tam AutoCAD'de uzun zamandır vardır. AutoCAD LT'nin yeni sürümlerine de AutoLISP desteği eklendi; LT kullanıyorsanız kendi sürümünüzde APPLOAD komutunun bulunup bulunmadığına bakın ve bazı gelişmiş fonksiyonların LT'de çalışmayabileceğini hesaba katın. GstarCAD de AutoLISP dosyalarını çalıştırır ve APPLOAD komutu orada da aynı adla bulunur; basit LISP'ler genellikle değiştirilmeden çalışır.

APPLOAD ile LISP yükleme ve Startup Suite

Tek seferlik yükleme

  1. Komut satırına APPLOAD (kısayol AP) yazın. Şeritte Manage > Applications > Load Application yolu da aynıdır.
  2. Load/Unload Applications penceresinde .lsp dosyanızı bulun ve seçin.
  3. Load düğmesine basın. Pencerenin altında "successfully loaded" mesajı görünür.
  4. Close ile kapatın ve LISP'in tanımladığı komut adını komut satırına yazın.

Daha hızlı yol: .lsp dosyasını Windows Gezgini'nden sürükleyip çizim alanına bırakın. Bu şekilde yüklenen LISP yalnızca o oturumda ve o çizimde geçerlidir; dosyayı kapatıp yenisini açtığınızda yeniden yüklemeniz gerekebilir.

Her açılışta otomatik yükleme: Startup Suite

  1. APPLOAD penceresinde sağ alttaki Startup Suite bölümünde Contents düğmesine basın.
  2. Add ile .lsp dosyalarınızı listeye ekleyin.
  3. Close ile kapatın. Bu dosyalar artık her çizim açılışında yüklenir.

Ofiste birden çok bilgisayara aynı LISP'leri dağıtmanın daha düzenli yolu, LISP'leri ortak bir klasörde tutup bu klasörü OPTIONS > Files > Support File Search Path ve Trusted Locations listelerine eklemek, yüklemeyi de acaddoc.lsp dosyasından yapmaktır. Destek yolunda bulunan acaddoc.lsp dosyası her çizim açıldığında AutoCAD tarafından kendiliğinden yüklenir; içine (load "alanyaz.lsp") gibi satırlar yazılır.

Yükleme sonrası sık görülen mesajlar

MesajAnlamı ve çözümü
Unknown commandLISP yüklenmemiş ya da komut adı yanlış yazılmış. Dosyadaki defun c: satırındaki adı kontrol edin.
; error: malformed list on inputDosyada eksik parantez veya kapanmamış tırnak var.
; error: no function definitionLISP, yüklenmemiş başka bir fonksiyonu çağırıyor ya da fonksiyon adı yanlış yazılmış.
Komut yeni açılan çizimde yokLISP yalnızca yüklendiği çizimde geçerli. Startup Suite'e veya acaddoc.lsp'ye ekleyin.

Güvenlik uyarısı

AutoCAD, güvenilir konumlar dışından yüklenen dosyalar için uyarı penceresi gösterir. Bu davranışı SECURELOAD değişkeni, güvenilir klasörleri TRUSTEDPATHS değişkeni belirler. Uyarıyı kapatmak için SECURELOAD'u 0 yapmak yerine kendi LISP klasörünüzü güvenilir konumlara ekleyin. İnternetten indirilen LISP'leri açıp ne yaptıklarını okumadan yüklemeyin; acaddoc.lsp gibi otomatik yüklenen dosyaları değiştiren kötü amaçlı LISP'ler bilinen bir sorundur.

İlk LISP komutunuzu yazmak

Not Defteri ile yeni bir dosya açın, aşağıdaki satırları yazın ve ilk.lsp adıyla kaydedin (kayıt türünü "Tüm dosyalar" seçin ki .txt uzantısı eklenmesin).

(defun c:ZE ()
  (command "_.ZOOM" "_E")
  (princ)
)

Satırların anlamı:

  • defun yeni bir fonksiyon tanımlar. Adın başındaki c:, fonksiyonun komut satırından çağrılabilir bir komut olduğunu belirtir. Komut adı ZE olur.
  • command, AutoCAD komutunu sanki komut satırına yazıyormuşsunuz gibi çalıştırır. Her tırnak içi ifade bir girdidir.
  • Komut adının önündeki alt çizgi (_) komutun İngilizce dışındaki dil sürümlerinde de İngilizce adla tanınmasını, nokta (.) ise komutun yeniden tanımlanmış olsa bile orijinalinin çalışmasını sağlar.
  • (princ) komutun sonunda komut satırına "nil" yazılmasını önler.

APPLOAD ile yükleyip ZE yazın: ekran tüm çizime sığar.

İkinci örnek: katman oluşturup etkin yapma

(defun c:KAKS ()
  (command "_.-LAYER" "_M" "AKS" "_C" "1" "" "")
  (princ)
)

-LAYER komutun pencere açmayan, komut satırı sürümüdür. _M (Make) AKS katmanını oluşturup etkin yapar, _C ile renk 1 (kırmızı) verilir, ilk boş tırnak renk sorusundaki katman adını onaylar, ikinci boş tırnak komutu bitirir. Bir LISP'teki command satırını yazmanın en kolay yolu, aynı komutu önce elle komut satırında çalıştırıp hangi soruların hangi sırayla geldiğini not etmektir.

Üçüncü örnek: polyline alanını m² olarak yazma

(defun c:ALANYAZ (/ ent pt alan)
  (setq ent (car (entsel "\nKapali polyline secin: ")))
  (if ent
    (progn
      (command "_.AREA" "_O" ent)
      (setq alan (/ (getvar "AREA") 10000.0)) ; cm2 -> m2
      (setq pt (getpoint "\nYazinin yeri: "))
      (if pt (command "_.TEXT" "_J" "_MC" pt 12.5 0 (strcat (rtos alan 2 2) " m2")))
    )
  )
  (princ)
)

  • (/ ent pt alan): eğik çizgiden sonraki adlar yerel değişkenlerdir; komut bitince silinirler ve başka LISP'lerle çakışmazlar.
  • entsel kullanıcıdan bir nesne seçmesini ister, car seçilen nesnenin adını alır.
  • AREA komutu nesne seçeneğiyle çalıştırılır; sonuç AREA sistem değişkenine yazılır ve getvar ile okunur. Çizim cm ile çizildiği için 10.000'e bölünür; mm çizimde 1000000.0 yazın.
  • rtos alan 2 2 sayıyı ondalık biçimde, iki basamakla metne çevirir.
  • TEXT komutu yazıyı orta-merkez hizalı, 12,5 birim yüksekliğinde yazar. Etkin yazı stilinin yüksekliği sabitse (0 değilse) TEXT yükseklik sormaz ve bu satır kayar; bu örneği yüksekliği 0 olan bir stille kullanın.

Alan hesabının mantığı ve canlı güncellenen FIELD alternatifi alan ve uzunluk hesaplama bölümünde anlatılıyor.

Sık yapılan hata

Parantez eksikliği. LISP'te her açılan parantez kapanmalıdır; eksik parantezli bir dosya yüklenirken "malformed list" veya benzeri bir hata verir. Uzun LISP'leri parantez eşleştirmesi yapan bir editörde yazın. AutoCAD'deki VLISP komutu LISP geliştirme ortamını açar; yeni sürümlerde bu komut Visual Studio Code eklentisiyle çalışacak şekilde yönlendirebilir.

Script (.scr) dosyalarıyla toplu işlem

Script, komut satırına yazacağınız her şeyin sırayla kaydedildiği düz metin dosyasıdır. Programlama bilgisi gerektirmez. Kurallar basittir: her boşluk ve her satır sonu bir Enter tuşu gibi okunur, ; ile başlayan satırlar açıklamadır.

Örnek: bir dosyayı denetleyip temizleyen ve kaydeden temizlik.scr:

; temizlik.scr
_.AUDIT _Y
_.-PURGE _R * _N
_.-PURGE _A * _N
_.ZOOM _E
_.QSAVE

  1. Not Defteri ile yukarıdaki satırları yazın; son satırdan sonra Enter'a basarak dosyanın boş bir satırla bitmesini sağlayın.
  2. temizlik.scr adıyla kaydedin.
  3. AutoCAD'de SCRIPT (kısayol SCR) yazıp dosyayı seçin. Dosyayı çizim alanına sürükleyip bırakmak da script'i çalıştırır.

Komutlar sırayla çalışır: önce AUDIT hataları düzeltir, sonra -PURGE önce kayıtlı uygulamaları (Regapps), sonra tüm kullanılmayan tanımları (All) temizler, ekran sığdırılır ve dosya kaydedilir. Bu komutların ne işe yaradığı dosya kurtarma ve temizlik bölümünde anlatılıyor.

Script'i komut geçmişinden üretmek

Bir işi elle bir kez yapın, sonra F2 ile genişletilmiş komut geçmişini açın. Komut satırına girdiğiniz her şey ve AutoCAD'in sorduğu sorular orada sırayla görünür. Bu metni kopyalayıp Not Defteri'ne yapıştırın, AutoCAD'in sorularını silip yalnızca sizin girdilerinizi bırakın: elinizde çalışan bir script taslağı olur. Aynı yöntem LISP'teki command satırlarını yazarken de soru sırasını doğrulamanın en kolay yoludur.

İpucu

Script'ler pencere açan komutlarla iyi çalışmaz. Komutların tire (-) ile başlayan komut satırı sürümlerini kullanın (-LAYER, -PURGE, -PLOT) ve dosya penceresi açan komutlar için FILEDIA değişkenini script başında 0, sonunda 1 yapın. Bir script'i çok sayıda dosyaya uygulamak için Autodesk'in ücretsiz ScriptPro aracı gibi toplu çalıştırıcılar kullanılır.

Action Recorder: kod yazmadan makro kaydetme

Action Recorder, yaptığınız işlemleri kaydedip tek tıkla tekrar oynatan bir araçtır. Tam AutoCAD'de bulunur; AutoCAD LT'de bulunmaz.

  1. Şeritte Manage > Action Recorder > Record düğmesine basın ya da ACTRECORD yazın. İmlecin yanında kırmızı kayıt işareti görünür.
  2. Kaydetmek istediğiniz işlemleri normal şekilde yapın (ör. bir katman oluşturma, yazı stilini değiştirme, ekran sığdırma).
  3. Stop düğmesine basın ya da ACTSTOP yazın. Makroya bir ad verin; kayıt .actm uzantılı bir dosyaya yazılır.
  4. Oynatmak için şeritteki listeden makroyu seçip Play deyin.

Kayıt sırasında tıkladığınız noktalar sabit koordinat olarak saklanır. Her oynatmada farklı bir nokta seçmek istiyorsanız, kayıttan sonra makro ağacında ilgili adıma sağ tıklayıp Request User Input seçeneğini işaretleyin; komut satırı karşılığı ACTUSERINPUT'tur. Kullanıcıya mesaj göstermek için ACTUSERMESSAGE, makroların yönetimi için ACTMANAGER kullanılır.

Sık yapılan hata

Kayıt sırasında yakınlaştırma, kaydırma ve yanlış tıklamaları da makroya eklemek. Kayda başlamadan önce yapacağınız adımları kâğıda yazın, gereksiz hareket yapmayın. Karmaşıklaşan makroları LISP'e çevirmek uzun vadede daha sağlamdır.

LISP nerede yetmez? Statik detay örneği

Basit LISP'ler tek adımlı, tek kullanıcılı işler için mükemmeldir: bir katman açmak, alan yazmak, seçilen çizgileri saymak. İş büyüdükçe sınırlar görünür: bir kolon detayında boyuna donatı, etriye, çiroz, poz etiketi, metraj tablosu ve revizyon geçmişi birbirine bağlıdır. Kesit değiştiğinde hepsinin birlikte güncellenmesi gerekir; bu ilişkiyi yüzlerce satırlık bağımsız LISP'lerle yönetmek zorlaşır, her yönetmelik veya ofis standardı değişikliği koda dokunmayı gerektirir.

Bu yüzden statik ofislerde genellikle üç yöntem bir arada bulunur: elle çizim, kişisel LISP'ler ve bu iş için yazılmış eklentiler. Örneğin KNCad, AutoCAD ve GstarCAD içinde kolon, perde, kiriş ve döşeme detaylarını poz etiketi ve metrajıyla birlikte üreten bir statik detay programıdır. Üç yöntemin karşılaştırması AutoCAD'de betonarme detay çizmenin üç yolu yazısında, otomasyonun detay işine genel etkisi ise detay çiziminde otomasyon yazısında anlatılıyor. LISP öğrenmek bu araçları kullanırken de işe yarar: hangi işin otomatikleşebileceğini görmeyi ve kendi küçük yardımcılarınızı yazmayı öğretir.

Kendiniz deneyin

  1. Masaüstünde LISP adlı bir klasör açın. ilk.lsp dosyasına ZE ve KAKS komutlarını yazıp kaydedin.
  2. APPLOAD ile yükleyin, iki komutu deneyin. Komutu yazdığınızda katman listesinde AKS'ın oluşup etkin olduğunu görün.
  3. ALANYAZ komutunu da dosyaya ekleyin, yeniden yükleyin. cm ile çizilmiş 450 × 380'lik bir dikdörtgen seçip yazının 17.10 m2 çıktığını görün.
  4. KAKS komutunu kopyalayıp KDUVAR adıyla, DUVAR katmanını renk 7 ile oluşturan bir komuta çevirin.
  5. Dosyayı Startup Suite'e ekleyin, AutoCAD'i kapatıp açın ve komutların hazır geldiğini kontrol edin.
  6. temizlik.scr dosyasını hazırlayıp bir deneme çiziminde SCRIPT ile çalıştırın.
  7. Tam AutoCAD kullanıyorsanız Action Recorder ile "katman oluştur, yazı yaz, ekranı sığdır" adımlarını kaydedip oynatın.

Kendi komutlarınıza kısa adlar verirken mevcut kısaltmalarla çakışmamasına dikkat edin; kullanılan kısaltmaları AutoCAD kısayolları listesi bölümünde bulabilirsiniz.

Sık sorulanlar

AutoCAD'de LISP nasıl yüklenir?

APPLOAD komutunu açıp .lsp dosyasını seçin ve Load düğmesine basın. Dosyayı çizim alanına sürükleyip bırakmak da onu yükler.

LISP her açılışta otomatik nasıl yüklenir?

APPLOAD penceresinde Startup Suite > Contents ile dosyayı listeye ekleyin. Ofis genelinde ise LISP klasörünü destek yoluna ve güvenilir konumlara ekleyip yüklemeyi acaddoc.lsp dosyasından yapabilirsiniz.

AutoCAD LT'de LISP çalışır mı?

AutoCAD LT'nin yeni sürümlerine AutoLISP desteği eklendi; kendi sürümünüzde APPLOAD komutunun olup olmadığına bakın. Eski LT sürümlerinde LISP çalışmaz ve bazı gelişmiş fonksiyonlar LT'de desteklenmeyebilir.

AutoCAD script dosyası nasıl hazırlanır?

Not Defteri'nde komutları komut satırına yazar gibi sırayla yazıp .scr uzantısıyla kaydedin; her boşluk ve satır sonu Enter sayılır. Dosyayı SCRIPT komutuyla ya da çizim alanına sürükleyerek çalıştırın.

LISP komutunda defun c: ne anlama gelir?

defun yeni bir fonksiyon tanımlar; adın başındaki c: o fonksiyonun komut satırından çağrılabilecek bir AutoCAD komutu olduğunu belirtir. Örneğin defun c:ZE, ZE adında bir komut oluşturur.