_

Zmiana cech wszystkich elementów w blokach pliku dwg

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

Zmiana cech wszystkich elementów w blokach pliku dwg

Postprzez 88marcin » cze 08, 2017 14:34

Witam,

chciałbym aby wszystkie bloki (wszystkie tj. również te bloki w blokach) były "naprawione" wsadowo w ten sposób żeby elementy w nich miały cechy: koloru i grubości linii "jakwarstwa" lub "jakblok". (ew. przyporządkowanie wszystkich elementów na warstwę 0 w tych blokach).

Czy da się tez to zrobić z atrybutami tekstowymi bloków bloków aby miały kolor: jakwarstwa/jakblok?

Lisp FIXBLOCK, który odnalazłem działa tylko z blokami 1 rzędu - nie oddziałuje na bloki zagnieżdżone w blokach etc.
88marcin
 
Posty: 71
Dołączył(a): mar 22, 2016 12:08

Re: Zmiana cech wszystkich elementów w blokach pliku dwg

Postprzez ziele_o2k » cze 08, 2017 15:37

Ja używam czegoś takiego (gdzieś znalazłem i trochę zmodyfikowałem). Tylko, że to działa na wszystkie elementy w dwgu. Koloru wszystkiego jest zmieniane na byblock (abb) albo bylayer (abl).
Kod: Zaznacz cały
;;  AllColorBylayer.lsp [command name: ACB]
;;  To change the Color of ALL entities in the drawing, including those nested in
;;    Block definitions [but not Xrefs] and Dimension/Leader parts, to ByLayer.
;;  Kent Cooper, 27 February 2014, expanding on some elements by p_mcknight
 
(vl-load-com)
(defun C:abl ; = All to Color Bylayer
  (/ cb ent obj blk subent)
  (defun cb () ; = force Color(s) to Bylayer
    (setq obj (vlax-ename->vla-object ent))
    (vla-put-color obj 256); ByLayer
    (if (wcmatch (vla-get-ObjectName obj) "*Dimension,*Leader")
      (foreach prop '(DimensionLineColor ExtensionLineColor TextColor)
        ;; not all such entity types have all 3 properties, but all have at least one
        (if (vlax-property-available-p obj prop)
          (vlax-put obj prop 256); ByLayer
        ); if
      ); foreach
    ); if
  ); defun -- cb
;;  Top-level entities:
  (setq ent (entnext))
  (while ent
    (cb)
    (setq ent (entnext ent))
  ); while
;;  Nested entities in this drawing's Block definitions:
  (setq blk (tblnext "block" t))
  (while blk
    (if (= (logand 20 (cdr (assoc 70 blk))) 0); not an Xref [4] or Xref-dependent [16]
      (progn
        (setq ent (cdr (assoc -2 blk)))
        (while ent
          (cb)
          (setq ent (entnext ent))
        ); while
      ); progn
    ); if
    (setq blk (tblnext "block"))
  ); while
  (command "_.regenall")
  (princ)
); defun

(vl-load-com)
(defun C:abb ; = All to Color Bylayer
  (/ cb ent obj blk subent)
  (defun cb () ; = force Color(s) to Bylayer
    (setq obj (vlax-ename->vla-object ent))
    (vla-put-color obj 0); ByBlock
    (if (wcmatch (vla-get-ObjectName obj) "*Dimension,*Leader")
      (foreach prop '(DimensionLineColor ExtensionLineColor TextColor)
        ;; not all such entity types have all 3 properties, but all have at least one
        (if (vlax-property-available-p obj prop)
          (vlax-put obj prop 0); ByVlock
        ); if
      ); foreach
    ); if
  ); defun -- cb
;;  Top-level entities:
  (setq ent (entnext))
  (while ent
    (cb)
    (setq ent (entnext ent))
  ); while
;;  Nested entities in this drawing's Block definitions:
  (setq blk (tblnext "block" t))
  (while blk
    (if (= (logand 20 (cdr (assoc 70 blk))) 0); not an Xref [4] or Xref-dependent [16]
      (progn
        (setq ent (cdr (assoc -2 blk)))
        (while ent
          (cb)
          (setq ent (entnext ent))
        ); while
      ); progn
    ); if
    (setq blk (tblnext "block"))
  ); while
  (command "_.regenall")
  (princ)
); defun
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 520
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: Zmiana cech wszystkich elementów w blokach pliku dwg

Postprzez kruuger » cze 10, 2017 12:34

Avatar użytkownika
kruuger
 
Posty: 4783
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: Zmiana cech wszystkich elementów w blokach pliku dwg

Postprzez 88marcin » cze 22, 2017 12:42

Ziele_o2k, działa wyśmienicie - dzięki za tę wrzutkę.
88marcin
 
Posty: 71
Dołączył(a): mar 22, 2016 12:08


Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników