AutoCAD Günlüğü | » AutoLISP ile parametrik tasarım… > AutoCAD, AutoLISP, AutoCAD Dersleri, Mekanik Tesisat, Bilgisayar, Yazılım, Özel Yazılım

AutoLISP ile parametrik tasarım…


Yazar Prof. Dr. Günay Özmen
Mesleği İ.T.Ü. İnşaat Fakültesi
  Yapı Anabilim Dalı
  Bilsar Yön. Kurulu Bşk.
  Yazar

AutoCAD uygulamalarının daha etkin hale getirilmesinde kullanılan başlıca araçlardan biri AutoLISP programlama dilidir. Bu yazı henüz AutoLISP dili ile tanışma olanağı bulamamış olanlar için hazırlanmıştır. Amaç AutoLISP dilini tanıtmak ve bazı basit uygulamaları açıklamaktır. Deneyimli AutoLISP kullanıcıları için bu yazının bir katkısının olmayacağı açıktır.

1. Giriş

AutoCAD uygulamalarında etkinliği arttırmak amacı ile kullanılan araçlardan belki de en başta geleni blok kullanımıdır. Genel olarak, çok yinelenen çizim ve/veya yazı grupları blok olarak tanımlanır ve çizimin çeşitli yerlerinde kullanılır. Genel amaçlı bloklar ise, bağımsız çizimler olarak tanımlanıp istenen her çizimde kullanılabilmektedir. Ayrıca Attext komutu yardımı ile elde edilebilen ve blok karakteristiklerini içeren kütükler, çizimlerle ilgili Bilgi Bankası (Data Base – Veri Tabanı) oluşturmanın en kullanışlı yollarından biridir. Attext komutunun uygulamaları başlı başına bir yazı konusu oluşturacağından, bu yazımızın kapsamı dışında bırakılmıştır.

2. Blok Kullanımının Olanakları ve Kısıtlamaları

Bilindiği gibi, bloklarda X, Y, Z doğrultularında farklı ölçek kullanılabilmektedir. Böylece düzlemde iki, uzayda üç doğrultuda değişik boyutlar (parametreler) içeren çizim grupları için de blok kullanılması olanağı sağlanmış olur. Örnek olarak Şekil.1’de gösterilen biçimde dikdörtgen bir blok göz önüne alalım.


Şekil.1 Dikdörtgen blok

Bu blok, uygulamanın türüne göre, masa, dolap, yatak, betonarme kolon veya saç levha olarak düşünülebilir. Blok oluşturulurken her iki boyut birim uzunlukta seçilip, kullanım sırasında X ve Y doğrultularındaki ölçekler A ve B değerlerine eşit olarak alınırsa parametrik uygulama gerçekleştirilmiş olur. Ancak, bu tür parametrik tasarım uygulamaları düzlemde sadece 2 (uzayda 3) parametre kullanımı ile sınırlı kalmaktadır. Şekil.2 ve Şekil.3’teki örneklerde görüldüğü gibi, parametre sayısı 2’den çok veya parametreler aynı doğrultuda oldukları zaman, sadece blok kullanılarak parametrik tasarım gerçekleştirilemez.


Şekil.2 Çok sayıda parametre Şekil.3 Aynı doğrultuda parametreler

Mühendislik ve mimarlık uygulamalarında, sık sık, çok sayıda parametre içeren fakat temel biçimleri aynı olan şekillerin çizilmesi gerekir, Şekil 4.


Şekil.4.a ve b Parametrik tasarım örnekleri

Bu tür çizimlerin gerçekleştirilmesine “Parametrik Tasarım” adı verilmektedir. Parametrik tasarım için

• DXF ve/veya SCR kütükleri oluşturan programlar,
• AutoLISP veya ADS programları

kullanılmaktadır. DXF ve/veya SCR aracı kütüklerini üreten programlar herhangi bir programlama dili (FORTRAN, BASIC, PASCAL, C++  vb.) ile yazılabilir. Bunlar giriş bilgisi olarak çizim parametrelerini alırlar ve gerekli geometrik hesaplardan sonra AutoCAD tarafından kullanılacak olan DXF/SCR kütüklerini oluştururlar. Gerek bu tür programların gerekse ADS dilinin ayrıntıları bu yazının kapsamı dışında bırakılmıştır. Aşağıda kısaca AutoLISP dilinin özellikleri tanıtılacak ve basit bir örnek üzerinde açıklamalar yapılacaktır

3. AutoLISP Programlama Dili

AutoCAD uygulamalarının daha etkin hale getirilmesinde kullanılan başlıca araçlardan biri de AutoLISP programlama dilidir. Yapay Zeka (Artificial Intelligence) alanındaki temel programlama dili olan LISP, bir “Liste İşleme” (List Processing) dilidir. LISP programlama dilinin bir versiyonu olan AutoLISP ise, Autodesk tarafından özel olarak AutoCAD uygulamalarında kullanılmak üzere geliştirilmiştir. AutoLISP ile, bir yandan çeşitli parametreler içeren çizimler genelleştirilerek “Paramatrik Tasarım”lar gerçekleştirilebilmekte, öte yandan mevcut çizimlerde sistematik veya global değişiklik, düzenleme, çizim ve yazım işlemlerinin kolayca yapılabilmesi sağlanmaktadır. Uygulamada, basit birkaç LISP programı kullanılarak, AutoCAD etkinliğinin önemli ölçüde arttırılabildiği gözlenmiştir.

