Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Block beschriftung ändern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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 (3006 mal gelesen)
Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 23. Mrz. 2012 08:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

mit dem Code ? .. Nein , das geht nicht.

P.S: das heißt , das Blockdefinitionsscannen ist schon ok .. aber "Beschriftung" ist keine Property !  Das mußt du ins ExtensionDictionary der Blockdefinition

------------------
      - 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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 23. Mrz. 2012 10:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 23. Mrz. 2012 11:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 23. Mrz. 2012 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

setpropertyvalue und dumpAllProperties gibts erst ab Version 2012 und mit nentsel kommt man auch nicht an die Blockdefinition

------------------
       - 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

Dober Heinz
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von Dober Heinz an!   Senden Sie eine Private Message an Dober Heinz  Schreiben Sie einen Gästebucheintrag für Dober Heinz

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 23. Mrz. 2012 11:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

Ja stimmt

Muss genauer lesen.


Sorry

------------------
Heinz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas Kraus
Mitglied
Elektrotechniker


Sehen Sie sich das Profil von Andreas Kraus an!   Senden Sie eine Private Message an Andreas Kraus  Schreiben Sie einen Gästebucheintrag für Andreas Kraus

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 06. Okt. 2016 09:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Okt. 2016 10:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Andreas Kraus an!   Senden Sie eine Private Message an Andreas Kraus  Schreiben Sie einen Gästebucheintrag für Andreas Kraus

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 06. Okt. 2016 15:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd P 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz