| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | NX: Erste Schritte, ein Webinar am 26.09.2025
|
Autor
|
Thema: Punkte relativ zum WCS erzeugen (1032 mal gelesen)
|
uger Mitglied CADler & Kinematiker
   
 Beiträge: 1132 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: 1132 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: 1132 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
|

| Elektroniker für Automatisierungstechnik / Mechatroniker im Exponatbau (m/w/d) | Nur das, was man liebt, macht man wirklich mit 100% Leidenschaft und Herzblut. Als potenzieller Arbeitgeber fordern wir dazu auf, das zu tun, was man liebt. Und wir bieten dafür das Spielfeld. In einem internationalen, innovativen Unternehmen, in dem jede:r persönliche Stärken und Leidenschaften ausleben kann. Mit einer Arbeit, die sinnvoll ist, mit vielfältigen Aufgabenbereichen, ... | Anzeige ansehen | Supply-Chain-Management |
|
uger Mitglied CADler & Kinematiker
   
 Beiträge: 1132 Registriert: 25.02.2003 NX10 WIN7 64Bit
|
erstellt am: 24. Mrz. 2014 11:49 <-- editieren / zitieren --> Unities abgeben:         
|