Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

My print macro compile error 1

Status
Not open for further replies.

CycloneWade

Automotive
Apr 1, 2005
76
So i had this macro working a couple months ago and now it has a compile error. Object library feature not supported. This is almost a straight copy from API help files. Thanks.

Dim swApp As Object

'-----------------------------------------------------
'
' Preconditions: Drawing document is open.
'
' Postconditions: Drawing document printed to file.
'
'------------------------------------------------------

Option Explicit
Sub main()

' Printer

Const SWPrinter As String = "\\DSM\HP LaserJet 3300/3310/3320"





Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDocExt As SldWorks.ModelDocExtension

Dim swDraw As SldWorks.DrawingDoc



Dim PathName As String

Dim PrintFileName As String

Dim nPrintSheets(1) As Long

Dim vPrintSheets As Variant

Dim DefPrinter As String

Dim i As Long



Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swDocExt = swModel.Extension

Set swDraw = swModel



' Strip off SolidWorks file extension (.sldxxx)

PathName = swModel.GetPathName

PathName = Left(PathName, Len(PathName) - 7)



For i = 0 To swDraw.GetSheetCount - 1

' Generate print filename based on sheet number

' For example, if drawing document is gears.slddrw and contains

' one sheet, then the print filename is gears0.prn

PrintFileName = PathName & 0 & Trim(Str(i + 1)) & ".prn"



' Print out one sheet at a time

nPrintSheets(0) = i + 1

vPrintSheets = nPrintSheets

swDocExt.PrintOut2 (vPrintSheets), 1, False, SWPrinter, PrintFileName

Next i

End Sub

'______________
 
Replies continue below

Recommended for you

Try fiddling around with the precedence order of your references (under Tools->References in the VBA editor).
 
Excellant. That worked. I plan on putting this on a couple of machines. Will I need to move the references around on those machines?
 
The references and order of precedence should be saved in the macro, so if the libraries are present on the other machines you shouldn't have to. Nothing like a bit of testing to make certain, though. :)
 
Had the same problem. Moved the SldWorks 2007 Type Library priority to the top, and now it works. Thanks.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor