Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Bedingungen in SelectObjects()

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
Autor Thema:   Bedingungen in SelectObjects() (215 mal gelesen)
Daniel285
Mitglied


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

Beiträge: 6
Registriert: 18.06.2017

NX10

erstellt am: 26. Jun. 2017 09:58    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 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


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

Beiträge: 6
Registriert: 18.06.2017

NX10

erstellt am: 26. Jun. 2017 10:05    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

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


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

Beiträge: 2196
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5

erstellt am: 26. Jun. 2017 13:47    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 Daniel285 10 Unities + Antwort hilfreich

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


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

Beiträge: 6
Registriert: 18.06.2017

NX10

erstellt am: 26. Jun. 2017 15:27    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 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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2196
Registriert: 18.10.2005

HP Z420
WIN XP32 / WIN7 64
UG NX6-11
SUN Ultra 60
Solaris 7
CADDS5

erstellt am: 26. Jun. 2017 15:33    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 Daniel285 10 Unities + Antwort hilfreich

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

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)2017 CAD.de