> 1 <
| Yazar | İleti |
|
ehya
[70] Editör
1955 ileti |
#37837 18.06.2008 10:43 GMT |
|
Bu dersimizde lisp içinde değerleri ekrana yazdırırken uygulanacak işlemden bahsetmek istiyorum.
\n = Yazının yeni bir satıra yazılmasını sağlar \t = Bir tab sağa geçirir. \e = Escape yapılmasını sağlar. \r = Enter \\ = \ karakteri için kullanılır. Yeni bir lisp yazmak istediğinizde lispiniz; (defun c:ARCHME () şeklinde başlamalıdır. Bu satırı anlatmak gerekirse programın ana gövdesini başlattığımızı, lisp bittiğinde bu lispi ARCHME adıyla çalıştırabileceğimizi tarif ediyor. Burada “ARCHME” adıyla belirttiğim yere kendi lispinizin hangi komutla çalıştırmak istiyorsanız onu yazabilirsiniz. Komut isminden öne c: diye bir yazı var. Bunun c sürücüsüyle bir alakası olmadığını belirteyim. Lisp içinde her hangi bir değeri saklamak için ise; setq tanımını kullanmamız gerekiyor. Örneğin; getstring komutu ile bir metin kullanıcıya bir kelime yazdırtalım ve lisp içinde bu değeri saklayalım. Getstring tanımını bir sonraki yazımda tarif edeceğim. (setq isim (getstring "\nİsminizi yazın:")) Bu satırı çalıştırdığımızda komut satırında Command: (setq isim (getstring "\nİsminizi yazın:")) İsminizi yazın: komut satırında yukarıda görüldüğü gibi uyarı gelecek. Burada isminizi yazdığınızda isminiz "isim" girdisi altında saklanacaktır. Autocad ekranından bu girdilerin değerlerine bakmak istiyorsanız komut satırına !isim yazarak yani girdinin başına ünlem işareti koyarak değerini öğrenebilirsiniz. Bir lispi yazarken unutulmaması gereken; ne kadar sol parantez varsa o kadar da sağ parantez olmalıdır. Yani açılan her fonksiyonun kapatması olmalıdır. Tabiki uygun yerlere. Autolisp içinde en çok kullanılan işlemlerden birisi de liste fonksiyonudur. Lisp içinde birden fazla değeri tek bir liste içinde saklamak için kullanılır. Örnek : Command: (setq liste '( "elma" "portakal" "erik" "limon")) Sonuç : ("elma" "portakal" "erik" "limon") İleriki yazılarımda bu tür listelere müdahale ve işlemleri anlatacağım. Bir lispi yazdıktan sonra yükleme yaparken, eğer hatalı bir yazım varsa yorumlayıcı tarafından en çok aşağıdaki uyarı mesajlarını alırsınız. Extra right paren Programın herhangi bir yerinde fazladan bir sağ parantezin olduğunu belirtir. Malformed list on input Programın herhangi bir yerinde eksik parantez ya da tırnak işaretinin olduğunu belirtir. Bununla beraber birkaç uyarı mesajını ve anlamlarını belirteyim. Divide by zero Programın bir yerinde değer 0 (sıfır)’a bölünmeye çalışılıyor. Bad node TYPE fonksiyonu için geçersiz eleman tipi belirtilmiş. Invalid argument Hatalı argüman tanımlaması veya tanımlanan argüman sınırlar dışında kalmakta. Invalid character Bir deyim, uygun olmayan bir karakter içermekte. Yazmış olduğunuz lispin autocad'in farklı dillerdeki sürümlerinde de çalışmasını istiyorsanız, command komutu ile kullandığınız autocad komutlarının başına “_” alt çizgi kullanmalısınız. Örnek : (command "_line" nok1 nokt2 "") Bu dersimizi karakter işlem komutlarıyla ilgili birkaç örnek yaparak bitireceğim. Toplama : (+ 2 3 5)..........................Sonuç : 10 Çıkarma : (- 50 20 2.5)....................Sonuç : 27.5 * Çarpma : (* 3 2 2)..........................Sonuç : 12 / Bölme : (/ 60 2 3.0)......................Sonuç : 10.0 = Eşittir (equal) (= 4 4.0)..........................Sonuç : T (= "sen" "ben")...............Sonuç : nil (= 12.0 12.0 12.0)..... .....Sonuç : T = Eşit değil (not equal) (/= 10 20)........................Sonuç : T (/= "sen" "sen")...............Sonuç : nil < Küçüktür (less than) (< 10 20).........................Sonuç : T (< "b" "c")........................Sonuç : T (< 357 33.2).....................Sonuç : nil (< 2 3 88).........................Sonuç : T <= Küçük veya eşit ise (less than or equal to) (<= 10 20)........................Sonuç : T (<= "b" "b")......................Sonuç : T (<= 357 33.2)...................Sonuç : nil (<= 2 9 4 5)......................Sonuç : nil > Büyüktür (greater than) (> 120 17)........................Sonuç : T (> "c" "b").........................Sonuç : T (> 3.5 1792).....................Sonuç : nil (> 77 4 2).........................Sonuç : T (> 77 4 4).........................Sonuç : nil >= Büyük veya eşit ise (greater than or equal to) (>= 120 17)......................Sonuç : T (>= "c" "c").......................Sonuç : T (>= 3.5 1792)...................Sonuç : nil (>= 77 4 4).......................Sonuç : T (>= 77 4 9).......................Sonuç : nil ~ bitwise (tam sayının tersini alıp 1 azaltmak) (~ 3).................................Sonuç : -4 (~ 100).............................Sonuç : -101 (~ -4)................................Sonuç : 3 1+ (arttırma) (1+ 3)................................Sonuç : 4 (1+ 5)................................Sonuç : 6 1- (azaltma) (1- 3).................................Sonuç : 2 (1- 5).................................Sonuç : 4 Bundan sonraki dersimizde auolisp'de kullanılan komutların tanımlarını örnekleriyle anlatacağım.
|
|
|
tekir06
[5] Üsteğmen |
#37846 18.06.2008 12:24 GMT |
|
teşekkürler usta
çArşı |
|
|
sahin460
[8] Yüzbaşı
116 ileti |
#37868 18.06.2008 17:19 GMT |
|
teşekkürler helal sana ehya kardeş
|
|
|
KADIKIZI
[5] Üsteğmen
35 ileti |
#38154 26.06.2008 10:21 GMT |
|
sagolasın Ehya... eline emegine saglık
anlayamamaktan cok korkuyorum
Damla, kendini tamamladıktan sonra damlar. |
|
|
ehya
[70] Editör
1955 ileti |
#38156 26.06.2008 10:38 GMT |
|
Anlamadığınız yerde de tekrar soru sorabilirsiniz. Yine açıklamaya çalışırım..
|
> 1 <









