17.06.2008 16:15    

meteyus
Kolay gelsin arkadaslar cizimde silmek istediğim objeyi veya objelerin uzerine tıkladıkca silme islemini yapacak ve
istediğim zaman bitirecek bir lisp varmı.

17.06.2008 16:28    

miyatu
(defun c:ts ()
(setq nesne_seç (entsel "\n silinecek objeyi seç:"))
(while (/= nesne_seç nil)
(command "erase" nesne_seç "")
(setq nesne_seç (entsel "\n silinecek diger objeyi seç:"))))

denemedim ama işini görür...

bunun yerine erase komutunu çalıştırdıktan sonra space tuşuna basılı tutarak istediğin nesneleri tıklarsan aynı işi görür...

en azından ben öle yapıyorum :) ...

17.06.2008 17:06    

meteyus
teşekkürler miyatu
fakat burada eger objeyi secemediğsen devre dışı kalıyor. esc yapana kadar kalmazsa iyi olur teşekkürler

17.06.2008 19:53    

ehya
Aşağıdaki lispi kullan. İşine yarayacaktır. Komut ismi TG


Kod:

(defun c:tg ()
  (setvar "errno" 0)
  (setq nnil nil)
  (while (= nnil nil)
    (setq tg_sec (ssget ":s"))
    (if (= tg_sec nil)
      (progn
(if (= (getvar "errno") 52)
  (progn
    (setq nnil t))))
      (progn
(command "erase" tg_sec ""))))(princ))

18.06.2008 06:36    

SENDUR
ehya senden bir lisp isteye bilirmiyim.
layoff ve layon komutunu lisp olarak lazım.

mechanical destop 2006 da layoff ve layon komutunu kullanamıyorum onun yerine lisp yazabilirmiyiz.

18.06.2008 07:22    

SENDUR
peki bunun layon olanı var mı

18.06.2008 07:23    

ehya
Şenol çok hızlısın. :)
Lisp öğrenmeyi kafaya iyice koymuşsun. Tebrik ederim :) Bi de "layon " komutunu yaz da tam olsun.

Aklıma gelmişken, yavaş yavaş lisp içinde autocad komutlarını kullanmayı bırakmaya başla. Örneğin bu komutta "off" işlemini veritabanından kapatmaya çalış.
Nasıl olacak deme. Elinde kitap var :)





Ya şenol "layon" komutunu yazmışsın da, peki layoff yapılan nesne ekranda görünmüyorsa neyi seçtirerek açtırmayı düşünüyorsun? :)

18.06.2008 07:34    

SENDUR
şenol eline sağlık güzel olmuş
ama bu layon komutu çalışırken selec obje diyo all yazmam gerekiyor ( kendi yazsa daha iyi olur) bide çok fazla işlem yapıyor zaman alıyor bu düzele bilir mi ? birde layoff da geçerli layer ı kapatmak biraz sorun sadece y ye basarak kapattamaz mıyız

18.06.2008 09:00    

ehya
Şenol da sıkıştığında topu bana atıyo :)
Neyse aşağıdaki lisp, layoff ile layon komutunun benzeri.
Komut isimleri kapatmak için LOF, açmak için ise LON dur.

Kod:

(defun c:lof ()
  (setq nnil nil)
  (setvar "errno" 0)
  (while (= nnil nil)
    (setq loo_sec (entsel "\nLayer'ı kapatılacak nesneyi seçin:"))
    (if (= loo_sec nil)
    (progn
      (if (= (getvar "errno") 7)
(progn
  (setvar "errno" 0)
  (setq nnil nil)))
      (if (= (getvar "errno") 52)
(progn
  (setvar "errno" 0)
  (setq nnil t))))
      (progn
(setq loo_cur (getvar "clayer"))
(setq loo_sec_kat (cdr (assoc 8 (entget (car loo_sec)))))
(if (= loo_sec_kat loo_cur)
  (progn
    (initget "Evet Hayır")
    (setq loo_secenek (getkword "\nGüncel katman kapatılsın mı? [Evet/Hayır]  <Hayır>:"))
    (if (and (= loo_secenek nil)(= loo_secenek "Hayır"))
      (progn
))
    (progn
    (if (= loo_secenek "Evet")
      (progn
(command "_-layer" "off" loo_sec_kat "y" "")
))))
(progn
(command "_-layer" "off" loo_sec_kat "")
))))) (setq nnil t)(princ))
(defun c:lon ()
(command "layer" "on" "*" "")(princ))

18.06.2008 09:57    

SENDUR
eline sağlık işte tam olarak bu :)

18.06.2008 10:23    

SENDUR
aslında seninki daha iyi :)
eline sağlık ben zaten senin yazığını kullanıyorum :)

18.06.2008 15:46    

miyatu
Alıntı
meteyus :
teşekkürler miyatu
fakat burada eger objeyi secemediğsen devre dışı kalıyor. esc yapana kadar kalmazsa iyi olur teşekkürler



whileden sonraki nil yerine bir dize yaz ozaman sen esc yapana kadar devam edecektir... en azından öyle olmasını umuyorum... kolay gelsin...

18.06.2008 18:11    

meteyus
(defun c:ts ()
(setq nesne_seç (entsel "\n silinecek objeyi seç:"))
(setq yy_c 0)
(setq yy_D 2)
(while (/= yy_c yy_D)

(command "erase" nesne_seç "")
(setq nesne_seç (entsel "\n silinecek diger objeyi seç:"))))


yapınca oldu sagol

> 1 <
Copyright © 2004-2022 SQL: 1.396 saniye - Sorgu: 79 - Ortalama: 0.01766 saniye