Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Einlesen von Koordinaten durch Cursor-klick, Rechnen, If

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 NX
Autor Thema:  Einlesen von Koordinaten durch Cursor-klick, Rechnen, If (1129 mal gelesen)
DanielB93
Mitglied


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

Beiträge: 4
Registriert: 01.07.2015

erstellt am: 01. Jul. 2015 11: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,
Ich erstelle aktuell eine n-Anzahl von aneinander hängende Bögen über 3. Klicks pro Bogen.

Startpunkt, Endpunkt, Maxima

Ich möchte dies gerne auf 2. Klicks beim Ersten und 1. Klick bei jedem weiteren reduzieren.

Kann man Koordinaten per Curser-Klick einlesen ?
Kann man Formeln, wie bei Excel, einbauen ?
Kann ich über if meine Eingabe n-lang machen und/oder beenden?


Ist dies mit vb (ich probiere dies gerade zum ersten mal aus) überhaupt möglich?
Wenn es nicht möglich ist, kennt ihr eine andere Möglichkeit dies zu realisieren ?

Aktuell habe ich folgenden Aufbau:

Dim startPoint1 As Point3d = New Point3d(Cursor-klick)
Dim pointOn1 As Point3d = New Point3d(Formel)
Dim endPoint1 As Point3d = New Point3d(Cursor-klick)

Dim startAndEndGotFlipped1 As Boolean
Dim arc1 As Arc
arc1 = workPart.Curves.CreateArc(startPoint1, pointOn1, endPoint1, False, startAndEndGotFlipped1)

Dim markId5 As Session.UndoMarkId
markId5 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Create Arc")

Dim startPoint2 As Point3d = endPoint1
Dim pointOn2 As Point3d = New Point3d(Formel)
Dim endPoint2 As Point3d = New Point3d(Cursor-klick)
Dim startAndEndGotFlipped2 As Boolean
Dim arc2 As Arc

arc2 = workPart.Curves.CreateArc(startPoint2, pointOn2, endPoint2, False, startAndEndGotFlipped2)

Grüße,
Daniel

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: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 01. Jul. 2015 12:34    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 DanielB93 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von DanielB93:

Ich erstelle aktuell eine n-Anzahl von aneinander hängende Bögen über 3. Klicks pro Bogen.

Startpunkt, Endpunkt, Maxima

Ich möchte dies gerne auf 2. Klicks beim Ersten und 1. Klick bei jedem weiteren reduzieren.


Hallo Daniel,

wie willst Du einen Kreisbogen über 2 Positionen bestimmen ? Das geht nur wenn man festlegt, daß die beiden Positionen Durchmesser oder Radius bestimmen, sonst braucht's drei Punkte. Ein Bild wäre hilfreich.

Zitat:
Original erstellt von DanielB93:

Kann man Koordinaten per Curser-Klick einlesen ?
Kann man Formeln, wie bei Excel, einbauen ?
Kann ich über if meine Eingabe n-lang machen und/oder beenden?


Ja, in UF_UI gibt's Funktionen, die das machen, z.B. PointConstruct.
Mehr als das.
Wahrscheinlich nicht mit If ... End If, sondern mit einer Schleife: Do ... Loop

Zitat:
Original erstellt von DanielB93:

Ist dies mit vb (ich probiere dies gerade zum ersten mal aus) überhaupt möglich?

Ja, sicher ist das machbar.

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DanielB93
Mitglied


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

Beiträge: 4
Registriert: 01.07.2015

erstellt am: 01. Jul. 2015 13:18    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


AenderungsWolke.PNG

 
Hallo Michael,
Danke für die schnelle Antwort 

Ich möchte den Start(P1) und Endpunkt(P2) des ersten Bogen über Cursor-Klicks eingeben.
Die Neigung des Bogens möchte ich über einen Punkt automatisiert festlegen lassen, den ich nicht klicken muss.
Z.B. vom Mittelpunkt des Vektor_P1-P2 im 90° Winkel um eine länge von z.b. Vektor_P1-P2 / 4 nach außen abgehen, also als "Dreiecksberechnung".


Zu PointConstruct:
Wie baue ich die Eingabe über "PointConstruct" auf ?

