| |
 | 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 25.07.2025
|
Autor
|
Thema: Punkte relativ zum WCS erzeugen (1022 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
|

| Projektleiter Versorgungstechnik (w/m/d) | Fortschritt hat bei der ZEAG Energie AG Tradition. Schon vor 135 Jahren lieferten wir als erstes deutsches Unternehmen Drehstrom und leisteten damit einen wichtigen Beitrag zur industriellen Entwicklung. Heute bauen wir unsere Energienetze zu komplexen Infrastrukturen aus. Und beziehen dabei das gesamte Energiesystem ein. Wir arbeiten daran, Windstrom zu Wasserstoff zu verwandeln. Wir planen neue Stadtviertel mit nachhaltigen Wärmenetzen und Highspeed-Internet.... | Anzeige ansehen | Feste Anstellung |
|
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:         
|