| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Block beschriftung ändern (3021 mal gelesen)
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 23. Mrz. 2012 08:02 <-- editieren / zitieren --> Unities abgeben:
Servus ich möchte die Eigenschaft Beschriftung auf ja stellen von mehren Blöcken. Mit dem angehängten Code kann man die Blockeinheit umstellen, geht das auch für die Beschriftung? Code: (vl-load-com) (vlax-for x (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-put-property x "Units" 0))
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 23. Mrz. 2012 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11
|
erstellt am: 23. Mrz. 2012 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Mit Lisp (ActiveX) scheint das nicht zu gehen, zumindest gibt vlax-dump-object keine geeigneten Properties oder Methoden aus: Code: ; IAcadBlock: Eine Blockdefinition, die einen Namen und einen Satz von Objekten enthält. ; Eigenschaftswerte: ; Application (RO) = #<VLA-OBJECT IAcadApplication 00... ; BlockScaling = 1 ; Comments = "" ; Count (RO) = 1 ; Document (RO) = #<VLA-OBJECT IAcadDocument 000... ; Explodable = 0 ; Handle (RO) = "264" ; HasExtensionDictionary (RO) = 0 ; IsDynamicBlock (RO) = 0 ; IsLayout (RO) = 0 ; IsXRef (RO) = 0 ; Layout (RO) = AutoCAD.Application: Die Eigenschaft ist... ; Name = "test" ; ObjectID (RO) = 47 ; ObjectID32 (RO) = 47 ; ObjectName (RO) = "AcDbBlockTableRecord" ; Origin = (0.0 0.0 0.0) ; OwnerID (RO) = 44 ; OwnerID32 (RO) = 44 ; Path = AutoCAD.Application: Nicht geeignet ; Units = 6 ; XRefDatabase (RO) = AutoCAD.Application: Keine Datenbank ; Unterstützte Methoden: ; Add3DFace (4) ...
Aber ich hab hier ein Lisp gefunden, das einfach den Block komplett neu definiert, dabei Command verwendet. Denn bei -BLOCK kann man die Beschriftungsfunktiontät mit angeben.
Code: Befehl: -BLOCK Blocknamen eingeben oder [?]: test Einfügebasispunkt angeben oder [Beschriftung]: b Beschriftungs-Block erstellen [Ja/Nein] <J>: j ...
In C# VB.net gibts verschiedene Properties bezüglich Beschriftung/Annotation die man setzen kann. Stichworte sind db.AnnotativeDwg, btr.Annotative, AnnotativeStates.True ...
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1143 Registriert: 20.12.2002
|
erstellt am: 23. Mrz. 2012 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Hallo Teste das mal Code: (setq el (car(nentsel))) (dumpAllProperties el 1)(setpropertyvalue el "annotative" 1)
------------------ Heinz [Diese Nachricht wurde von Dober Heinz am 23. Mrz. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 23. Mrz. 2012 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1143 Registriert: 20.12.2002
|
erstellt am: 23. Mrz. 2012 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1356 Registriert: 11.01.2006 WIN 10 ACAD 2022
|
erstellt am: 06. Okt. 2016 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Hallo zusammen, ich muss diesen Beitrag nochmal aufgreifen. Gibts zu dem Thema inzwischen irgendwas funktionierendes außer die Neudefinition über command ? Gefunden hab ich nix. Ich hab hier einen Plan mit Blöcken die sooooo sch... sind dass ich mich entschieden habe die Beschriftungseigenschaft dieser Blöcke auszuschalten. Leider sind es viele (6164 Blockdefinitionen und ich muss erst noch raussuchen welche ich bearbeiten muss). Wäre super wenn das irgendwie ginge, denn mit command sind dann auch alle dynamischen Eigenschaften weg.
------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Okt. 2016 10:17 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Du hast doch 2012 oder höher(2015), da kannst du ganz einfach das oben erwähnte setpropertyvalue für die Eigenschaft " annotative" verwenden, natürlich auf den Block und nicht auf die Blockreferenz wie oben gezeigt. Ein Einzeiler im fertigen Code. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1356 Registriert: 11.01.2006 WIN 10 ACAD 2022
|
erstellt am: 06. Okt. 2016 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Musste weg, bin wieder da. Wenn ich es so mache:
Code: (vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (setpropertyvalue (vlax-vla-object->ename blk) "annotative" 0 ) )
funktioniert es DANKE Mit tblnext bzw. einer Konstruktion mit tblobjname hats nicht funktioniert. Komisch, aber jetzt gehts ja. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 08. Okt. 2016 12:23 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Hallo, ich habe noch ein Code-Fragment zum Thema gefunden, vielleicht hilft's: Code:
;;;Flag 0 = Beschriftung aus, 1 = Beschriftung ein ;;;(JBf_Beschriftung:BlockDef "Test" 1) (defun JBf_Beschriftung:BlockDef (name flag / ) (regapp "AcadAnnotative") (entmod (append (entget (cdr (assoc 330 (entget (tblobjname "block" name))))) (list(list -3 (list "AcadAnnotative" '(1000 . "AnnotativeData") '(1002 . "{") (cons 1070 flag) (cons 1070 flag) '(1002 . "}") ) ) ) ) ) (princ))
------------------ viele Grüße Jörn http://www.bosse-engineering.com Liniensignaturen Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |