| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Punkte relativ zum WCS erzeugen (977 mal gelesen)
|
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX10 WIN7 64Bit
|
erstellt am: 19. Mrz. 2014 07:16 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich habe eine Datei in der sich Punktkoordinaten befinden. Diese will ich in NX einlesen und im WCS erzeugen lassen. Ich habe das VB-Beispiel, welches sich in ...\NX75\UGOPEN\SampleNXOpenApplications\.NET\File2Points befindet, angepasst. Ergebnis: Punkte werden eingelesen und erzeugt. ABER leider relativ zum absoluten Koordinatensystem. Ich möchte sie im WCS (welches relativ zum absoluten Koordinatensystem verdreht und verschoben wurde) erzeugen. Frage: Wie muss ich das Script verändern damit die Punkte relativ zum WCS erzeugt werden? Auschnitt Quellcode:
Code:
Dim pt As Point3d Dim delim As Char () = { ","C } Dim strings As String () = line.Split(delim) pt.x = Double.Parse(strings(0),provider) pt.y = Double.Parse(strings(1),provider) pt.z = Double.Parse(strings(2),provider)Dim p As Point p = session.Parts.Work.Points.CreatePoint(pt)
------------------ Deine Wahrnehmung bestimmt deine Realität! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wipc3d59 Mitglied CAD Administrator
Beiträge: 66 Registriert: 24.06.2008 NX11.0.2.7 MP13 NX1899 Test ECTR 4.6 DSC Software AG Windows 10 HP Workstation z4 Intel Xeon W-2135 3,7GHz 32 GB Ram, Nvidia Quadro P4000
|
erstellt am: 19. Mrz. 2014 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für uger
Hallo uger, ich hatte mal das gleiche Problem. Bei mir funktionierts so: Dim pt As Point3d Dim delim As Char () = { ","C } Dim strings As String () = line.Split(delim) pt.x = Double.Parse(strings(0),provider) pt.y = Double.Parse(strings(1),provider) pt.z = Double.Parse(strings(2),provider) Dim ptwcs As Point3d = WCS2Abs(pt) Dim p As Point p = session.Parts.Work.Points.CreatePoint(ptwcs) ------- Function WCS2Abs(ByVal inPt As Point3d) As Point3d Dim pt1(2), pt2(2) As Double pt1(0) = inPt.X pt1(1) = inPt.Y pt1(2) = inPt.Z ufs.Csys.MapPoint(UFConstants.UF_CSYS_ROOT_WCS_COORDS, pt1, _ UFConstants.UF_CSYS_ROOT_COORDS, pt2) WCS2Abs.X = pt2(0) WCS2Abs.Y = pt2(1) WCS2Abs.Z = pt2(2) End Function Gruß Thorsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX10 WIN7 64Bit
|
erstellt am: 21. Mrz. 2014 15:38 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank schon einmal. ABER.... Die Zeile mit ufs.Csys.MapPoint(UFConstants.UF_CSYS_ROOT_WCS_COORDS, pt1, _ UFConstants.UF_CSYS_ROOT_COORDS, pt2) wird angemeckert. Muss ich da noch irgendwelche Namespaces einbinden? Welche? Ich blick noch nicht durch und weiss nicht wie ich die Info in der NXOpen-Doku finden kann. (ratloser) uger
------------------ Deine Wahrnehmung bestimmt deine Realität! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wipc3d59 Mitglied CAD Administrator
Beiträge: 66 Registriert: 24.06.2008 NX11.0.2.7 MP13 NX1899 Test ECTR 4.6 DSC Software AG Windows 10 HP Workstation z4 Intel Xeon W-2135 3,7GHz 32 GB Ram, Nvidia Quadro P4000
|
erstellt am: 24. Mrz. 2014 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für uger
Hallo uger, versuchs mal mit: Imports NXOpen.UF und Function WCS2Abs(ByVal inPt As Point3d) As Point3d Dim pt1(2), pt2(2) As Double Dim ufs As UFSession = UFSession.GetUFSession() pt1(0) = inPt.X pt1(1) = inPt.Y pt1(2) = inPt.Z ufs.Csys.MapPoint(UFConstants.UF_CSYS_ROOT_WCS_COORDS, pt1, _ UFConstants.UF_CSYS_ROOT_COORDS, pt2) WCS2Abs.X = pt2(0) WCS2Abs.Y = pt2(1) WCS2Abs.Z = pt2(2) End Function Gruß Thorsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX10 WIN7 64Bit
|
erstellt am: 24. Mrz. 2014 11:33 <-- editieren / zitieren --> Unities abgeben:
Ahhh, jetzt hab ich es gesehen Code: Dim ufs As UFSession = UFSession.GetUFSession()
Jetzt klappts auch, Danke uger
------------------ Deine Wahrnehmung bestimmt deine Realität!
[Diese Nachricht wurde von uger am 24. Mrz. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wipc3d59 Mitglied CAD Administrator
Beiträge: 66 Registriert: 24.06.2008 NX11.0.2.7 MP13 NX1899 Test ECTR 4.6 DSC Software AG Windows 10 HP Workstation z4 Intel Xeon W-2135 3,7GHz 32 GB Ram, Nvidia Quadro P4000
|
erstellt am: 24. Mrz. 2014 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für uger
|
| Entwicklungsingenieur im Anlagenbau (m/w/d) | Sich etwas Neues trauen, über sich hinauswachsen und dabei die Grenzen des Machbaren neu de?nieren. Genau das ist es, was unsere Mitarbeitenden täglich leben dürfen und sollen. Um mit unseren Innovationen das Tempo vorzugeben und Großartiges zu ermöglichen. Denn hinter jedem erfolgreichen Unternehmen stehen eine ganze Menge faszinierender Menschen. Die Mitarbeitenden von ZEISS arbeiten in einem offenen und modernen Umfeld mit zahlreichen Entwicklungs- und Weiterbildungsmöglichkeiten.... | Anzeige ansehen | Entwicklung |
|
uger Mitglied CADler & Kinematiker
Beiträge: 1115 Registriert: 25.02.2003 NX10 WIN7 64Bit
|
erstellt am: 24. Mrz. 2014 11:49 <-- editieren / zitieren --> Unities abgeben:
|