| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Mit VB erfassen ob Punkt auf Kurve (999 mal gelesen)
|
Scarpafico Mitglied
Beiträge: 3 Registriert: 13.02.2013 NX 6.0.5
|
erstellt am: 30. Sep. 2013 12:40 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, gibt es die Möglichkeit mit vb zu erkennen, ob ein gesetzter Punkt in einer Zeichnung auf einer Linie, Kurve o.Ä. platziert wurde oder im freien Raum liegt? Momentan setze ich den Punkt wie folgt:
Code: Sub Main() Dim ui As UI = ui.GetUI() Dim ufs As UFSession = UFSession.GetUFSession() Dim mode() As Integer = {0, 0} Dim pointDisplayMode As Integer = 0 Dim objectpoint(2) As Double Dim Punkt As Integer = Nothing ufs.Ui.LockUgAccess(NXOpen.UF.UFConstants.UF_UI_FROM_CUSTOM) Punkt = ufs.Ui.PointSubfunction("Bitte Punkt angeben.", mode, pointDisplayMode, objectpoint) End Sub
Nun würde ich gerne etwas anschließen wie:
Code: If Punkt auf Kurve then Hinweislinie mit Pfeil Else If Hinweislinie mit Punkt End If
Nun finde ich leider nirgendwo einen Befehl, die Eigenschaften vom Punkt abzugreifen. Kann mir jemand auf die Sprünge helfen? Gruß, Christian P.S.: Ich bin VB-Neuling 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: 01. Okt. 2013 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für Scarpafico
Hallo Scarpafico, Du kennst doch sicher die Möglichkeit, ein Journal aufzuzeichnen? Dann mach' das mal mit einer Abstandsmessung. Wenn der Abstand Null ist, liegt der Punkt auf der Kurve. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scarpafico Mitglied
Beiträge: 3 Registriert: 13.02.2013 NX 6.0.5
|
erstellt am: 02. Okt. 2013 09:07 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen Michael, vielen Dank für deinen Tipp! Ich habe es gestern noch ausprobiert und die Essenz sieht wie folgt aus:
Code: Dim coordinates2 As Point3d = New Point3d(60, 9, 0.0) Dim point2 As Point point2 = workPart.Points.CreatePoint(coordinates2) measureDistanceBuilder1.Object1.Value = point2measureDistanceBuilder1.InfoWindow = True Dim coordinates10 As Point3d = New Point3d(60.0, 6.0, 0.0) Dim point10 As Point point10 = workPart.Points.CreatePoint(coordinates10) measureDistanceBuilder1.Object2.Value = point10 Dim nullUnit As Unit = Nothing Dim measureDistance1 As MeasureDistance measureDistance1 = workPart.MeasureManager.NewDistance(nullUnit, MeasureManager.MeasureType.Minimum, point2, point10) measureDistance1.Information()
Nun kann ich den ersten Punkt mit dem Punkt aus meinem Programm sicherlich irgendwie füttern. Nur der zweite Punkt auf der Kurve bleibt offen, weil ich ja vorher nicht weiß welche Kurve oder Linie in der Nähe liegt... Also irgendwie komme ich mit diesem Workaround auch nicht sauber zum Ziel oder habe ich etwas übersehen? Ich will später keine Kurve vorgeben zu der ein Abstand gemessen wird, sondern es soll einfach geschaut werden, ob der gesetzte Punkt auf irgendeiner Linie, Kurve, Spline usw. liegt. Der Curser gibt beim manuellen setzen eines Punktes ja den Bezug an (Snap Point/Punkt fangen), diesen kann ich aber bisher nicht abgreifen. Auch nicht mit der Journal-Aufzeichnung Gruß, Christian 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: 02. Okt. 2013 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für Scarpafico
Christian, das zweite Element kann ja auch eine Kurve sein: measureDistanceBuilder1.Object2.Value = anycurve Wenn Du die nicht kennst, kannst Du mal ff. versuchen: - Alle Kurven gegen den einen Punkt prüfen. - Assoziativen Punkt verwenden. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Techniker Maschinentechnik (m/w/d) | Die besten Köpfe für die unterschiedlichsten Aufgaben zu finden sowie Menschen und Technologien zu verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: als ambitionierte:r Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte.
Techniker Maschinentechnik (m/w/d) Raum Oldenburg Dein Aufgabengebiet | Anzeige ansehen | Maschinenbau |
|
Scarpafico Mitglied
Beiträge: 3 Registriert: 13.02.2013 NX 6.0.5
|
erstellt am: 07. Okt. 2013 14:53 <-- editieren / zitieren --> Unities abgeben:
Hallo, übers lange Wochenende hatte ich leider keine Möglichkeit zum Testen. Nun habe ich es aber vergeblich versucht. Mir fehlt da wohl das nötige Grundverständnis, obwohl ich jetzt schon einiges zu VB usw. gelesen habe. Deine Tipps, Michael, haben mich so leider nicht weitergebracht Ich habe mit zahlreichen Beispielen versucht alle Linien zu greifen, aber ohne Erfolg. Ich weiß, Hilfe zur Selbsthilfe…aber kannst du (oder jemand anderes) mir mit Code unter die Arme greifen? Vielen Dank und beste Grüße, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|