Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Abfrage von erzeugten Objekten...

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:  Abfrage von erzeugten Objekten... (955 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 27. Mai. 2017 11:53    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 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




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 27. Mai. 2017 15:15    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 cadplayer 10 Unities + Antwort hilfreich

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


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 29. Mai. 2017 15:48    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

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

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