×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

My print macro compile error

My print macro compile error

My print macro compile error

(OP)
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

'______________

RE: My print macro compile error

Try fiddling around with the precedence order of your references (under Tools->References in the VBA editor).

RE: My print macro compile error

(OP)
Excellant.  That worked.  I plan on putting this on a couple of machines.  Will I need to move the references around on those machines?

RE: My print macro compile error

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.  smile

RE: My print macro compile error

Had the same problem. Moved the SldWorks 2007 Type Library priority to the top, and now it works. Thanks.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources