Dim longstatus As Long
Dim PartTitle As String

Dim swApp As Object
Dim Part As Object
Dim ModelView As Object
Dim tempStr As String
Dim fromPageNumber As Integer
Dim toPageNumber As Integer
Dim fieldStr As String
Dim temploc As Integer
Dim temploc2 As Integer
Dim count As Integer
Dim pageArray() As Long
Dim vpageparray As Variant
Dim errorFilePath As String
Dim printName As String

Sub main()

	errorFilePath = "M:\110595 MARS  BACKBONE, NODE MODULE ASSEMBLY"  +  "\" + "swBKTask.error"
	ErrorOut "Error log starts", errorFilePath

	Set swApp = CreateObject("SldWorks.Application")
	If ("SW_DRAWING_TYPE"  = "SW_PART_TYPE" OR "SW_DRAWING_TYPE"  = "SW_PART_TYPE_OLD") Then
		Set Part = swApp.OpenDoc2 ("M:\110595 MARS  BACKBONE, NODE MODULE ASSEMBLY\X.SLDDRW", 1, 0, 0, 0, longstatus)
	End If
 
	If ("SW_DRAWING_TYPE" = "SW_ASSEMBLY_TYPE" OR "SW_DRAWING_TYPE" = "SW_ASSEMBLY_TYPE_OLD") Then
		Set Part = swApp.OpenDoc2 ("M:\110595 MARS  BACKBONE, NODE MODULE ASSEMBLY\X.SLDDRW", 2, 0, 0, 0, longstatus)
	End If

	If ("SW_DRAWING_TYPE" = "SW_DRAWING_TYPE" OR "SW_DRAWING_TYPE" = "SW_DRAWING_TYPE_OLD")  Then
		Set Part = swApp.OpenDoc2 ("M:\110595 MARS  BACKBONE, NODE MODULE ASSEMBLY\X.SLDDRW", 3, 0, 0, 0, longstatus)
	End If

	'Don't show toolbars
	'swWindowMaximized = 1
	swApp.ActiveDoc.ActiveView.FrameState = 1

	Part.SetFeatureManagerWidth ( 30 )

	Part.SetToolbarVisibility 28, False
	Part.SetToolbarVisibility 0,  False
	Part.SetToolbarVisibility 1,  False
	Part.SetToolbarVisibility 2,  False
	Part.SetToolbarVisibility 3,  False
	Part.SetToolbarVisibility 4,  False
	Part.SetToolbarVisibility 5,  False
	Part.SetToolbarVisibility 6,  False
	Part.SetToolbarVisibility 7,  False
	Part.SetToolbarVisibility 8,  False
	Part.SetToolbarVisibility 9,  False
	Part.SetToolbarVisibility 10, False
	Part.SetToolbarVisibility 11, False
	Part.SetToolbarVisibility 12, False
	Part.SetToolbarVisibility 13, False
	Part.SetToolbarVisibility 14, False
	Part.SetToolbarVisibility 15, False
	Part.SetToolbarVisibility 16, False
	Part.SetToolbarVisibility 17, False
	Part.SetToolbarVisibility 18, False
	Part.SetToolbarVisibility 19, False
	Part.SetToolbarVisibility 20, False
	Part.SetToolbarVisibility 21, False
	Part.SetToolbarVisibility 22, False
	Part.SetToolbarVisibility 23, False
	Part.SetToolbarVisibility 24, False
	Part.SetToolbarVisibility 25, False
	Part.SetToolbarVisibility 26, False
	Part.SetToolbarVisibility 27, False

	Set Part = swApp.ActivateDoc ("X.SLDDRW")

	If ("FALSE"  = "TRUE") Then
		printName = ""
	Else
		printName = "\\MARIPRO1\HP 4050 in Pubs"
	End If

	If ("TRUE"  = "FALSE") Then
		Part.PageSetup.PrinterPaperSize = -1
		Part.PageSetup.PrinterPaperSource = -1
		Part.PageSetup.Orientation = 1
		Part.PageSetup.UsePageSetupOnSheets = False
	End If

	If ("0" <> "1") Then
		Part.Extension.PrintOut 1, 250, 1, TRUE, printName, ""
	Else
		tempStr = "INVALID_TOKEN"
		count = 0
		temploc = InStr(1, tempStr, ",")
		While temploc > 0 And count < 30
			fieldStr = Left(tempStr, temploc - 1)
			tempStr = Mid(tempStr, temploc + 1)
			temploc2 = InStr(1, fieldStr, "-")
			If (temploc2 > 0) Then
				fromPageNumber = CInt(Left(fieldStr, temploc2 - 1))
				toPageNumber = CInt(Mid(fieldStr, temploc2 + 1))
			Else
				fromPageNumber = CInt(fieldStr)
				toPageNumber = CInt(fieldStr)
			End If
			If (toPageNumber >= fromPageNumber) Then
            
				ReDim Preserve pageArray(0 To 2 * count +1)
				pageArray(2 * count) = fromPageNumber
				pageArray(2 * count + 1) = toPageNumber
				count = count + 1
			End If
        
			temploc = InStr(1, tempStr, ",")
		Wend
		If (tempStr <> "") Then
			temploc2 = InStr(1, tempStr, "-")
			If (temploc2 > 0) Then
				fromPageNumber = CInt(Left(tempStr, temploc2 - 1))
				toPageNumber = CInt(Mid(tempStr, temploc2 + 1))
			Else
				fromPageNumber = CInt(tempStr)
				toPageNumber = CInt(tempStr)
			End If
			If (toPageNumber >= fromPageNumber) Then
            
				ReDim Preserve pageArray(0 To 2 * count +1)
				pageArray(2 * count) = fromPageNumber
				pageArray(2 * count + 1) = toPageNumber
				count = count + 1
			End If
		End If
        
		vPageArray = pageArray
		Part.Extension.PrintOut2 (vPageArray), 1, TRUE, printName, ""
	End If

	PartTitle = Part.GetTitle
	Set Part = Nothing
 
	swApp.CloseDoc PartTitle
	swApp.ExitApp
	Set swApp = Nothing

End Sub

Function ErrorOut(errorString As String, errorFilePath As String)
Open errorFilePath For Append As #5
Print #5, errorString
Close #5
End Function