| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | AutoCAD und DWG-Dateien mit Enterprise Search durchsuchen, eine Pressemitteilung
|
Autor
|
Thema: Layer von Text in Blöcken ändern (3110 mal gelesen)
|
die_Pat Mitglied Bauzeichnerin

 Beiträge: 81 Registriert: 12.03.2004 hp Workstation Z200 Win 7 ACA 2014 Revit 2014
|
erstellt am: 11. Sep. 2013 07:43 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen! Ich habe Blöcke in einer Zeichnung, die jeweils eine Schraffur, Textobjekte und Attribute beinhalten. Die Blockelemente sind alle auf Layer 0 gezeichnet. Soweit so gut. Zum Problem: Die Texte und Attribute sollen auf den Planausdrucken nicht erscheinen. Sie dienen lediglich als Info in der Datei. Die Attribute kann ich über attmode dementsprechend sichtbar oder unsichtbar schalten. Die Texte jedoch nicht. Ich würde nun gern die Texte (und Attribute) auf einen eigenen Layer schieben, der dann unplotbar geschalten wird. Ist das irgendwie möglich oder muss ich alle Blöcke (es sind bisher schon weit über 200 und werden in der weiteren Planbearbeitung noch mehr) einzeln anfassen und ändern? Neue Blöcke kann ich ja gleich in der Form erstellen, aber was mach ich mit den bestehenden? Vielen Dank schon mal für evtl. Lösungsansätze! die_Pat Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Entsorger01 Moderator Techniker
       

 Beiträge: 3328 Registriert: 07.07.2006 ACAD 2021 Acrobat Prof. Creative Suite WIN10
|
erstellt am: 11. Sep. 2013 07:53 <-- editieren / zitieren --> Unities abgeben:          Nur für die_Pat
Zitat: Original erstellt von die_Pat: es sind bisher schon weit über 200
200 Block-Definitionen oder 200 Block-Referenzen? Es reicht ja die Blockdefinition(en) anzupassen. ------------------ Gruß Michi "Es ist schon alles gesagt, nur noch nicht von allen." (Karl Valentin) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer

 Beiträge: 9808 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
erstellt am: 11. Sep. 2013 08:25 <-- editieren / zitieren --> Unities abgeben:          Nur für die_Pat
|
die_Pat Mitglied Bauzeichnerin

 Beiträge: 81 Registriert: 12.03.2004 hp Workstation Z200 Win 7 ACA 2014 Revit 2014
|
erstellt am: 11. Sep. 2013 08:49 <-- editieren / zitieren --> Unities abgeben:         
Danke für die schnellen Antworten! @Michi: Es sind so viele verschiedene Block-Definitionen. @Udo: Das könnte mir helfen, bin allerdings eine 0 im Schreiben/Umschreiben von Programmierungen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
    

 Beiträge: 1998 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 11. Sep. 2013 09:06 <-- editieren / zitieren --> Unities abgeben:          Nur für die_Pat
