| 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
 
 
 |