Professional Documents
Culture Documents
Atolısp Cadte Iyı
Atolısp Cadte Iyı
Bu yazı, daha önce benim yazdığım 1/3 Eğimli çatıyı 3 boyutlu çizmek ve AutoLISP ile İki
Visual LISP ile LISP arasındaki farkı Muharrem Bey daha önce bize anlatmıştı. Böylesine güzel
yazılmış bir örnek ve aynı amaca hizmet eden iki programcık ile detayı daha iyi göreceğiz. Yazıya
hatırlatmak isterim.
Fig.1
initializing ). Genel bir kod yazım tekniği olarak dosyaların başına açıklama satırları ve kimin
tarafından yazıldığı konulur. Bu vesile ile bunu da görmüş olduk :).
Fig.2
Tanımlamada gördüğünüz gibi komutumuzun ismi SLOPEX olacak. ( get_sys_vars ) birkaç tane
işleyişine göre ayarlar. 3. satırda ise hata ayıklama rutinimizi ayarlayarak devam ediyoruz. İlk
fonksiyonları ile birer değişkene alıyoruz. Bu değişkenleri Şekil 2’de gösterilen fonksiyonlarda
kullanacağız.
Seçilen iki nokta arasındaki eğimi bulmak için, program tasarımcısı olarak iki metod önermiştik.
Birincisi iki nokta seçmek, ikincisi ise bir çizgi seçerek bu çizginin iki noktasını kullanmak. Bu
sebeple, AutoCAD komut satırı yapısını kullanarak nokta alma fonksiyonunu seçenekli
Fig.4
Kullanıcı nokta işaretlemek yerine ENTER tuşuna basma seçimini yaparsa p1 değişkeni null
değerini alacaktır ( VL’ te nil yerine null geldiğine dikkat ediniz ). Kullanıcı bir çizgi seçerek devam
etmek isterse ( ax:Get:Object ) ile bir çizgi seçtirip VL nesne özelliklerinden başlangıç ve bitiş
noktalarını p1 ve p2 ye yükleriz. Eğer kullanıcı ilk soruya bir nokta seçerek cevap vermişse p1
zaten ilk seçtiği nokta olacaktır ve ( while ) döngüsü ile kullanıcıya ikinci nokta seçtirilecektir. Bu
değer de p2 ye yerleştirilecektir. Artık elimizde iki adet 3 boyutlu nokta var. Şimdi ihtimallerimiz
şunlar, bu iki nokta yer düzleminde olabilir ( p1.z = p2.z ) ya da Z koordinatları farklı olabilir.
Eğer her iki nokta da yer düzleminde ise Y koordinatları ile diğer durumda da Z koordinatları ile
Fig.5
listesi olarak kullanıyor ve buna göre hesaplarımızı tamamlıyoruz. Daha sonraki aşamada ise
Fig.6
Muharrem Bey’in yazdığı kodun seçkinliğine dikkatinizi çekerim. VL’ in bütün incelikleri
Fig.7