AutoLISP programlarında veriler çizim parametreleridir. Daha sonra, çizilecek şekil ile ilgili geometrik bağıntılar kullanılarak “Temel Noktalar” adı verilen bazı noktalar elde edilir. Bunlar AutoCAD komutlarının uygulanmasında kullanılacak noktalardır. Programlar, gerekli AutoCAD komutlarını içeren (command …) fonksiyonları ile tamamlanır. Parametrik tasarım ile ilgili AutoLISP programlarının ilgi çekici tarafı, gerekli AutoLISP bilgisinin minimum düzeyde olmasıdır. Gerçekten de, pek çok parametrik tasarım programı için, sadece giriş fonksiyonları ile (polar …), (distance …) ve (angle …) fonksiyonlarının bilinmesi yeterli olmaktadır. Daha karmaşık olan Varlık (Entity) ve Seçim-takımı (Selection-set) fonksiyonlarının kullanılmasına gerek kalmamaktadır. Doğal olarak, (if …) ve (cond … gibi koşul fonksiyonları ile (repeat …) ve (while …) gibi döngü fonksiyonlarının ve alt programların kullanılması etkinliği ve kapsamı arttırır. Ancak yukarıda belirtilen basit fonksiyonlar bile pek çok parametrik tasarım programı için yeterli olabilmektedir.

AutoLISP fonksiyonlarının kapsamlı bir listesi AutoCAD “Help” kütüğünde ve ilgili “AutoCAD Reference Manual” el kitaplarında bulunabilir. Ayrıca gerek bu konuda, gerekse Autodesk tarafından son yıllarda geliştirilmiş olan Visual LISP programı konusunda çok sayıda yerli ve yabancı yayın bulunmaktadır. Bu konular, tanıtım amaçlı olan bu yazının kapsamı dışında bırakılmış bulunmaktadır.

4. Örnek : Köşebent Çizimi (KOSE.LSP)

Basit bir örnek olarak, Şekil 3’te gösterilen eşit kollu köşebent çizimini gerçekleştiren bir program ele alınacaktır. Çizim parametreleri A ve B uzunlukları ile sol alt köşe noktasıdır. Program listesi aşağıda gösterilmiştir.


Liste.1 KOSE.LSP dosyası

Programın baş tarafında, giriş bilgisi olarak A ve B değerleri ile “Sol alt köşe” noktası okunmakta ve yardımcı değer olarak
C = A – B hesaplanmaktadır. Daha sonra (polar …) fonksiyonu yardımı ile Şekil.5’te gösterilen “Temel Noktalar” saptanmaktadır.


Şekil.5 Temel noktalar

(polar …) fonksiyonu, bir P1 noktası belli iken ondan yatayla radyan cinsinden a açısı yapan bir doğrultuda ve L uzaklıkta yeni bir nokta üretir. Bu fonksiyonun genel yapısı

 (polar  P1  a  L)

biçimindedir. Yukarıda verilen programda üretilecek noktanın konumuna göre, a olarak 0, pi/2 veya pi, L olarak da A, B veya C kullanılmıştır. Programın son bölümünde AutoCAD “line” komutu kullanılmış ve çizim tamamlanmış bulunmaktadır.

AutoLISP programlarının (örneğin Notepad kullanılarak) ASCII kodunda yazılması ve uzantısı LSP olacak biçimde saklanması gerekir. Daha sonra yazılan program Tools/Load Application … komutu yardımı ile AutoCAD ortamına yüklenir ve çalıştırılır. Programın çalıştırılması için Command satırına programın adını ( bu örnekte kose) yazmak yeterlidir.

(command …) fonksiyonu istenildiği gibi kullanılarak çeşitli başka AutoCAD işlemleri yapmak olasılığı vardır. Örneğin çizilen şekli taramak için, ÇİZİM bölümünün altına

 (setq  BOY  (/  (distance  P1  P4)  2))
 (setq  P7  (polar  P1  (/  pi  4)  BOY))
 (command  “bhatch”  “P”  “ANSI31″  “”  “”  P7  “”)

komutları eklenebilir. Burada P7 P1 ve P4 noktalarının ortasındaki noktadır. AutoLISP programalarını yazarken, tüm çizim işlemlerinin sadece Command satırı kullanılarak yazıldığına ve ileti kutusu (dialog box) olanaklarının çalışmadığına dikkat etmek gerekir. Bunun için, özellikle test aşamalarında, FILEDIA sistem değişkenini OFF durumuna getirmek gerekmektedir. (Editörün Notu: Bunu engellemenin bir başka yolu: Eğer Command fonksiyonu kullanarak Autocad’e komut geçiyorsanız, komutların başına ’-’ işareti koyarsanız diyalog kutuları açılmayacaktır.)  

Değişik bir uygulama olarak, dolu bir köşebent çizmek için, temel noktalar saptandıktan sonra “line” komutu yerine

 (command  “solid”  P2  P3  P1  P4  P6  P5  “”)

yazılabilir.

Benzer Yazılar

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5 out of 5)
Loading ... Loading ...

1 yorum “AutoLISP ile parametrik tasarım…”

Yorum bırak