Copyright © 2004-2022 SQL: 1.226 saniye - Sorgu: 97 - Ortalama: 0.01264 saniye
18.06.2008 07:43
ehya |
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.
|
18.06.2008 09:24
tekir06 |
teşekkürler usta
|
18.06.2008 14:19
sahin460 |
teşekkürler helal sana ehya kardeş
|
26.06.2008 07:21
KADIKIZI |
sagolasın Ehya... eline emegine saglık
anlayamamaktan cok korkuyorum :D niyeyse :) (sınıfta kalma fobisi sanırım :P)
|
26.06.2008 07:38
ehya |
:) yok yok anlamamazlık olmayacağına eminim. Tüm dersleri tek format altında topluyorum. O yüzden 3ncü ders eklenmeyecek. Toplu halde göndereceğim. Bayağı bir örnek lisp yazıp tektek tariflerini yaptım. Hala da yazıyorum :)
Anlamadığınız yerde de tekrar soru sorabilirsiniz. Yine açıklamaya çalışırım..
|
21.09.2008 10:04
mechanicaleng |
ellerin det görmesin çok ii olmuş.
|
17.11.2008 16:24
seyma_0034 |
anlatım teşekkürler ehya ama ben şu eşittir kısmından sonrakileri anlayamadım sonuç T sonuç nil gibi ifadeleri : ((
|
17.11.2008 21:25
ehya |
sonuç T demesi, yapılan işlemin doğru olduğunu nil sonucu yanlış olduğunu ifade eder.
Örneğin (= 25 25) bu satırın sonucu T dir. Yani işlem sonucu doğrudur. (= 25 26) bu işlem sonucunda da nil yani doğru olmadığını ifade eder.
|
17.11.2008 21:28
fox |
yani true nun "t" si
peki ehya bi soruda ben sorayım bende eşit değilden soruyorum. (/= 10 20)........................Sonuç : T şimdi burdaki işlem 10 u 20 ye böl = burayı anlamadım.
|
17.11.2008 22:29
ehya |
/= bölmek anlamına gelmiyor. Yukarıyı okusaydın keşke.
Bunun anlamı "eşit değil". 10 ile 20 eşit olmadığından T sonucunu veriyor.
|
18.11.2008 07:29
seyma_0034 |
anladım ehya teşekkür ederim derslerin devamını merakla bekliyoruz..
|
18.11.2008 07:35
fox |
Alıntı o zaman şöylemi diyoruz burdaki bölü işareti eşitliği bozan karakterdir.
|
18.11.2008 16:24
ehya |
/= fonksiyonunu ayrı bir şekilde düşünme. Bu iki karakterli fonksiyon bir bütündür. Başka bir kodlamada / fonksiyonunu diğer fonksiyona bağlayamazsın.
|
18.11.2008 17:08
fox |
ok olay anlaşılmıştır.
|
07.11.2009 07:50
hüseyin_akgul |
İyi günler yazılmış ve bilgisayara yüklenmiş bir lispi araç çubuklarında her hangi bir menünün altına getirmenin imkanı varmı... Cevabınız için şimdiden teşekkürler.
|
07.11.2009 08:06
ehya |
getirmenin imkanı var elbet.. ancak bunun için mnu dosyası hazırlanması gerekir k, zahmetli bir iştir...
|
10.11.2009 08:01
aziz_ank |
tesekkur ederim
|
25.04.2010 07:20
cahid |
HERKESE SELAM.LISP ICN VERDIYINIZ KOD LAIR NASIL KULLANICAGIMI BANADA OYRETIRMISINIZ?
|
beyto |
paylaşım çok güzel devamını sabırsızlıkla bekliyoruz
|