Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

AutoCAD - Blockreferenzen auflösen - nur sichtbare und ausgefüllte Attribute

4 ANTWORTEN 4
GELÖST
Antworten
Nachricht 1 von 5
karel.grygar.jr
1737 Aufrufe, 4 Antworten

AutoCAD - Blockreferenzen auflösen - nur sichtbare und ausgefüllte Attribute

Hallo zusammen,

 

wie kann man nur die sichtbare und zugleich ausgefühlte Attribute aus einer/mehreren Blockreferenzen in Texte mit gleicher Formatierung (ursprüngliche Eigenschaften) auflösen? Mit Befehl EXPLODE ist das Ergebnis nicht nutzbar. Nach Verwendung vom Befehl BURST, werden leider alle ausgefüllte (sichtbare sowie auch unsichtbare) Attribute in Text umgewandelt. Da sich in meinen Zeichnungen sehr viele solche und ähnliche Blöcke befinden, wo die Texte (nach Auflösen mittels BURST) noch identische Eigenschaften zu anderen Objekten haben (Layer, usw.), ist eine spätere Auswahl unmöglich, um die ungewünschten Texte (ursprünglich unsichtbare Attribute) zu löschen. 

 

Ein Beispiel mit Befehl BURST - gewünschte Form nach Auflösen sollte identisch zum Original sein:

Blockreferenz mit Attributen.PNG

 

Vielen Dank im Voraus für Ideen

 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
4 ANTWORTEN 4
Nachricht 2 von 5
cadffm
als Antwort auf: karel.grygar.jr

Burst konvertiert auch LEERE Attribute um.

Immerhin kann heutzutage Bereinig auch diese einfach löschen.

 

Ich sitze nicht am Rechner um es zu prüfen, aber dennoch:

 

 

In Acad  gibt es die Funktion nicht,

burst ist aus den ollen Expresstools und eine Programmerweiterung.

Du brauchst eine Erweiterung welche deinem Wunsch entspricht.

Mir fällt aus dem effeff nur folgendes ein zum testen:

ATTRTXT.LSP

Keine Ahnung ob das dem entspricht, aber was das "Sichtbar" angeht könntest du damit Glück haben.

Sehr schön: Man hat auch die Option die Texte zu erstellen ohne die Blöcke aufzulösen (und wieder herstellen zu müssen, falls man das mal als Ziel hat)

 

Berichte uns

 

- Sebastian -
Nachricht 3 von 5
karel.grygar.jr
als Antwort auf: cadffm

Ich habe folgende Routine ATTRTXT.LSP getestet:

 

;*************************************************************************
;** Datei ATTRTXT.LSP
;** Dient zum Umwandeln von sichtbaren Blockattributen in Text
;*************************************************************************
;** Funktionen
;** C:ATTRTOTXT_EXP     Wandelt sichtbare Blockattribute in Text um und 
;**                     zerlegt den Block
;** C:ATTRTOTXT_NOEXP   Wandelt sichtbare Blockattribute in Text und setzt
;**                     alle Attributwerte des Blocks auf "", der Block 
;**                     wird nicht zerlegt
;*************************************************************************
;** Autor: NAVRATIL Heinz
;** Stand: 04.11.1998
;** Ver.:  4.2 -- AutoCAD Ver. 13 / 14
;** email: hnavratil@KGH.KABA.com
;*************************************************************************

;** ----------------------------------------------------------------------
;** C:ATTRTOTXT_EXP
;** ----------------------------------------------------------------------
(defun C:attrtotxt_exp( / as i e el bn nl l1 l2)
  (if (setq as (ssget))
    (progn
      (setq i 0)
      (while (setq e (ssname as i))
        (setq el (entget e))
        (if (/= (assoc 66 el) nil)
          (progn
            (setq bn e)
            (while (/= (cdr (assoc 0 (setq el (entget e)))) "SEQEND")
              (if (and (= (cdr (assoc 0 el)) "ATTRIB")
                       (/= (logand (cdr (assoc 70 el)) 1) 1)
                  )
                (progn
                  (setq nl (cdr el))
                  (setq nl (subst '(0 . "TEXT") (assoc 0 nl) nl))
                  (setq l1 (cdr (member (assoc 2 nl) nl)))
                  (setq l2 (reverse (cdr (member (assoc 2 nl) (reverse nl)))))
                  (setq nl (append l2 l1))
                  (setq l1 (cdr (member (assoc 70 nl) nl)))
                  (setq l2 (reverse (cdr (member (assoc 70 nl) (reverse nl)))))
                  (setq nl (append l2 l1))
                  (setq nl (subst (cons 73 (cdr (assoc 74 nl))) (assoc 74 nl) nl))
                  (entmake nl)
                )
              )
              (setq e (entnext e))
            )
            (setq le (entlast))
            (command "._EXPLODE" bn)
            (while (setq le (entnext le))
              (if (= (cdr (assoc 0 (entget le))) "ATTDEF")
                (entdel le)
              )
            )
          )
        )
        (setq i (1+ i))
      )
      (command "._REGEN")
    )
  )
  'DANKE
)


;** ----------------------------------------------------------------------
;** C:ATTRTOTXT_NOEXP
;** ----------------------------------------------------------------------
(defun C:attrtotxt_noexp( / as i e el bn nl l1 l2)
  (if (setq as (ssget))
    (progn
      (setq i 0)
      (while (setq e (ssname as i))
        (setq el (entget e))
        (if (/= (assoc 66 el) nil)
          (progn
            (setq bn e)
            (while (/= (cdr (assoc 0 (setq el (entget e)))) "SEQEND")
              (if (and (= (cdr (assoc 0 el)) "ATTRIB")
                       (/= (logand (cdr (assoc 70 el)) 1) 1)
                  )
                (progn
                  (setq nl (cdr el))
                  (setq nl (subst '(0 . "TEXT") (assoc 0 nl) nl))
                  (setq l1 (cdr (member (assoc 2 nl) nl)))
                  (setq l2 (reverse (cdr (member (assoc 2 nl) (reverse nl)))))
                  (setq nl (append l2 l1))
                  (setq l1 (cdr (member (assoc 70 nl) nl)))
                  (setq l2 (reverse (cdr (member (assoc 70 nl) (reverse nl)))))
                  (setq nl (append l2 l1))
                  (setq nl (subst (cons 73 (cdr (assoc 74 nl))) (assoc 74 nl) nl))
                  (entmake nl)
                  (setq el (subst '(1 . "") (assoc 2 el) el))
                  (entmod el)
                )
              )
              (setq e (entnext e))
            )
          )
        )
        (entupd bn)
        (setq i (1+ i))
      )
      (command "._REGEN")
    )
  )
  'DANKE
)

(princ "\nAufruf mit: attrtotxt_exp oder attrtotxt_noexp\n")
(princ)

 

Leider bekomme ich für beide Optionen nur folgende Fehlermeldungen und die Blockreferenz wird beim ATTRTOTXT_NOEXP noch dazu gelöscht.

 

ATTRTXT.PNG

 

ATTRTXTNO.PNG

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 4 von 5
udo.huebner
als Antwort auf: karel.grygar.jr

Lee Mac hat eine verbesserte (upgraded) Version des Burst Befehls aus den Expresstools, der genau die bechriebenen Schwächen behebt. U. a. werden unsichtbare Attribute nicht umgewandelt.

http://www.lee-mac.com/upgradedburst.html

 

Nachricht 5 von 5
karel.grygar.jr
als Antwort auf: udo.huebner

Danke schön!

 

Nburst ist Klasse, das habe ich gesucht

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen