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: Hiç bir kayıtlı kullanıcı yok ve 11 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:  


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