09.04.2010 11:55    

macapapazi
İyi Çalışmalar Sayın Grup Üyeleri,

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.

Saygılar

09.04.2010 12:32    

yazgunesi
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...

09.04.2010 12:42    

macapapazi
İyi Çalışmalar Grup Üyeleri,

Yazdıgım yazıda eksik anlatım yapmışım.Benim yapmak istedigim L=125.8, L=456.8, L=856.45 .... gibi yazıları seçtirip, katmanları (layer) değiştirmek.

09.04.2010 13:14    

yazgunesi
Layer değiştirmek konusunda örnek program buldum.. Örnek programın istediğinizin yapabilmesi için içeriğini biraz değiştirilmesi gerekiyor..



Linkleri görebilmek için ÜYE olmalısınız.



Kod:

;;;;;change layer;;;;;;;

(defun c:ldef (/ ss)
(while
(setq ss (car (entsel "\nSelect an object to move layer")))
(command "_layer" "m" "defpoints" "c" 8 "" "")
(command "_chprop" ss "" "la" "defpoints" "")
) ; while
(princ)
)



Kod:

;;;concrete
;;; example lc18 = (layer, concrete_01)

(defun c:lc18 (/ ss)
(while
(setq ss (car (entsel "\nSelect an object to move layer")))
(command "_layer" "m" "concrete_018" "c" "magenta" "" "")
(command "_chprop" ss "" "la" "concrete_025" "")
) ; while
(princ)
)



Kod:

(defun c:ldef (/ ss)
   (princ "\nSelect object to move to DEFPOINTS layer")
   (setq ss (ssget))
   (command "_layer" "m" "defpoints" "c" 8 "" "")
   (command "_chprop" ss "" "la" "defpoints" "")
   (princ)
)

09.04.2010 13:18    

macapapazi
teşekkurler...

09.04.2010 13:19    

ProhibiT
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)))
  (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...

ProhibiT (23.12.2012 08:34 GMT)

09.04.2010 13:41    

macapapazi
İyi Çalışmalar Grup Üyeleri,

"yazgunesi" ve "ProhibiT" nikli arkadaşlarıma göstermiş oldugunuz ilgiden dolayı çok teşekkür ederim

Saygılar

> 1 <
Copyright © 2004-2022 SQL: 1.195 saniye - Sorgu: 61 - Ortalama: 0.01959 saniye