15.03.2019 08:16    

ehya
AAttribute nesnesi de sonuçta bir blok nesnesidir. Blok nesneleri 0 (sıfır) layerında hazırlanmamış ise layer değişikliğinden etkilenmez.

BEDIT komutunu çalıştırın.
Ekrana gelen tablodan kullanılan blok nesnesini seçin.
Tüm nesneleri CTRL+A ile seçip layer'ını 0 olarak değiştirin. Renk seçeneğini de Bylayer yapın.
Blokeditor'u kapatın.

Ayrıca, "Zor değilmiş" demeyeydiniz daha iyi olurdu.

15.03.2019 08:45    

erhankomur
Zor değilmiş derken metraj lispi için demedim onu yıllarca uğraşsam yapamazdım herhalde onla ilgili bilgim yok.
Sizin yaptığınız lisp üzerinden değişiklik yapması zor değilmiş demek istedim .Yoksa emeğinize bir saygısızlık yapmam istemem.
İstemeden de olsa yanlış bir şey söylediysem özür dilerim.
Sayenizde günlerce uğraşacağım işi saatler içerisinde bitirebileceğim.
Emeğiniz ve uğraşınız için çok teşekkür ederim.

11.07.2020 12:04    

duranahmetkeskin
Üstad merhaba,
Aşağıdaki kod mtext için çalışmıyor kod eklemesi ile deneme yaptım ama yine olmadı. Sizden ricam tekrar bakabilir misiniz.

Alıntı
ehya :
Bu lispi bi deneyin. İşinize yarayacaktır.

Yazıları patlatmanıza gerek yok. Seçilen yazı "text" de olsa "attribute" de olsa excel'e yazacaktır.

ehya (14.07.2020 10:39 GMT)

14.07.2020 10:40    

ehya
Aşağıdaki kod Att, Text ve Mtext olarak seçim yapmaktadır.

Kod:

(defun att-oku (nesne)
  (setq att (vlax-invoke (vlax-ename->vla-object nesne) 'getattributes))
  (foreach aa att
    (cond
      ((eq (vla-get-TagString aa) "DAD")
       (setq dad (vlax-get-property aa 'TextString)))
      ((eq (vla-get-TagString aa) "CAP")
       (setq cap (vlax-get-property aa 'TextString)))
      ((eq (vla-get-TagString aa) "ARA")
       (setq ara (vlax-get-property aa 'TextString)))
      ((eq (vla-get-TagString aa) "BOY1")
       (setq boy1 (vlax-get-property aa 'TextString))))
    )
  (setq pp (strcat dad " " cap "/" ara " L=" boy1))
  )
(defun c:metraj ()
  (if (setq ss (ssget '((-4 . "<OR")
                        (0 . "*TEXT")
                        (-4 . "<AND")
                        (0 . "INSERT")
                        (66 . 1)
                        (-4 . "AND>")
                        (-4 . "OR>"))))
    (progn
      (command "layer" "new" "metraj_layer" "c" "3" "metraj_layer" "")
      (setq exel (open (strcat (getvar "dwgprefix")
                               (vl-filename-base (getvar "dwgname"))
                               ".xls")
                       "a"))
      (setq c 0
            say (sslength ss))
      (while (< c say)
        (setq tek (ssname ss c)
              tur (cdr (assoc 0 (entget tek))))
        (if (or (= tur "TEXT") (= tur "MTEXT"))
          (progn
            (setq ic (cdr (assoc 1 (entget tek))))
            (write-line ic exel)))
        (if (= tur "INSERT")
          (progn
            (att-oku tek)
            (write-line pp exel)))
        (vla-put-layer (vlax-ename->vla-object tek) "metraj_layer")
        (vla-put-color (vlax-ename->vla-object tek) acgreen)
        (setq c (1+ c)))
      (close exel)
      )
    )
  (princ))

06.07.2021 16:10    

erhankomur
Hocam ekte eklediğim dosya üzerinde lisp aşağıdaki hatayı veriyor. Yardımcı olursanız çok sevinirim.
Command: METRAJ
Select objects: 1 found
Select objects: layer
Current layer: "0"
Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: new
Enter name list for new layer(s): metraj_layer Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: c
New color [Truecolor/COlorbook] : 3
Enter name list of layer(s) for color 3 (green) <0>: metraj_layer Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]:
Command: ; error: bad argument type: stringp nil




410456-ornek-metraj.dwg

06.07.2021 16:20    

ehya
erhankomur




Hata vermesinin neden, lispte kullanılan Attribute TAG isimleri ile sizin kullandığınız TAG lar aynı değil.
Aynı hale çevirin yada lispteki tag isimlerini değiştirin.

06.07.2021 18:50    

erhankomur
tavsiyeniz üzerine biraz deneme yanılma ile yapabildim çok teşekkür ederim

22.06.2023 08:24    

klcdgny
hocam bi lispe çok uğraşmama rağmen poz numarasını tanımlatamadım yardımcı olabilir misin ?

27.07.2023 08:00    

umittaser
arkadaşlar selam. Elimdeki projede attribute yazıları bloğun rotate edilmesiyle beraber dönmüş durumda. bu yazıların tamamını nasıl tek seferde rotation değerini 0 yapabilirim? blok isimleride farklı ne yazıkkı :( bir yardımcı olun lütfen kafayı yiyeceğim :) birde şu şakilde bir lisp buldum ama herseferinde appload etmem gerekiyor ve tek obje seçtiriyor. bu modifiye edilse bile olur. çoklu seçim olması yeter :)
defun c:att0 ()
(princ "\nRotate All Attributes to 0 Degrees *NEW* ")
(setq ar nil
ar0 nil
ar1 nil
ar0 (car (setq ar (entsel)))
)
(while (/= ar0 nil)
(setq ar1 (entget ar0))
(if (= (cdr (assoc 0 ar1)) "ATTRIB")
(progn
(setq ar1 (subst (cons 50 0) (assoc 50 ar1) ar1))
(entmod ar1)
)
)
(setq ar01 nil
ar01 (entnext ar0)
ar0 nil
ar1 nil
ar0 ar01
)
)
(command "regen")
(princ)
)

28.07.2023 08:27    

baha07
Alıntı
umittaser :
arkadaşlar selam. Elimdeki projede attribute yazıları bloğun rotate edilmesiyle beraber dönmüş durumda. bu yazıların tamamını nasıl tek seferde rotation değerini 0 yapabilirim? blok isimleride farklı ne yazıkkı :( bir yardımcı olun lütfen kafayı yiyeceğim :) birde şu şakilde bir lisp buldum ama herseferinde appload etmem gerekiyor ve tek obje seçtiriyor. bu modifiye edilse bile olur. çoklu seçim olması yeter :)
defun c:att0 ()
(princ "\nRotate All Attributes to 0 Degrees *NEW* ")
(setq ar nil
ar0 nil
ar1 nil
ar0 (car (setq ar (entsel)))
)
(while (/= ar0 nil)
(setq ar1 (entget ar0))
(if (= (cdr (assoc 0 ar1)) "ATTRIB")
(progn
(setq ar1 (subst (cons 50 0) (assoc 50 ar1) ar1))
(entmod ar1)
)
)
(setq ar01 nil
ar01 (entnext ar0)
ar0 nil
ar1 nil
ar0 ar01
)
)
(command "regen")
(princ)
)




bu isini gormuyor mu ?

https://cizimokulu.com/forums.php?m=posts&p=65970#65970

Önceki Sayfa [1] [2] > 3 <
Copyright © 2004-2022 SQL: 0.952 saniye - Sorgu: 68 - Ortalama: 0.014 saniye