Elimdeki autocad dosyasının içinde birçok yazı var (L=125.8, 1:235.5 , L=456.8, 856.45.... gibi) ..ben bu dosyanın içinden sadece " L= " diye başlayan textleri seçmek istiyorum.bunu yapabılecegim bir lip varmı acaba....
not: filter veya qselect,find and replace komutlarını denedim işe yaramıyor.ayrıca buldugum bir kaç lisp ön ve arkasına ek getiriyor fakat seçim yaptırmıyor.
Bu yazılara ilgili yapmak istediğiniz işlem tam olarak nedir acaba ? Metin objeleri ile ilgili çeşitli Autolisp program örnekleri gördüm...
L=125.8, L=456.8, L=856.45 .... gibi yazıları seçtirip, rakamların toplamlarını mı bulmak istiyorsunuz? Demek istediğim toplam boy hesabı yaptırma seçilen metinler içinden...
(defun C:LB ()
(setq s0 (ssget "x" (list (cons 0 "text"))) l (sslength s0) n 0 s1 (ssadd))
(while (< n l)
(if (eq "L=" (substr (cdr (assoc 1 (entget (ssname s0 n)))) 1 2))
(ssadd (ssname s0 n) s1)) (setq n (1+ n)))
(command "select" s1 "")
(prin1)
)
Fonksiyonunu kullanarak Bütün çizim içinde "L=" ile başlayan Text objelerini seçebilirsiniz.
Seçilen objeler "Previous Selection Set" e alınır ve bir sonraki komutunuzda kullanabilirsiniz.
Kolay gelsin...
Düzenleme:
Kod:
(defun C:LB ()
(setq s0 (ssget "x" (list (cons 0 "text"))) l (sslength s0) n 0 s1 (ssadd))
(while (< n l)
(if (eq "L=" (substr (cdr (assoc 1 (entget (ssname s0 n)))) 1 2))
(ssadd (ssname s0 n) s1)) (setq n (1+ n)))
(setq ly (cdr (assoc 8 (entget (car (entsel "\nLayer için obje seçiniz...: "))))))
(command "change" s1 "" "p" "la" ly "")
(prin1)
)
Drawing dosyası içinde "L=" ile başlayan bütün Text Objelerini seçer.
Hedef Layer'da yer alan bir obje seçildiğinde, "L=" ile başlayan bütün objeler bu Layer'a taşınır...