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.

21.06.2012 15:25    

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

> 1 <
Copyright © 2004-2022 SQL: 0.907 saniye - Sorgu: 63 - Ortalama: 0.0144 saniye