| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Abfrage von erzeugten Objekten... (955 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 27. Mai. 2017 11:53 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal! Eine Frage zu erzeugten Objekte mit der Methode "SendStringToExecute" Code: public static void ObjectsToEnclose(Entity acEnt) { Document acDoc = Application.DocumentManager.MdiActiveDocument; string strHandle = acEnt.Handle.ToString(); acDoc.SendStringToExecute("lineworkshrinkwrap ", true, false, false); string command = string.Format("(handent \"" + strHandle + "\") "); acDoc.SendStringToExecute(command, true, false, false); }
Nachdem die Methode ausgeführt wurde, werden die erzeugten Objekt inform von Polylinien angezeigt. Diese möchte ich gern einsammeln. Das Problem ist, vermutlich werden die Objekte erst erzeugt nachdem SendStringToExecute ausgeführt und damit der Befehl/Applikation beendet ist Ein Test mit folgender Methode ergab, dass der letzte Eintrag nicht die Objekte aus SendStringToExecute sind, sondern das Entity vor Ausführung ObjectsToEnclose()
Code:
public static ObjectId GetLastEntity() { return Autodesk.AutoCAD.Internal.Utils.EntLast(); }
------------------ Gruss Dirk Blog
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 27. Mai. 2017 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
... DatabaseReactor, der anspringt, wenn ein Object der Database hinzugefügt wurde, könnte eine Lösung dafür sein. Grüße! Holger PS: darum würde ich doch noch etwas Aufwand in eine Lösung ohne SendStringToExecute stecken. ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 29. Mai. 2017 15:48 <-- editieren / zitieren --> Unities abgeben:
Danke für den Tip. Du hast Recht - ich sollte mir einmal mehr Gedanken machen den Weg mit senttoexecute zu umgehen. Zumal der Autocad Befehl in Civil3d so funktioniert, dass im Anschluss nach Anwendung von lineworkshrinkwrap die erzeugten Polylinien markiert dargestellt werden. Zum HG des Befehls lineworkshrinkwrap werden Umgrenzungslinien von gewählten Blöcken oder "ähnlichen" Autocad objekten gezeichnet. Da ich hierbei Mesh objekte wähle, bleibt mir die Möglichkeit die Vertices auszulesen. Diese könnte ich mittels DBPoint sichtbar machen, um dann eine Umgrenzung zu berechnen. Hatt das jemand schonmal probiert, anhand von Punkten eine äussere Begrenzung inform eines Polygones zu zeichnen ?
------------------ Gruss Dirk Blog
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|