Copyright © 2004-2022 SQL: 0.907 saniye - Sorgu: 63 - Ortalama: 0.0144 saniye
07.02.2011 09:24
ehmet06tr |
Bu benim ilk mesajım olduğu için hepinize saygılar sevgiler merhabalar efendim.
arkadaşlar autocadin komut satırına burst komutunu yazdığım ve çalıştırdığım halde autolispten bu komutu çalıştıramıyorum. autocad bu komutu bir türlü algılayamadı. nasıl bir şey önerebilirsiniz ???
|
07.02.2011 10:01
ProhibiT |
Merhaba ahmet06tr,
bahsettiğimiz burst autocad'in internal command'i olmadığından, (command "burst". . . formatında kullanılamaz. autocad klasörünüzün altındaki express alt klasöründe yer alan burst. Lsp adlı bir autolisp dosyası olarak bulunur. fonskiyon kodunun başındaki; (defun c:burst (/ item bitset bump att-text lastent burst-one burst bcnt blayer bcolor elast bltype etype psflag ename ) ifadesinde local variable olarak tanımlanmış sub-function'ları generic yaparsanız. yani (defun c:burst ( ) şeklinde yazarsanız. aşağıda yer alan burst-one fonksiyonunun beklediği parametre (defun burst-one (bname / bent aname ent atype aent agaın ename ent bblock ss-color ss-layer ss-ltype mirror ss-mirror mlast) bname olduğuna göre. autolisp fonksiyonunuz içinden; (load (findfile "burst. Lsp") ile fonksiyonu yükledikten sonra. önce burst edilecek block seçildikten sonra; (burst-one bname) şeklinde fonksiyonu çağırabilirsiniz. aslına bakarsanız, bu kadar dolambaçlı yol izlemek yerine, express tolls altıbdaki burst. Lsp dosyasından işinize yarayacak kısmı alıp, kendi kodunuz içinde fonksyion olarak tanımlamak ve oradan çaırmak daha pratik. kolay gelsin.
|
21.06.2012 12:14
ehmet06tr |
tmm dediğiniz gibi yaptım ayarladım. Expres'deki lispi buldum.
fonksiyon gibi görünüyor şu anda. fakat bu fonksiyonu nasıl çağıracağım ve aynı command komutuyla çağırdığım gibi tırnak işareti içinde nasıl otomatik komutlar verebileceğim.?
|
21.06.2012 12:18
ehmet06tr |
fonksiyonu çağırmayı da başardım fakat select object kısmını autolisp'ten nasıl geçeceğimi keşfedemedim.
mesela fonksiyonu ove olarak tanımladıysam (ove) şeklinde çağırıyorum ama ilk sorduğu soru select object bunu autolispt nasıl tüm objeleri seç şekline çevirebilirim ve işlemi kesintiye uğramadan devam ettirebilirim ?
|
21.06.2012 14:08
Travaci |
Select komutu için bir örnek
Kod: (command "select" (ssget "x" (list (cons 2 "blockadı"))))
|
21.06.2012 14:51
ehmet06tr |
şimdi ben aslında select komutunu sormuyorum.
daha doğrusu şöyle. eğerki burst komutunun içeriğini veya overkill komutunun içeriğini inceleme şansını yakalamışsanız (ki express klasörünün içinde lispleri mevcut) bu kodlarda select komutuna rastlamazsınız. overkill yazdığınızda ya da burst yazdığınızda direk select objects yazısı gelmekte. fakat bu yazı nereden gelmekte bulamadım çünkü "select objects" ile ilgi bir bilgi kodlar arasında bulamadım. o yüzden araya "all" gibi bir komutu yerleştiremiyorum. kendi lispimin içine prohibitin dediği gibi tüm lispi kopyaladım. normalde burst komut iken fonksiyona çevirdim. fonksiyon olarak çağırmaktayım. ama fonksiyonun kendi argumanı yok, sadece local değişkeni var. bir argüman olsaydı bu argümanı fonksiyonu çağırıken "all" olarak gösterebilirdim. Ama şimdi nereye "all" koyacağımı bulamadım.
|
Travaci |
Kod: ;----------------------------------------------------- ; BURST MAIN ROUTINE ;----------------------------------------------------- (Defun BURST (/ SS1) (Setq SS1 (ssget "x" (list (cons 2 "blokadı")))) (If SS1 (Progn (Setvar "highlight" 0) (terpri) (Repeat (SsLength SS1) (Setq ENAME (SsName SS1 0)) (SsDel ENAME SS1) (BURST-ONE ENAME) ) (princ "\n") ) ) ) yada istediğiniz şekil Kod: ;-----------------------------------------------------
; BURST MAIN ROUTINE ;----------------------------------------------------- (Defun BURST (/ SS1) (Setq SS1 (ssget "all")) (If SS1 (Progn (Setvar "highlight" 0) (terpri) (Repeat (SsLength SS1) (Setq ENAME (SsName SS1 0)) (SsDel ENAME SS1) (BURST-ONE ENAME) ) (princ "\n") ) ) )
|