| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Bedingungen in SelectObjects() (888 mal gelesen)
|
Daniel285 Mitglied
Beiträge: 6 Registriert: 18.06.2017 NX10
|
erstellt am: 26. Jun. 2017 09:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, hätte mal wieder eine Frage. Ich möchte in meinem Aufruf der Funktion SelectObjects(), eine Bedingung einfügen bei welcher der Abstand der beiden ausgewählten Bohrungen mit einer vorher eingestellten Konstante verglichen wird. D.h.: Es wird der Abstand der zuerst ausgewählten Bohrung x mit der Bohrung x+1 gemessen. Anschließend wird der Abstand x+1 mit x+2 gemessen. Dann x+2 und x+3. usw... Hoffe dies ist verständlich. Die jeweiligen Abstände sollen anschließend mit einer Konstanten verglichen werden, und bei größer bzw. kleiner eine Fehlermeldung ausgeben. (Dies sollte ich aber selbst schaffen) In folgenden Code möchte ich nun die Abstände messen lassen und speichern/ausgeben damit ich sie anschließend vergelichen kann: Code: Function SelectObjects(prompt As String, ByRef selObj As NXObject()) As Selection.Response Dim theUI As UI = UI.GetUI Dim typeArray() As Selection.SelectionType = {Selection.SelectionType.Edges}
Dim resp As Selection.Response = theUI.SelectionManager.SelectObjects( prompt, "Selection", Selection.SelectionScope.AnyInAssembly, False, typeArray, selObj) If resp = Selection.Response.ObjectSelected Or resp = Selection.Response.ObjectSelectedByName Or resp = Selection.Response.OK Then Return Selection.Response.Ok Else Return Selection.Response.Cancel End If End Function
Vielen dank schonmal für jede Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Daniel285 Mitglied
Beiträge: 6 Registriert: 18.06.2017 NX10
|
erstellt am: 26. Jun. 2017 10:05 <-- editieren / zitieren --> Unities abgeben:
Also der Abstand soll zwischen den Mittelpunkten der Bohrungen gemessen werden. Die Auswahl der Punkte und die Ausgabe sind schon verwirklicht, es geht nur darum die Abstände etwas zu kontrollieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 26. Jun. 2017 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für Daniel285
Hallo Daniel, egal ob innerhalb dieser Funktion oder in der aufrufenden Instanz hast Du zunächst eine unbestimmte Anzahl von Kanten im Array selObj. Diese sind hier allerdings als NXObject und nicht als Kante enthalten. Es braucht also zunächst eine Typumwandlung von NXObject zu Edge, dann die Auswertung des Typs der Kante. Es muss ja nicht zwingend ein Kreis(bogen) sein. Ist es eine kreisförmige Kante, geht's weiter mit der Suche nach deren Mittelpunkt. Da gibt's sehr wahrscheinlich eine Methode, um den zu ermitteln, weiss ich jetzt nicht auswendig. Damit hättest Du eine, wieder unbestimmte Anzahl an Positionen. Die miteinander zu vergleichen und verschiedene Abstände zu ermitteln, dürfte dann der leichteste Teil der Übung werden. Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit seltner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Daniel285 Mitglied
Beiträge: 6 Registriert: 18.06.2017 NX10
|
erstellt am: 26. Jun. 2017 15:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, danke für die schnelle Antwort. Wenn ich deinen Weg jetzt richtig verstehe, werden erst alle wie aktuell ausgewählt und sollen dann im Anschluss sortiert werden? Den Schritt der Doppelauswahl wollte ich mir sparen und eben bei Auswahl direkt eine Fehlermeldung bekommen wenn der Abstand nicht passt, um dann eine andere Bohrung auszuwählen. Damit das gespeicherte Array so in der richtigen Reihenfolge abgeleitet werden kann. Hat vielleicht noch jemand eine Idee in diese Richtung Grüße Daniel [Diese Nachricht wurde von Daniel285 am 26. Jun. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Entwicklungsingenieur für Sonderanfertigungen (m/w/d) | Bewegung ist Leben. Bei uns bewegen Sie etwas. LINK verfügt über eine langjährige erfolgreiche Geschichte in der Endoprothetik. Das Unternehmen setzt Maßstäbe in der Primär- und Revisionsendoprothetik großer Gelenke und gilt als Spezialist für individuelle Lösungen und Sonderanfertigungen. Für optimale Lösungen setzt LINK auf die enge Kooperation mit Partnern aus der Praxis. Das Unternehmen forscht, entwickelt und produziert in Deutschland und beschäftigt derzeit weltweit ca.... | Anzeige ansehen | Entwicklung |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 26. Jun. 2017 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für Daniel285
Hallo Matias/Daniel , dann musst Du die Objekte einzeln anwählen, in SelectObjects einzugreifen, ist nicht möglich. Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit seltner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|