|
Orhan Toker |
||||||||||||||||
| DERS.3 AutoLISP Deyimleri, Değişkenleri ve Veri Tipleri Seviye: Başlangıç |
|||||||||||||||||
|
|
||||||||||||||||
| AutoLISP Deyimleri | |||||||||||||||||
Bir AutoLISP programı alt alta seri halinde deyimlerden oluşur. En basit anlamıyla bir LISP deyimi aşağıdaki gibidir.
Her LISP deyimi bir parantez açarak başlar. Bunu fonksiyon ve ona bağlı argümanlar (parametreler) izler ve parantez kapanarak biter. Her deyim kendini kapsayan bir başka deyimin kullanacağı bir dönüş değeri oluşturur. En son yorumlanan deyimin değeri kendini çağıran deyime döner. Örneğin:
Çarpma fonksiyonun birinci argümanı bir numaradır. İkinci argüman ise bir toplama işleminin sonucudur. Yorumlayıcı önce en içteki parantezlerde bulunan deyimi yani 5 + 3 işlemini yorumlar ve sonuç değerini çarpma işlemini bulunduran deyimin 2. argümanı olarak döner. Eğer kapatmadığınız eksik parantez olursa 16 sonucu yerine aşağıdaki gibi görünür.
Bu durumda hemen eksik kalan parantezi kapatırsanız yorumlayıcı görevine devam eder.
|
|||||||||||||||||
| AutoLISP Veri Tipleri | |||||||||||||||||
AutoLISP deyimleri parantezlerin içindeki veri tpilerinin sıralamasına ve niteliklerine göre işlem görür. AutoLISP'i tam anlamıyla kullanmanız için veri tiplerini iyice anlamalısınız. Integer (Tamsayılar) İçinde ondalık ayracı olmayan sayılardır. 32 bitlik bu sayılar -2,147,483,647 ile +2,147,483,648 değerleri arasındaki tüm tamsayılardır. Eğer bu aralığın dığında bir tamsayı girecek olursanız yorumlayıcı bunu otomatik olarak reel sayıya çevirecektir. Ancak örneğin, iki geçerli tamsayının toplamı 32 bitlik sistemde olabilecek en büyük tamsayının değerinini geçiyorsa sonuç geçersiz olacaktır. Örnek:
Sonuç negatif tamsayı çıkar. Real (Reel Sayılar) AutoLISP te reel sayılar floating point formatında olan noktadan sonra 14 hane hassasiyetli sayılardır. AutoLISP yorumlayıcısı için gerçek sayılara örnek olarak 3.1 -5.4 0.0000013 21,000,000.0 verilebilir. String (dizi) İçinde bir dizi alfanümerik karakter bulunduran katarlardır. "Kelime 1" "kitap" "H&B" "?*_i" gibi dizeler AutoLISP yorumlayıcısı için geçerli dizelerdir. \ karakteri AutoLISP dizelerinde kontrol karakeri girmenizi sağlar. Bu kontrol karakterlerinin listesi aşağıdaki gibidir.
Lists (Listeler) Biribirlerinden bir boşlukla ayrılan parantez içindeki değerler silsilesine liste denir. Biribiri ile ilgili bir çok sayıyı birarada saklamanın en etkili yolu listelerdir. Örneğin bir noktayı (13.45 23.50 0.00) listesinde saklayabiliriz. İleride listelerle ilgi çok daha fazla ayrıntıyı paylaşacağız. Selection Sets (Seçim setleri) Bir veya birden fazla Autocad nesnesinin olşturduğu gruplardır. AutoLISP kullanarak seçim setlerine nesne ekleyebilir ya da çıkarabilirsiniz. Entity Name (Varlık isimleri) Çizimdeki nesnelere Autocad tarafından verilen numerik etikete varlık ismi denir. Varlık isimleri çizim içindeki nesnelerin veritabanına ulaşmak için kullanılabilir. Seçilen nesneler üzerinde değişik işlemler yapmak için çok çeşitli LISP rutinleri vardır. Bu konuyu ilerideki derslerimizde geniş bir biçimde ele alacağız. |
|||||||||||||||||
| AutoLISP Değişkenleri (Variables) | |||||||||||||||||
Her programla dilinde olduğu gibi AutoLISP dilinde de değişkenler vardır. AutoLISP dilinde bir değişkeni önceden tanımlamanız gerekmez. Değişken atandığı anda eşitlenir ve eşitlediğiniz veri tipinde yaratılır. Birkaç değişken yaratalım. AutoLISP değişkeni yaratma, tanımlama ve atama için tek bir fonksiyon kullanılır.
Yukarıdaki değim isim adında bir değişken yaratır, string olarak tanımlar ve "Haluk" değerini bu değişkene atar. AutoLISP bir yorumlayıcı olduğu için değişkenlerin tümü (fonksiyon argümanları hariç) global yani diğer fonksiyonlar tarafından tanınabilirdir. AutoLISP değişkenlerinin tümü global olduğuna göre değişken ismi verirken dikkatli olmalıyız.
Yukarıdaki tüm örneklerde değişkenlere verilecek isimlere dikkat edilmiştir. Autolisp yorumlayıcıda değişken tipleri önceden tanımlanamadığı ve tüm değişkenler global olduğu için, kodlarken değişkeninizin tipine uygun ön ekler koymaya özen gösterirseniz işinizi kolaylaştırmış olursunuz. |
|||||||||||||||||
| Bir değişkenin değerini izlemek | |||||||||||||||||
Herhangi bir değişkenininizin değerini o anda öğrenmek istiyorsanız konsol veya komut satırından bunu yapabilirsiniz. İkisi arasında çok az bir fark vardır.
Gördüğünüz gibi değerini öğrenmek istediğiniz değişkenin adının başına ! işareti koymanız yeterli. |
|||||||||||||||||
| Önceden tanımlanmış değişkenler | |||||||||||||||||
AutoLISP'te değişken ismi olarak kullanamayacağınız önceden tanımlı 3 değişken vardır.
|
|||||||||||||||||
| Forcing (zorlama) | |||||||||||||||||
İki tamsayının bölümünü gerçek sayı elde etmek için
Bu dersimiz bu kadar. Hoşçakalın. |