Copyright © 2004-2022 SQL: 0.705 saniye - Sorgu: 56 - Ortalama: 0.01259 saniye
25.02.2009 11:44
yazgunesi |
Formumuzda ssget kullanımı ile ilgili bir çok lispler, soru - cevap konuları mevcut..
Aşağıda bulunan 2 adet lisp ssget kullanarak kopyalama ve taşıma işlemi yapılmasına dair basit bir örnektir. Kod: ; ssget ile objeyi seçip ; bir noktadan diğer noktaya ; taşıma yapma lispi (defun c:mov1 () ; komut isimi mov1 diye tanımladık. (prompt "Taşınacak objeleri seç !") ; kullanıcıya bilgi verelim ilk önce (setq secim1 (ssget)) ; seçim seti oluşturduk , objeyi seçtirdik (setq nok1 (getpoint "\n Objenin referans noktasını sec:")) ; seçilen obje için referans noktası tayini (setq nok2 (getpoint "\n Obje nereye taşınacak ? TıKLa:")) ; seçilen objenin taşınması gereken yer (command "move" secim1 "" nok1 nok2 ) ; taşınma işleminin yapılması biryerden başka yere.. (princ) ) (Princ "Lispi çalıştırmak için > mov1 < yazınız! ") Burada nok1 diye görülen ifade kullanıcı tarafından tanımlanan değişkendir.Yani nok1 den kasıt ''nokta 1'' yada ''birinci nokta'' olarak düşünülüp ''nok1'' diye tanımlanmasıdır.. Bu tip ifadeler ilk bakışta anlamsız gelebilir.. Setq ' dan sonra gelen ilk ifade daima kullanıcı tarafından icad edilir.. Gördüğünüzde gözünüz korkmasın yani.. :D Kod: ; ssget ile seçilen objeyi
; bir noktadan başka bir noktaya ; copyalama yapma lispi (defun c:cpy1 () (prompt "Kopyalanacak objeleri seç !") ; kullanıcıya bilgi verelim ilk önce (setq secim1 (ssget)) ; seçim seti oluşturduk , objeyi seçtirdik (setq nok1 (getpoint "\n Objenin referans noktasını sec:")) ; seçilen obje için referans noktası tayini (setq nok2 (getpoint "\n Nereye kopyalanacak? TıKLa:")) ; seçilen objenin kopyalanması gereken yer (command "copy" secim1 "" nok1 nok2 ) ; kopyalama işleminin yapılması biryerden başka yere.. (princ) ) (Princ "Lispi çalıştırmak için > cpy1 < yazınız! ") yazgunesi (25.02.2009 11:56 GMT) |
25.02.2009 12:12
seyma_0034 |
ssget lispte bi kodmudur yoksa autocadde bi komutmu?
|
25.02.2009 12:15
fox |
komut satırına parentez içinde ssget yaz anlayacaksın.
lispte nesne seçtirmek için kullanılan seçim setinin kodu.
|
25.02.2009 12:20
yazgunesi |
ssget autolisp komutlarından biridir.Autocad komutu değildir. Birçok autocad komutları autolisp programının içinde kullanabiliyoruz iş yaptırmak için.Yukarıdaki örneklerde copy ve move komutlarını lisp programı içinde kullandık.
Autolisp komutları hangileridir , yada merak ettiğiniz komutun görevinin ne olduğunu öğrenebilmek için aşağıdaki adımları takip edin. İlk öncde F1 tuşuna bas Autocad acık iken... Aşağıdaki resimlere takip ederek bakınız.. [URL=http://img141.imageshack.us/my.php?image=hlp1.png][IMG]http://img141.imageshack.us/img141/9994/hlp1.th.png[/IMG][/URL] [URL=http://img210.imageshack.us/my.php?image=hlp2.png][IMG]http://img210.imageshack.us/img210/9682/hlp2.th.png[/IMG][/URL] [URL=http://img217.imageshack.us/my.php?image=hlp3.png][IMG]http://img217.imageshack.us/img217/4155/hlp3.th.png[/IMG][/URL] Autocad yardım menüsünü (dökumanını) ara sıra bakınız birçok bilgi mevcuttur.. yazgunesi (25.02.2009 12:51 GMT) |
25.02.2009 12:25
seyma_0034 |
hmm ok teşekkür ederim cvplar için.....
|
yazgunesi |
Şimdi 2 adet lisp yaptık ama bu iki lispi tek lisp olarak kullansak nasıl olur diye düşünelim ? :D Şimdi tüm kodları birleştirmeden yeni bir lisp yazalım.
Aşağıdaki görünen kodlar cpmov.lsp dosyasında yer alıyor.. Bir adet ana program lispi ve çalıştırılan diğer iki lispimiz. Kod: ;************************************************** ; Ana program yazımı ; iki adet lispi tek lisp programı ; olarak çalıştırma fikri.. (defun c:cpmov() ; yeni komutumuzu tanımlayalım.. (c:mov1) ; move yapan lispi çalıştıralım.. (c:cpy1) ; copy yapan lispi çalıştıralım.. (princ) ) ; Yeni komutun uygulanması için açıklama yapalım.. (Princ "Lispi çalıştırmak için > cpmov < yazınız! ") ; Ana program bitti.. ; ; ************************************************** ; ssget ile objeyi seçip ; bir noktadan diğer noktaya ; taşıma yapma lispi (defun c:mov1 () (prompt "Taşınacak objeleri seç !") (setq secim1 (ssget)) (setq nok1 (getpoint "\n Objenin referans noktasını sec:")) (setq nok2 (getpoint "\n Obje nereye taşınacak ? TıKLa:")) (command "move" secim1 "" nok1 nok2 ) (princ) ) ; Mevcut lisp için komut açıklama uyarısı iptal ettik. ; (Princ "Lispi çalıştırmak için > mov1 < yazınız! ") ; ssget ile seçilen objeyi ; bir noktadan başka bir noktaya ; copyalama yapma lispi (defun c:cpy1 () (prompt "Kopyalanacak objeleri seç !") (setq secim1 (ssget)) (setq nok1 (getpoint "\n Objenin referans noktasını sec:")) (setq nok2 (getpoint "\n Nereye kopyalanacak? TıKLa:")) (command "copy" secim1 "" nok1 nok2 ) (princ) ) ; Mevcut lisp için komut açıklama uyarısı iptal ettik. ; (Princ "Lispi çalıştırmak için > cpy1 < yazınız! ") Bu autolisp kodlarını nasıl kullanacağınızı bilmiyorsanız eğer aşağıdaki linkten; AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi konusunu incelemenizi öneririm... yazgunesi (26.03.2009 19:16 GMT) |