Hier mal was... Code: (defun c:layer_n_plot( / Layername aw blnamen item block) (setq Layername "NICHT_DRUCKEN") (if(not(tblobjname"LAYER" Layername)) (command "_layer""_M" Layername "") ) (if(setq aw(ssget '((0 . "INSERT")))) (progn (mapcar '(lambda(x / n) (and (=(type x)'ENAME) (setq item(vlax-ename->vla-object x)) (if (vlax-property-available-p ITEM 'EffectiveName) (if(not(member (setq n(strcase (vla-get-EffectiveName ITEM))) blnamen ))(setq blnamen(cons n blnamen))) (if(not(member (setq n(strcase (vla-get-name ITEM))) blnamen ))(setq blnamen(cons n blnamen))) ) ) ) (mapcar 'cadr(ssnamex aw)) ) (mapcar '(lambda (Block) (vlax-for item (vl-catch-all-apply 'vla-item (list (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)) ) ;_ end of vla-get-blocks Block ) ;_ end of list ) ;_ end of vl-catch-all-apply (if(member (strcase (vla-get-objectname ITEM)) '("ACDBTEXT" "ACDBMTEXT") ) (vl-catch-all-error-p(vl-catch-all-apply 'vla-put-layer (list item Layername))) ) ) (command "_attsync" "_N" (vla-get-name item)) ) blnamen ) ) ) (princ) )
------------------ Gruß
CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 11. Sep. 2013 09:29 <-- editieren / zitieren --> Unities abgeben:          Nur für die_Pat
hmm und die anderen Eigenschaften der Texte ? Sind die fest vergeben oder "VonLayer" .. müssen die im Zuge der "Umlayerung" auf den Layer "NoPlot" "Fest in Abhängigkeit vom Ursprungslayer zugewiesen werden" ? Ansonsten auch noch ein Code von mir: (defun C:TEXT2LAYER(/ BLOCK ITEM ATTRIBUTLIST ATTRIBUT MACHWAS) (vl-load-com) (defun MACHWAS (ITEM) (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-layer (list ITEM "NOPLOTLAYER"))) ) (if(or(tblobjname "LAYER" "NOPLOTLAYER") (vl-catch-all-error-p (vl-catch-all-apply 'vla-add (list (vla-get-layers (vla-get-activedocument(vlax-get-acad-object)) ) "NOPLOTLAYER" ) ) ) ) (vlax-for BLOCK (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM BLOCK (if (member(strcase(vla-get-ObjectName ITEM)) '("ACDBBLOCKREFERENCE" "ACDBMINSERTBLOCK")) (if(and(=(vla-get-hasattributes ITEM) :vlax-true) (setq ATTRIBUTLIST (vlax-variant-value(vla-getattributes ITEM))) (=(vlax-safearray-get-dim ATTRIBUTLIST)1) (<=(vlax-safearray-get-l-bound ATTRIBUTLIST 1) (vlax-safearray-get-u-bound ATTRIBUTLIST 1) ) (setq ATTRIBUTLIST(vlax-safearray->list ATTRIBUTLIST)) ) (foreach ATTRIBUT ATTRIBUTLIST (MACHWAS ATTRIBUT) ) ) ) (if(member(strcase(vla-get-ObjectName ITEM)) '("ACDBTEXT" "ACDBMTEXT" "ACDBATTRIBUTDEFINITION")) (MACHWAS ITEM) ) ) ) ) (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports) ) ------------------ Also ich finde Unities gut ... und andere sicher auch ---------------------------------------
- Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
die_Pat Mitglied Bauzeichnerin

 Beiträge: 81 Registriert: 12.03.2004 hp Workstation Z200 Win 7 ACA 2014 Revit 2014
|
erstellt am: 11. Sep. 2013 10:27 <-- editieren / zitieren --> Unities abgeben:         
Wow, super, vielen vielen Dank! Beide Lisps laufen wunderbar. Für meine Zwecke wäre wohl eine Mischung aus beiden das Richtige! Aber ich denke, ich komm auch so klar. Bei der Lösung von CADwiesel kann man die Blöcke, die geändert werden sollen, einzeln auswählen. Ist bei dieser Zeichnung von Vorteil, da hier auch noch Blöcke mit Texten rumfliegen, bei denen die Texte weiterhin sichtbar/lesbar/plotbar sein müssen. Und bei der Lösung von CADmium (die Lisp saust ja nur so durch die Zeichnung, dass man's erst gar nicht merkt ), ist besser dass die Eigenschaften der Texte vonLayer sind und man die Geschichte global erledigen kann (aber halt bei dieser Zeichnung leider nicht). Ich trau mich gar nicht fragen, aber wäre es möglich, die Attribute auch mit auf den nicht zu druckenden Layer zu schieben? Natürlich reicht die Sichtbarkeitseinstellung mit attmode auch aus, aber die Blöcke wären dann layermässig aufgeräumter...bzw. wären dann an die neu zu erstellenden Blöcke (dort haben Texte und Attribute einen gemeinsamen Layer z.B. 001-TXT) angeglichen. Nochmal vielen Dank für die superschnelle Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |