AutoLİSP NUTSHELL’in Temelleri – Kısım-1

Tamam, AutoLisp’te daha önce hiç program yazmadınız!

Bazı AutoLisp yordamlarını deşifre etmeye çalıştınız; ancak yine de tamamen kafanız karıştı!

Şimdi size yardım edip edemeyeceğimize bir bakalım.

Bu makalemde sizlere AutoLisp programlamanın temellerini öğretmeye çalışacağım.

Çok basit bir işle başlayalım; bu hemen sonuç verecektir. AUTOCAD‘i çalıştırın ve komut satırına aşağıdaki satırları yazın:

    (alert “Merhaba ilk AutoLISP programıma hoş geldiniz!”)

Şimdi Enter tuşuna basın. ekranınızda aşağıdaki şekilde görünen mesaj çıkmalıdır:

Pekâlâ, AUTOCAD‘e bir şeyler yaptırmak için AutoLisp’i kullandınız.

Sizin de fark ettiğiniz gibi, (alert) fonksiyonunu kullandığınızda ekranınızda bir diyalog kutusu görüntülenir.

Şimdi başka bir şey deneyelim. Komut satırına aşağıdaki kod satırını yazın ve Enter tuşuna basın:

(setq a (getpoint))

Daha sonra ekranda (çizim alanınızda) herhangi bir noktayı tıklayın.

Komut pencerenizde aşağıdakine benzeyen sayılardan oluşan “liste”, görünmelidir.

(496.0 555.06 0.0)

İster inanın ister inanmayın, bu liste, ekranda tıkladığınız noktanın x, y ve z koordinatlarıdır.

   x = 496.04

               y = 555.06

               z = 0.0

AutoLisp kodu:

(setq a (getpoint))

Kodun Türkçe açıklaması:

Kullanıcıdan bir nokta iste ve o noktanın X, Y ve Z koordinatlarını liste olarak “a” değişkeninde depola 

Her şeyin parantez içine nasıl alındığını fark ettiniz mi?

Tüm AutoLisp fonksiyonları parantezle çevrilidir.

Ayrıca, AutoLisp fonksiyonlarınızı iç içe yerleştirmenize olanak tanır.

Bu, başka bir fonksiyonu çalıştıran bir fonksiyon yazmanızı sağlar.

Açtığınız sayıda parantez kapatmanız gerektiğini unutmayın. İşte bir örnek:

 (birşeyyap (başkabirşeydahayap (vebaşkabirşeydaha)))

Yukarıdaki ifadeyi daha okunaklı hale getirmek için şöyle yazabilirsiniz:

               (bir şey yap

               (başka bir şey daha yap

               (ve başka bir şey daha)

               )

               )

Şimdi Lisp’in neden “Parantezler deryası” olarak ta adlandırıldığını anlıyor musunuz?

Kodlamanıza yorum da ekleyebilirsiniz. Noktalı virgül (;) ile başlayan herhangi bir şey, Autolisp tarafından değerlendirilmez ve açıklama olarak kabul edilir. Örneğin.

(birşeyyap

(başkabirşeydahayap

(vebaşkabirşeydaha)  ;Bu açıklamadır

)  ;Bu başka bir açıklamadır

)  ;ve bir başka açıklama daha

Daha önce yazdığımız bildiri AutoLisp’den kullanıcıdan bir nokta almasını ve değeri “a” değişkeninde saklamasını sağlamıştı.

Şimdi komut satırına aşağıdaki ifadeyi yazın:

!a

Bu komut ile okta listesinin geri döndürülmesi gerekmektedir. Bu nedenle, bir değişkeni incelemek istediğiniz zaman, değişken adından önce ünlem (!) işareti koymalısınız.

getpoint fonksiyonu çalıştı; ancak kullanıcıya bu veri ile ne yapılmasının beklediğini gerçekten söylemedi. Şimdi şunu bir deneyin:

(setq a ( getpoint “\nBir nokta seçin: “))

Autolisp‘in sizden nasıl veri istediğini (ve ne tür bir veri beklendiğini) fark ettiniz mi?

Şimdi haydi bir program yazalım.

Bu satırların her birini birer birer yazın ve her satırın sonunda Enter tuşuna basarak bir nokta seçin.

(setq a (getpoint “\nBirinci noktayı girin : “))

Enter tuşuna bastıktan sonra bir nokta seçin.

(setq b (getpoint “\nİkinci noktayı girin : “))

Tekrar Enter tuşuna basarak bir nokta seçin.

(command “Line” a b “”)

Tekrar Enter tuşuna basın. İki nokta arasına bir çizgi çizilmiş olmalıdır.

(command) fonksiyonu elde edilen verilerle AUTOCAD‘e ne yapmak istediğini söylemek için kullanılır.

“Line”     Bir çizgi “line” çiz.

a              “a” değişkeninde depolanan noktadan başlasın.

b             “b” değişkeninde depolanan noktada bitsin.

“”            Line komutunu bitirmek için Enter tuşuna basma anlamındadır.

Şimdi bu çok hoş ama bu rutini her kullanmak istediğimizde tüm bu kodları hep yazmamız gerekiyor mu?

2. kısımda, programlarınızı bir dosyaya nasıl “saklamanız” gerektiğini anlatacağım.

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Katman Sarma Hakkında

Kompozit duvar katmanları, duvarın ek yerlerinde ve uç başlarında sarılabilir. Duvarın uçlarına sarılacak bileşik duvar …

Bir cevap yazın

Yardıma mı ihtiyacınız var? Chat with us
Bir görüşme başlatmak için lütfen önce gizlilik politikamızı kabul edin.