AutoCAD, mühendislik ve tasarım dünyasının vazgeçilmez araçlarından biri olsa da, belirli işlemlerin tekrar tekrar manuel olarak yapılması zamanla kullanıcılar için büyük bir yük haline gelebilir. İşte bu noktada AutoLISP, AutoCAD’in sağladığı güçlü ve esnek bir programlama dili olarak devreye girer. AutoLISP sayesinde AutoCAD üzerinde kendi özel komutlarınızı yazarak çizim sürecini büyük ölçüde hızlandırabilir, otomasyon sağlayabilirsiniz.
Bu yazıda AutoLISP dili, temel sözdizimi, komut oluşturma yöntemleri ve kullanım senaryoları detaylı şekilde ele alınacaktır.
1. AutoLISP Nedir?
AutoLISP, Lisp programlama dilinin AutoCAD’e uyarlanmış bir versiyonudur. Lisp, “LISt Processing” kelimelerinden türetilmiş, 1950’lerden bu yana var olan bir fonksiyonel programlama dilidir. AutoLISP ise AutoCAD kullanıcılarına kendi iş akışlarını otomatikleştirecek komutlar ve programlar yazma imkânı sunar.
AutoLISP, özellikle aşağıdaki işlemler için oldukça faydalıdır:
- Tekrarlayan komutların otomasyonu
- Kendi özel çizim rutinlerinin oluşturulması
- Parametrik çizim
- Nesneler üzerinde seri işlemler (örneğin toplu katman değiştirme)
- Veriye dayalı çizim (örneğin dış veri ile çizim oluşturma)
2. AutoLISP Nasıl Çalışır?
AutoLISP, doğrudan AutoCAD’in komut satırından veya bir .LSP uzantılı dosya aracılığıyla çalıştırılır. AutoCAD’in içine gömülü olan Visual LISP Editor (VLISP) veya Not Defteri gibi basit metin düzenleyiciler ile yazılır.
AutoLISP Dosyası Yaratmak için:
- Not Defteri’nde bir .lsp dosyası oluşturun.
- Kodlarınızı yazın.
- AutoCAD’de APPLOAD komutu ile bu dosyayı yükleyin.
- Tanımladığınız özel komutları doğrudan kullanmaya başlayın.
3. Temel Sözdizimi (Syntax)
AutoLISP fonksiyonel bir dildir. Her komut parantezler içerisinde yazılır.
Örnek:
lisp
KopyalaDüzenle
(+ 2 3) ; Sonuç: 5
Temel Yapılar:
Yapı | Açıklama |
(defun …) | Fonksiyon tanımı |
(setq …) | Değişken tanımlama |
(command …) | AutoCAD komutlarını çalıştırma |
(if …) | Koşul ifadeleri |
(while …) | Döngü oluşturma |
(prompt “…”) | Kullanıcıya mesaj yazdırma |
(getpoint), (getreal) | Kullanıcıdan giriş alma |
4. Basit Bir Komut Oluşturma
Aşağıda, belirlenen iki nokta arasında çizgi çizen basit bir AutoLISP komutu yer almaktadır.
lisp
KopyalaDüzenle
(defun c:cizgi () ; ‘cizgi’ komutu oluşturuluyor
(setq p1 (getpoint “\nİlk noktayı seçin: “))
(setq p2 (getpoint “\nİkinci noktayı seçin: “))
(command “LINE” p1 p2 “”) ; AutoCAD’in LINE komutu çağrılıyor
(princ)
)
- defun: Yeni fonksiyon tanımlar.
- c:cizgi: cizgi adlı komutu tanımlar (c: öneki, AutoCAD komutu olarak tanınmasını sağlar).
- command: AutoCAD komutlarını çalıştırmak için kullanılır.
Bu kodu .lsp dosyasına kaydettikten sonra AutoCAD’de APPLOAD ile yükleyebilir ve komut satırına CIZGI yazarak çalıştırabilirsiniz.
5. Gelişmiş Komutlara Giriş
AutoLISP ile sadece basit komutlar değil, oldukça karmaşık işlemler de gerçekleştirilebilir. Örneğin; belirli bir katmanda olan tüm nesneleri seçip başka bir katmana taşıma, belirli geometrik kurallara göre obje çizme, kullanıcıdan veri alarak otomatik yerleşim yapma vb.
Örnek: Katman Kontrolü ve Otomatik Katman Oluşturma
lisp
KopyalaDüzenle
(defun c:yeniKatman ()
(if (tblsearch “layer” “MIMARI”)
(prompt “\n’MIMARI’ katmanı zaten mevcut.”)
(command “LAYER” “Make” “MIMARI” “Color” “2” “” “”)
)
(princ)
)
Bu kod:
- “MIMARI” adında bir katman olup olmadığını kontrol eder,
- Yoksa yeni bir katman oluşturur ve ona renk atar.
6. Kullanım Senaryoları
Senaryo 1: Toplu Nesne Taşıma
Her gün benzer yerleşim planlarında logoları belirli koordinatlara taşımak mı gerekiyor? AutoLISP ile sabit bir noktaya taşınabilir.
lisp
KopyalaDüzenle
(defun c:logoTasi ()
(setq ss (ssget))
(command “move” ss “” “0,0” “100,200”)
(princ)
)
Senaryo 2: Belirli Renklerdeki Objeleri Silme
Projede belli bir renge sahip objeleri silmek gerekebilir.
lisp
KopyalaDüzenle
(defun c:silKirmizi ()
(setq ss (ssget “X” ‘((62 . 1)))) ; 1 = kırmızı
(if ss
(command “erase” ss “”)
(prompt “\nSilinecek kırmızı obje bulunamadı.”)
)
(princ)
)
Senaryo 3: Otomatik Başlık Bloğu Yerleştirme
AutoLISP ile her çizime otomatik başlık bloğu yerleştirilebilir.
lisp
KopyalaDüzenle
(defun c:baslikEkle ()
(command “-insert” “BASLIK_BLOK” “0,0” “1” “1” “0”)
(princ)
)
7. Visual LISP Editor ile Gelişmiş Kodlama
AutoCAD, Visual LISP IDE adı verilen entegre geliştirme ortamını da sunar. Burada:
- Kod renklendirme
- Hata ayıklama (debugging)
- Fonksiyon takibi
- Kod çalıştırma ve test etme
gibi özellikler kullanılabilir. Visual LISP Editor’a erişmek için AutoCAD komut satırına VLISP veya VLIDE yazmanız yeterlidir.
8. AutoLISP ile Dosya İşlemleri ve Veri Girişi
AutoLISP sayesinde dış dosyalardan veri okuyarak çizim oluşturmak mümkündür. Örneğin, bir CSV dosyasından alınan koordinatlara göre nokta yerleştirme yapılabilir.
Ayrıca veri tabanları ya da Excel ile entegrasyon isteyen kullanıcılar için Visual LISP veya ActiveX API’leri ile daha ileri otomasyon yapılabilir.
9. AutoLISP ile GUI (Arayüz) Oluşturmak
AutoLISP sadece komut satırına bağlı kalmaz. DCL (Dialog Control Language) desteği ile kullanıcıya özel formlar, butonlar ve liste menüleri de hazırlanabilir.
Bu sayede:
- Kullanıcıdan daha sade ve kontrollü veri girişi sağlanır
- Hatalar azalır, kullanıcı deneyimi gelişir
10. Sonuç ve Öneriler
AutoLISP, AutoCAD’in sunduğu en güçlü özelleştirme araçlarından biridir. Özellikle üretim ve tasarım süreçlerinde tekrarlayan görevleri ortadan kaldırarak verimliliği katlar. Kendi komutlarınızı yazarak:
- Çizim hatalarını azaltabilirsiniz
- Süreçlerinizi hızlandırabilirsiniz
- Standartları koruyarak kaliteyi artırabilirsiniz
Yeni başlayanlar için öneriler:
- Küçük komutlarla başlayın.
- Hazır AutoLISP örneklerini inceleyin.
- HELP komutuyla AutoCAD fonksiyonlarını araştırın.
- Kodları anlamak için satır satır çalıştırarak test edin.