| | |
 | 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 neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
|
Autor
|
Thema: Blockattribute von Hand eingeben (1100 / mal gelesen)
|
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 21. Dez. 2016 10:50 <-- editieren / zitieren --> Unities abgeben:         
Liebes Forum, ich habe eine Blockreferenz eingefügt, und wenn die Blockreferenz Attribute hat, dann soll das Fenster aufgehen, in dem der Benutzer die Attribute von Hand eingeben kann. So, als ob man einen Doppelklick auf die Blockreferenz macht. Wie muss ich da an dieser Stelle weitermachen? Code:
... If BlkRef.HasAttributes = True Then BlkRef.??? OpenDialog?? Endif ...
------------------ Grüße aus München Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22689 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 21. Dez. 2016 11:21 <-- editieren / zitieren --> Unities abgeben:          Nur für otm
Der AutoCAD-Befehl zum bearbeiten-Dialog lautet ATTEDIT Wenn du jedoch direkt davor die Blockreferenz mit dem Programm eingefügt hast, dann wäre es ja sinnig(er) die Blockreferenz über den AutoCAD-Befehl einzufügen. Denn da wird dann "wie gewohnt" gearbeitet und ATTREQ, ATTDIA, berücksichtigt. Und ggf. auch wie die Attribute definiert sind (Vorgabewerte etc.) Ansonsten: Befehl ATTEDIT und das (letzte?) Objekt übergeben (Objektwahl letztes)
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 21. Dez. 2016 12:18 <-- editieren / zitieren --> Unities abgeben:         
Ich muss den Block über ein VBA-Makro einfügen. Wenn ich mit thisdrawing.sendcommand "eattedit " aufrufe, wie gebe ich ihm dann das letzte Objekt mit? ------------------ Grüße aus München Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神

 Beiträge: 22689 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 21. Dez. 2016 12:44 <-- editieren / zitieren --> Unities abgeben:          Nur für otm
sendcommand bedeutet ja: übergebe die nachfolgenden Parameter/Argumente an die Befehlszeile. Also ahme die Eingabe per Hand nach. In AutoCAD gibt es die Objektwahlmethode L bzw. Letztes (Objektwahlmethoden in Acad, siehe Befehl WAHL in der Hilfe) Test es in AutoCAD, das hat nichts mit VBA zutun: Befehl: _MOVE Objekte wählen: _last 1 gefunden Ich habe hier die internationale Schreibweise gewählt damit es in jeder Sprachversion läuft, gleiches sollte man für den Befehl machen: _MOVE anstatt Schieben in meinem Beispiel.
Du mußt dann noch dafür sorgen dass der Einfügelayer und alle Attributlayer entsperrt sind, sonst akzeptiert _.EATTEDIT die Blockreferenz nicht als gültiges Objekt, aber auch das hat nichts mit VBA zutun, so ist halt die Funktionsweise von dem AutoCAD-Befehl und den AutoCAD-Layern. Für die Befehlszeile zum testen: kopiere eine Blockreferenz mit Attributen (damit diese definitiv das LETZTE Objekt darstellt) und dann copy&paste folgende Zeile in die Befehlszeile:
Code: ; copypaste ab nächster Zeile _VBASTMT ThisDrawing.SendCommand "_.EATTEDIT" & vbCr & "_last" & vbCr; bis vorherige Leerzeile
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 21. Dez. 2016 12:57 <-- editieren / zitieren --> Unities abgeben:         
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2880 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 21. Dez. 2016 16:25 <-- editieren / zitieren --> Unities abgeben:          Nur für otm
Hallo Christian, Als Alternative zum eattedit wäre auch folgende Vorgehensweise möglich: Du hast ein Formular mit einem Listenfeld mit zwei Spalten und eine Textbox Wenn der gesetzte Block Attribute hat holst Du Dir die Feldnamen (Tagstring) mittels getattributes in die Listbox und lässt diese anzeigen Durch tippen auf eine Zeile wird der Wert in der Textbox angezeigt und kann dort bearbeitet werden Beim Schließen des Formulares übergibst Du die Werte aus der Listbox wieder dem Block (TextString) Ist etwas aufwändiger, falls Du Code brauchst gib Bescheid Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| | Anzeige: | Infos zum Werbeplatz >> | BlechCAD 3D CAD APP für Blechverarbeitung Metallbau- Fassadenbau- Planer, die aus fertigen Ansichten und Schnitten von Blechen, die Abwicklung zu bearbeiten haben, für eine NC-Software und Kantbankdaten.
Speziell für Aufträge die immer verschiedene Blecharten und Abmessungen aufweisen.
Blechabwicklungen für die Fertigung erstellen in 2-3 Mi
|
|
otm Mitglied Bauingenieur
 
 Beiträge: 192 Registriert: 26.08.2009 MS Win 10 AutoCAD Civil 3D 2023.2.1 Update VBA Enabler 2019 MS Access Database Enginge X64 MSO 365 (64bit)
|
erstellt am: 27. Jan. 2017 21:33 <-- editieren / zitieren --> Unities abgeben:         
|