Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 1 mesaj ]
Yazar Mesaj
 Mesaj Başlığı: Zoom Trim Lispi
MesajGönderilme zamanı: 18 Eki 2002 12:06 
Site Admin

Kayıt: 07 Oca 2002 13:14
Mesajlar: 1085
Konum: Turkey
Lisp ingilizce versiyonda sorunsuz çalışıyor. Daha sağlıklı bir kod için aşağıdaki değişikliklere bir göz atmanızı tavsiye ederiz.

Eski Hali[code](defun c:zt()
(setvar "cmdecho" 0)
(setq C1 (getpoint "\nFirst corner "))
(setq C2 (getcorner C1 "\nSecond corner "))
(command "zoom" "w" C1 C2)
(command "trim" "c" C1 C2 "")
(while (setq P (entsel "\nSelect object to trim "))
(command P)
)
(command "" "zoom" "p")
(setvar "cmdecho" 1)
(princ)
)
[/code]

Yeni Hali:[code](defun c:zt (<font color="red">/ C1 C2 P</font id="red">) <b>;(1)</b>
(setvar "cmdecho" 0)
(setq C1 (getpoint "\nFirst corner<font color="red">:</font id="red"> ")) <b>;(2)</b>
(setq C2 (getcorner C1 "\nSecond corner<font color="red">:</font id="red"> "))
(command "<font color="red">_.</font id="red">zoom" "<font color="red">_</font id="red">w" C1 C2) <b>;(3)(4)</b>
(command "<font color="red">_.</font id="red">trim" "<font color="red">_</font id="red">c" C1 C2 "")
(while (setq P (entsel "\nSelect object to trim<font color="red">:</font id="red"> "))
(command P)
)
(command "" "<font color="red">_.</font id="red">zoom" "<font color="red">_</font id="red">p")
(setvar "cmdecho" 1)
(princ)
)
[/code]


Değişiklikler:
<b>(1)</b> Fonksiyon içinde kullanılan yerel değişkenlerin başta belirtilmesi işlem bittiğinde bu değişkenleri otomatik olarak hafızadan sileceğinden daha doğrudur. Fonksiyon başlangıcında belirtilmiyen değişkenler hafızada sürekli yer işgal ederler.

<b>(2)</b> Kullancıların şaşırmaması açısından IntelliCAD'in genel iletişim alışkanlıklarının devam ettirilmesi yararlıdır. Kullanıcı, iki nokta üstüste ":" gördüğünde programın kendisinden bir girdi beklediğini bilir.

<b>(3)</b> Yazılan lisplerin tüm dillerde çalışmasını garanti etmek için komut ve altkomut adlarının başına altçizgi "_" koymak gerekir.
Yani <b>"ZOOM" "P"</b> yerine <b>"_ZOOM" "_P"</b> yazdığınızda bu komut hangi dilde olursa olsun tüm IntelliCAD (ve dahi AutoCAD)'lerde çalışır.

<b>(4)</b> <b>UNDEFINE</b> (Tanımsız Yap) komutu kullanılarak bir komutun işlem yapması engellenmiş olabilir.
Örneğin: <b>UNDEFINE INSERT</b> diyerek insert komutunu işlevsiz kılabilir ve eğer istiyorsanız <b>(defun C:INSERT ...</b> diyerek aynı isimde kendinize ait bir işlev tanımlayabilirsiniz.

Orjinal komutun çalıştığından emin olmak için komut adının başına nokta koyun: <b>.INSERT</b> gibi.

Eski haline dönmek için <b>REDEFINE INSERT</b> demeniz yeterlidir.


Hülasa:
İyi (=paranoyak) bir programcı her olasılığı düşünmelidir. Yani aşağıdaki kod her ahval ve şeraitte çalışır:
<b>(command "_.ZOOM" "_P")</b>




Düzenleyen - Destek/Support - 18/10/2002 11:13:03


Başa Dön
 Profil  
 
Eskiden itibaren mesajları göster:  Sırala  
Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 1 mesaj ]


Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Bing [Bot] ve 18 misafir


Bu foruma yeni başlıklar gönderemezsiniz
Bu forumdaki başlıklara cevap veremezsiniz
Bu forumdaki mesajlarınızı düzenleyemezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu foruma eklentiler gönderemezsiniz

Aranacak:
Geçiş yap:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
610nm Style by Daniel St. Jules of Gamexe.net


Türkçe çeviri: phpBB Türkiye