Dim P1 As Point3d = PointConstruct  // ?

Wahrscheinlich wäre das zu einfach ^^


Zur Schleife:
Ich hatte vergessen zu erwähnen das meine Bögen einen geschlossenen Kreis bilden, also wenn Pn = P1 = Ende, wenn Pn ungleich P1 = weiterer Punkt per Cursor-Klick


Beispielbild im Anhang 

Grüße,
Daniel

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: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 01. Jul. 2015 16:18    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 DanielB93 10 Unities + Antwort hilfreich

Hallo Daniel,

die Festlegung der dritten Position des Kreisbogens über den Abstand der ersten beiden ist zwar unüblich, aber theoretisch machbar. Ich bezweifle aber, ob's eine Funktion in NXOpen gibt, die genau diese Eingaben erwartet. Eher wahrscheinlich ist, daß man einige Werte umrechnen muss. Einfacher wär's, aus dem Abstand 1->2 z.B. Radius oder Duchmesser zu ermitteln.

Für Pointconstruct braucht man die sog. UFSession:
dim ufs as UFSession = UFSession.GetUFSession
ufs.ui.Pointconstruct(...)

Daraus resultiert ein Array mit drei Double-Werten, XYZ der angewählten Position.

Genaueres zum PointConstruct findet sich in der NXOpen-Hilfe net_ref.chm.
Daneben ein ganz heißer Tipp: Die Forensuche nach Pointconstruct bringt zwei Seiten Ergebnisse. 

Thema Schleife: Ohne kann ich mir das nicht vorstellen, kannst mich aber gerne überzeugen, daß es auch ohne geht  . Die Abfrage ob aktueller Punkt = erster Punkt wäre m.E. die Abbruchbedingung der Schleife.

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Konstrukteur für Dampfturbinen (m/w/d)
Mit unserer langjährigen Rekrutierungserfahrung und unseren Kenntnissen des Engineering-Personalmarktes bieten wir Fach- und Führungskräften aus dem Ingenieurwesen und dem technischen Umfeld eine starke Partnerschaft. Denn durch unsere intensiven Beziehungen und Netzwerke über alle Industriebranchen hinweg vermitteln wir Ihnen als Engineering-Fachleuten spannende Projekte und attraktive Positionen....
Anzeige ansehenKonstruktion, Visualisierung
DanielB93
Mitglied


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

Beiträge: 4
Registriert: 01.07.2015

erstellt am: 07. Jul. 2015 14:02    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

Ich bin jetzt soweit das ich über Mausklick die Punkte einlesen kann und über eine "Do until" Schleife eine n-Anzahl von Wiederholungen hinbekomme und sich das kleine Tool automatisch beendet wenn der letzte Endpunkt = der erste Startpunkt ist.


Leider muss ich meinen Klick immer "Bestätigen" (z.B. per "ESC", "OK-Button", ....) weißt du rein zufällig wie ich dies umgehen kann ?

Also das der Klick keine extra Bestätigung braucht, sondern ich gleich mit dem nächsten Punkt weiter machen kann.

Der Code sieht bei mir gerade so aus:

"
...

'Ermittlung Startpunkt

Dim AbsPt(2) As Double
Dim response As Integer

UFS = NXOpen.UF.UFSession.GetUFSession()

UFS.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM)

UFS.Ui.PointConstruct("Select StartPoint", UFS.Ui.PointBaseMethod.PointNoMethod, point_tag, AbsPt, response)

Dim startPointNX As Integer = AbsPt(0)
Dim startPointNY As Integer = AbsPt(1)
Dim startPointN As Point3d = New Point3d(startPointNX, startPointNY,0)

'Ermittlung Endpunkt
 
UFS = NXOpen.UF.UFSession.GetUFSession()

UFS.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM)

UFS.Ui.PointConstruct("Select EndPoint", UFS.Ui.PointBaseMethod.PointNoMethod, point_tag, AbsPt, response)

Dim endPointNX As Integer = AbsPt(0)
Dim endPointNY As Integer = AbsPt(1)

Dim endPoint As Point3d = New Point3d(endPointNX, endPointNY, 0)

...
"


PS: NX 9.0.3.4

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