* E Posta Adresiniz:
* Kodu Girin:

İleti Yazar
18.06.2008 11:43
37837    
ehya

[90] Yönetici

Online Durumu

3197 ileti
Teknik Ressam
Ankara

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 13:24
37846    
tekir06

[3] Kıdemli Girişimci

Online Durumu

40 ileti
Teknik Ressam
Ankara

teşekkürler usta

18.06.2008 18:19
37868    
sahin460

[8] Kıdemli Uzman

Online Durumu

125 ileti
elektrik tekniker
kayseri

teşekkürler helal sana ehya kardeş

26.06.2008 11:21
38154    
KADIKIZI

[3] Kıdemli Girişimci

Online Durumu

36 ileti
Üretim Planlama-Tasarım
Ankara

sagolasın Ehya... eline emegine saglık

anlayamamaktan cok korkuyorum niyeyse (sınıfta kalma fobisi sanırım :P)







Damla, kendini tamamladıktan sonra damlar.

26.06.2008 11:38
38156    
ehya

[90] Yönetici

Online Durumu

3197 ileti
Teknik Ressam
Ankara

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 14:04
41433    
mechanicaleng

[1] Yeni üye

Online Durumu

4 ileti

ellerin det görmesin çok ii olmuş.

17.11.2008 19:24
43444    
seyma_0034

[1] Yeni üye

Online Durumu

65 ileti
makine teknikeri + reklamcı
istanbul

anlatım teşekkürler ehya ama ben şu eşittir kısmından sonrakileri anlayamadım sonuç T sonuç nil gibi ifadeleri : ((

BİZİM DERGAHIMIZ ÜMİTSİZLİK DERGAHI DEĞİLDİR..
YÜZ KERE TÖVBENİ BOZMUŞ OLSAN DA YİNE GEL..(HZ. MEVLANA)

18.11.2008 00:25
43452    
ehya

[90] Yönetici

Online Durumu

3197 ileti
Teknik Ressam
Ankara

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.

18.11.2008 00:28
43453    
fox

[8] Kıdemli Uzman

Online Durumu

235 ileti

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.

18.11.2008 01:29
43455    
ehya

[90] Yönetici

Online Durumu

3197 ileti
Teknik Ressam
Ankara

/= 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 10:29
43460    
seyma_0034

[1] Yeni üye

Online Durumu

65 ileti
makine teknikeri + reklamcı
istanbul

anladım ehya teşekkür ederim derslerin devamını merakla bekliyoruz..

BİZİM DERGAHIMIZ ÜMİTSİZLİK DERGAHI DEĞİLDİR..
YÜZ KERE TÖVBENİ BOZMUŞ OLSAN DA YİNE GEL..(HZ. MEVLANA)

18.11.2008 10:35
43461    
fox

[8] Kıdemli Uzman

Online Durumu

235 ileti

Alıntı
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.



o zaman şöylemi diyoruz burdaki bölü işareti eşitliği bozan karakterdir.

18.11.2008 19:24
43496    
ehya

[90] Yönetici

Online Durumu

3197 ileti
Teknik Ressam
Ankara

/= 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 20:08
43498    
fox

[8] Kıdemli Uzman

Online Durumu

235 ileti

ok olay anlaşılmıştır.

07.11.2009 10:50
53130    
hüseyin_akgul

[1] Yeni üye

Online Durumu

3 ileti
harita tek.
istanbul

İ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 11:06
53132    
ehya

[90] Yönetici

Online Durumu

3197 ileti
Teknik Ressam
Ankara

getirmenin imkanı var elbet.. ancak bunun için mnu dosyası hazırlanması gerekir k, zahmetli bir iştir...

10.11.2009 11:01
53195    
aziz_ank

[1] Yeni üye

Online Durumu

6 ileti
ogrenci
ankara

tesekkur ederim

25.04.2010 11:20
57040    
cahid

[1] Yeni üye

Online Durumu

1 ileti
Harita muhendisi
baku

HERKESE SELAM.LISP ICN VERDIYINIZ KOD LAIR NASIL KULLANICAGIMI BANADA OYRETIRMISINIZ?

Azerbaycandan sayqilarimla CAHID

25.04.2010 12:58
57043    
beyto

[3] Kıdemli Girişimci

Online Durumu

39 ileti
teknik eleman
izmir

paylaşım çok güzel devamını sabırsızlıkla bekliyoruz

> 1 <
Copyright © 2004-2018 | Tüm Hakları Saklıdır | 1721 | Site haritası | İstatistikler | Hakkımızda | Kadromuz | Gizlilik | Reklam