﻿Option Explicit
'------------------------------------------------------------------------------
' Purpose:    Export lines into a text file to be imported to SolidWorks
'------------------------------------------------------------------------------
Call Main()

Sub Main()

Dim arrObjects, strObject, arrPoints, arrPoint, strPoint
Dim strFileName, strFilter, objFSO, objStream
Dim sPnt, ePnt

'User-definable file filters

strFilter = "Text File (*.txt)|*.txt|All Files (*.*)|*.*||"

'Get the lines to export

arrObjects = Rhino.GetObjects("Select Desired Curve(s)",4)

If IsNull(arrObjects) Then Exit Sub

'Get the filename to create

strFileName = Rhino.SaveFileName("Save Line Coordinates As", strFilter)

If IsNull(strFileName) Then Exit Sub

'Get the file system object

Set objFSO = CreateObject("Scripting.FileSystemObject")

On Error Resume Next

'Get a new text file

Set objStream = objFSO.CreateTextFile(strFileName, True)

If Err Then
  
MsgBox Err.Description

Exit Sub
  
End If

For Each strObject In arrObjects
  
  sPnt = Rhino.CurveStartPoint(strObject)
  ePnt = Rhino.CurveEndPoint(strObject)

  'Write the coordinates to the file

  objStream.WriteLine(CStr(sPnt(0)))
  objStream.WriteLine(CStr(sPnt(1)))
  objStream.WriteLine(CStr(sPnt(2)))

  objStream.WriteLine(CStr(ePnt(0)))
  objStream.WriteLine(CStr(ePnt(1)))
  objStream.WriteLine(CStr(ePnt(2)))

Next

'Write the file
objStream.WriteLine("-END-")
objStream.Close

End Sub