14.03.2011 07:23    

iezeren
Sorunum "3536.408" ------> 3536.408 yapamıyorum
yazıyı rakama döderiyor ama yukarıdaki gibi degil ya 3536 yapıyor yada 3536.4 yapıyor nasıl yapmalıyım.
bu rakamı command "_.Circle" x,y,z 10 "" deki x ve y z degerlerini oluşturmakta kullanmak istiyorum.

14.03.2011 08:35    

ProhibiT
Autolisp'in atof (atom to floating point) fonksiyonunu kullanabilirsiniz.

(atof "3536.408") -> 3536.41 döner.
burada sonucun 3536.41 olması siz yanıltmasın; (= (atof "3536.408") 3536.408) true döner.

bir şeye dikkat çekmek isterim, bahsettiğiniz x,y ve z değerlerini ister (getpoint... ile alın, ister bir objenin, (mesela) (assoc 10... değerinden alın, elde edilecek değer 3 real number'dan oluşan bir list'tir. buradaki gibi string'den real'a dönüş ihtiyacı nereden çıktı anlayamadım.

kolay gelsin.

15.03.2011 06:45    

iezeren
(setq eski "3536.408")
sizin yazdıgınız gibi daha önce denemiştim çalışmadı.

after(setq yeni (atof eski)) bunu buldum çalıştı

"3536.408" degerini bir data dosyasından alıyorum ne ekrandan getpointle nede obje den.
onlarla ilgili kısmı bu site ve sizin gibi dostlar sayesinde öğrendim.
(prohibit) hocam eline sağlık.

15.03.2011 07:37    

ProhibiT
Autolisp dilinin en temel, basit görünmekle birlikte karmaşık sayılabilecek kavramlarından biri bu konu.

(setq eski "3536.408")
(setq yeni (atof eski)) şeklinde yazmak ile,
(setq yeni (atof "3536.408")) olarak yazmak aynı şey aslında.

Benim burada dikkat çekmeye çalıştığım nokta;
(setq yeni (atof "3536.408")) ifadesini doğrudan AutoCAD komut satırından girerseniz, ya da fonksyion içinde kullandığınızda, (list yeni) girip değerine bakmak isterseniz, ekranda 3536.41 veya 3536.4 şeklinde görürsünüz bu sizi yanıltmasın.
(= (atof "3536.408") 3536.408) eşitliği doğrudur true (T) döner. yani özet olarak bir değişkenin listelenen ve görülen değeri (sistem değişkenlerinizin durumuna göre) farklı olabilir. burada olduğu gibi yeni değişkeninin hafızada tutulan değeri 3536.408 iken, 3536.4 şeklinde gösterilebilir.

kolay gelsin.

> 1 <
Copyright © 2004-2022 SQL: 1.132 saniye - Sorgu: 51 - Ortalama: 0.02219 saniye