Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Benannte Text-Variablen im Layout ?

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Benannte Text-Variablen im Layout ? (1692 mal gelesen)
wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 06. Dez. 2007 11:34    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

Hallo.

Kann ich in einem Layout Texte als benannte Variablen definieren, die ich in einem VBA-Makro abfragen kann?

Ich meine, den Layoutnamen kann ich im Makro mit "ThisDrawing.ActiveLayout.Name" verwenden. Ich möchte nun darüberhinaus im Layout Texte mit variablem Inhalt benennen, z.B. mit dem Inhalt "Lageplan Blatt 1" oder "7.1". Im Makro möchte ich dann diese Inhalte verwenden können, z.B. unter den Benennungen "Planinhalt" bzw. "Anlagennummer". Geht das?

Ich könnte mir als Hilfskonstruktionen vorstellen, dass VBA jeweils einen Text sucht, der an einer bestimmten Stelle steht oder der mit einer bestimmten Zeichenfolge anfängt, aber vielleicht geht es ja direkt...

MfG,
wwwilli

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

Nemorem1
Mitglied



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

Beiträge: 17
Registriert: 24.09.2007

erstellt am: 06. Dez. 2007 11:51    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 wwwilli 10 Unities + Antwort hilfreich

Aye das geht direkter, mit attdef also Attributen.
Attribute haben Namen und einen Wert. Sie sind daher in VBA leicht wiederzufinden und zu ändern, ohne dass man bestimmte Koordinaten absuchen müsste.

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

wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 06. Dez. 2007 12:35    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

Hallo,
guter Anfang.

Vermutlich muss ich in VBA dann Objekte selektieren und alle mit
.ObjectName = "AcDbAttributeDefinition"
auf den richtigen .TagString testen.

Noch einige Fragen bitte:
- Ich will möglichst wenig Objekte durchsuchen müssen. Wie kriege ich nur die ACAD-Objekte des aktiven Layouts selektiert? Mit
"sset.Select (acSelectionSetAll)"
werden Elemente aus ALLEN Layouts und dem Modell ausgewählt. Oder gibt es eine Eigenschaft, die den Namen des Layouts angibt?

- Kann so ein Attribut seinen "Wert" anzeigen und nicht die "Bezeichnung", oder beides? Oder muss ich diese beiden Felder dazu umgekehrt verwenden?

MfG,
wwwilli

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 07. Dez. 2007 10:35    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 wwwilli 10 Unities + Antwort hilfreich

Hallo wwwilli,

jedes Layout wird in einem (als) Block verwaltet.

Code:
For Each layout In ThisDrawing.Layouts
    Debug.Print layout.Name, layout.Block.Count
    For Each entity In layout.Block
        Debug.Print entity.ObjectName
    Next entity
Next

Über Layout.Block kommst du an die Entitys eines Layouts.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 09. Dez. 2007 22:25    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

Hallo und danke.
Layout/Block/Entity probier ich Mo oder Di.

Weiß noch jemand was zur Wert-Anzeige bei Attributen? Oder muss ich in das Wesen der Attribute an und für sich tiefer einsteigen?

MfG,
wwwilli

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

wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 10. Dez. 2007 10:36    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

So, also,
es scheint, ich muss das Attribut als Bestandteil eines Blocks definieren und ins DWG einfügen. Aber wie kommt VBA dann noch an die einzelnen Attributeigenschaften wieder dran (.TagString und .TextString)?
MfG,
wwwilli

[Diese Nachricht wurde von wwwilli am 10. Dez. 2007 editiert.]

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

wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 10. Dez. 2007 11:43    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

OK, ich habe es wohl, mit
.HasAttributes und .GetAttributes ...

Danke und MfG,
wwwilli

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

wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 10. Dez. 2007 12:56    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

Hallo Stelli,
ich bekomme bei manchen DWG in der Schleife "For Each Entity" nach Durchlauf einiger Tausend Objekte immer einen Fehler, den ich nicht abfangen kann:
"Laufzeitfehler '-2147221231(80040111)': Automatisierungsfehler; ClassFactory kann angeforderte Klasse nicht liefern."

    For Each entity In layout.Block
        Debug.Print entity.ObjectName
    Next entity 'hier fehler?

Kann man die "Entities" irgendwie anders ansprechen? Mit .Item(i) von irgendwas? Dann könnte ich ein "Resume Next" benutzen, um evtl. fehlerhafte Objekte zu übergehen. Aber ich komme nicht drauf.
MfG,
wwwilli

[Diese Nachricht wurde von wwwilli am 10. Dez. 2007 editiert.]

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

wwwilli
Mitglied
Ingenieur


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

Beiträge: 410
Registriert: 21.03.2006

ACAD MAP 3D 2012.
VestraCAD.
Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.

erstellt am: 11. Dez. 2007 13:10    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

Naja, es geht.
Hatte wohl ein kleines SET vergessen oder so... 
MfG,
wwwilli

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)2025 CAD.de | Impressum | Datenschutz