| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: Block beschriftung ändern (3257 mal gelesen)
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general

 Beiträge: 3449 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: 13530 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: 9808 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, 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: 1147 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: 13530 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: 1147 Registriert: 20.12.2002
|
erstellt am: 23. Mrz. 2012 11:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Bernd P
|
Andreas Kraus Ehrenmitglied Elektrotechniker
    
 Beiträge: 1500 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
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: 22497 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 Ehrenmitglied Elektrotechniker
    
 Beiträge: 1500 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
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: 1776 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<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 |