[COLOR=blue]Option[/color] [COLOR=blue]Strict[/color] [COLOR=blue]Off[/color]
[COLOR=blue]Imports[/color] System
[COLOR=blue]Imports[/color] System.IO
[COLOR=blue]Imports[/color] System.Windows.Forms
[COLOR=blue]Imports[/color] NXOpen
[COLOR=blue]Imports[/color] NXOpen.UF
[COLOR=blue]Module[/color] Module1
Dim ufs [COLOR=blue]As[/color] UFSession [COLOR=blue]=[/color] UFSession.GetUFSession
Sub Main()
Try
Dim openFileDialog1 [COLOR=blue]As[/color] [COLOR=blue]New[/color] OpenFileDialog()
openFileDialog1.Filter [COLOR=blue]=[/color] "txt files (*.txt)|*.txt|All files (*.*)|*.*"
openFileDialog1.FilterIndex [COLOR=blue]=[/color] 1
openFileDialog1.RestoreDirectory [COLOR=blue]=[/color] [COLOR=blue]True[/color]
If openFileDialog1.ShowDialog() [COLOR=blue]=[/color] DialogResult.OK [COLOR=blue]Then[/color]
Dim theSession [COLOR=blue]As[/color] Session [COLOR=blue]=[/color] Session.GetSession()
Dim workPart [COLOR=blue]As[/color] Part [COLOR=blue]=[/color] theSession.Parts.Work
Dim sr [COLOR=blue]As[/color] StreamReader [COLOR=blue]=[/color] [COLOR=blue]New[/color] StreamReader(openFileDialog1.FileName)
Dim line [COLOR=blue]As[/color] [COLOR=blue]String[/color]
Dim startPoint [COLOR=blue]As[/color] Point3d [COLOR=blue]=[/color] [COLOR=blue]nothing[/color]
Dim endPoint [COLOR=blue]As[/color] Point3d
Dim i [COLOR=blue]As[/color] [COLOR=blue]Integer[/color] [COLOR=blue]=[/color] 0
Dim firstPass [COLOR=blue]as[/color] [COLOR=blue]Boolean[/color] [COLOR=blue]=[/color] [COLOR=blue]True[/color]
Dim USculture [COLOR=blue]As[/color] system.globalization.CultureInfo [COLOR=blue]=[/color] [COLOR=blue]New[/color] System.Globalization.CultureInfo("en-US")
Try
line [COLOR=blue]=[/color] sr.ReadLine()
While [COLOR=blue]Not[/color] line [COLOR=blue]Is[/color] [COLOR=blue]Nothing[/color]
Dim delim [COLOR=blue]As[/color] Char() [COLOR=blue]=[/color] {","c}
Dim strings [COLOR=blue]As[/color] String() [COLOR=blue]=[/color] line.Split(delim)
endPoint.x [COLOR=blue]=[/color] Double.Parse(strings(0), USculture)
endPoint.y [COLOR=blue]=[/color] Double.Parse(strings(1), USCulture)
endPoint.z [COLOR=blue]=[/color] Double.Parse(strings(2), USCulture)
endPoint [COLOR=blue]=[/color] Abs2WCS(endPoint)
If firstPass [COLOR=blue]Then[/color]
firstPass [COLOR=blue]=[/color] [COLOR=blue]False[/color]
Else
[COLOR=green]'create a line from startpoint to endpoint[/color]
workPart.Curves.CreateLine(startPoint, endPoint)
End [COLOR=blue]If[/color]
startPoint [COLOR=blue]=[/color] endPoint
line [COLOR=blue]=[/color] sr.ReadLine()
End [COLOR=blue]While[/color]
Finally
sr.Close()
End [COLOR=blue]Try[/color]
End [COLOR=blue]If[/color]
Catch E [COLOR=blue]As[/color] Exception
MessageBox.Show(E.Message)
End [COLOR=blue]Try[/color]
End [COLOR=blue]Sub[/color]
[COLOR=green]'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[/color]
[COLOR=green]'Date: 11/18/2010[/color]
[COLOR=green]'Subject: Sample NX Open .NET Visual Basic routine : map point from absolute to wcs[/color]
[COLOR=green]'[/color]
[COLOR=green]'Note: GTAC provides programming examples for illustration only, and[/color]
[COLOR=green]'assumes that you are familiar with the programming language being[/color]
[COLOR=green]'demonstrated and the tools used to create and debug procedures. GTAC[/color]
[COLOR=green]'support professionals can help explain the functionality of a particular[/color]
[COLOR=green]'procedure, but we will not modify these examples to provide added[/color]
[COLOR=green]'functionality or construct procedures to meet your specific needs.[/color]
Function Abs2WCS(ByVal inPt [COLOR=blue]As[/color] Point3d) [COLOR=blue]As[/color] Point3d
Dim pt1(2), pt2(2) [COLOR=blue]As[/color] [COLOR=blue]Double[/color]
pt1(0) [COLOR=blue]=[/color] inPt.X
pt1(1) [COLOR=blue]=[/color] inPt.Y
pt1(2) [COLOR=blue]=[/color] inPt.Z
ufs.Csys.MapPoint(UFConstants.UF_CSYS_ROOT_COORDS, pt1, _
UFConstants.UF_CSYS_ROOT_WCS_COORDS, pt2)
Abs2WCS.X [COLOR=blue]=[/color] pt2(0)
Abs2WCS.Y [COLOR=blue]=[/color] pt2(1)
Abs2WCS.Z [COLOR=blue]=[/color] pt2(2)
End [COLOR=blue]Function[/color]
[COLOR=green]'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[/color]
Public [COLOR=blue]Function[/color] GetUnloadOption(ByVal dummy [COLOR=blue]As[/color] [COLOR=blue]String[/color]) [COLOR=blue]As[/color] [COLOR=blue]Integer[/color]
[COLOR=green]'Unloads the image when the NX session terminates[/color]
GetUnloadOption [COLOR=blue]=[/color] NXOpen.Session.LibraryUnloadOption.AtTermination
End [COLOR=blue]Function[/color]
End [COLOR=blue]Module[/color]