Servus,
ich benötige eine Ausgabe der X/Y-Koordinaten aller auf einem Zeichnungsblatt eines NX-Drawings vorhandene Punkte (NX6.0.4, VB.Net)
Was habe ich bisher probiert?
1. Lösung:
Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
For Each obj1 As DisplayableObject In workPart.Points
Dim point As Point
point = obj1
Dim origin As Point3d = point.Coordinates
msgbox("Ermittelter Punkt (Koordinaten): " & vbCrLf & origin.X & " x " & origin.Y)
obj1 = Nothing
Next
Vorteil:
Ich weiß wie ich an die Koordinaten komme.
Nachteil:
Diese Lösung listet nicht nur alle Punte des aktuellen Zeichnungsblattes (Sheets) auf, sondern _alle_ Punkte des aktiven Teiles - also auch diejenigen auf den anderen Zeichnungsblättern oder in eventuell vorhandenem 3D-Modell.
2. Lösung:
Dim dwgView As NXOpen.Tag = NXOpen.Tag.Null
ufs.Draw.AskViewOfDrawing(curDwg, dwgView)
Dim obj As NXOpen.Tag = NXOpen.Tag.Null
Do
ufs.View.CycleObjects(dwgView, UFView.CycleObjectsEnum.DependentObjects, obj)
If obj <> NXOpen.Tag.Null Then
ufs.Obj.AskTypeAndSubtype(obj, intType, intSubtype)
If intType = UFConstants.UF_drafting_entity_type And _
intSubtype = UFConstants.UF_draft_point_subtype Then
'hmmm... wie jetzt hier weiter???
End If
End If
Loop Until obj = NXOpen.Tag.Null
Vorteil:
Ich erhalte wirklich nur die Objekte, die auf dem aktuellen Zeichnungsblatt liegen.
Nachteil:
Ich habe keine Ahnung, wie ich über diese Methode an die Koordinaten komme...
Könnt Ihr mir hierbei helfen?
Danke vielmals im Voraus,
Jürgen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP