×
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

SW Macro - How to reference $PRPSHEET info in VB??

SW Macro - How to reference $PRPSHEET info in VB??

SW Macro - How to reference $PRPSHEET info in VB??

(OP)
Hello All,

I am writing this macro to help handle our drawing releases throughout the company I work for. We have issues with Solidworks assemblies (and the occasional drawing) not being the most stable things in the world so I have "pieced" this together to save clean copies of our work at revision releases in .pdf format (I'm no programmer, last time I used VB was 5 years ago in intro to engineering).

Feel free to review and suggest ways to clean up the code but the main reason I am here is I wish to automate the process of pulling the revision letter from the part. Currently I have the code set up to prompt the user to enter the current Revision level (see line in Red). I would like to rewrite this line to pull from our property sheet for the part/assembly that is referenced in the open drawing. Each part we make has a Property sheet we pull info from to fill out the title block on our drawings, this typically requires a $PRPSHEET call in the drawing template to pull the info in automatically. I would really like to know how I can reference this information from my VB code and dimension it to a string variable to be used later in the code.

Does anyone know how to execute this?


Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System.Runtime.InteropServices
Imports System
Imports System.IO

Partial Class SolidWorksMacro

Public Sub main()



Dim swDoc As ModelDoc2 = Nothing
Dim longstatus As Integer = 0
Dim CurrentFilePath As String = ""
Dim CurrentFileName As String = ""
Dim ParentFilePath As String = ""
Dim NewFileName As String = ""
Dim ReleaseFilePath As String = ""
Dim RevFilePath As String = ""
Dim RevFileName As String = ""
Dim RevLevelAdd As String = ""
Dim RevLevel As String = ""


swDoc = CType(swApp.ActiveDoc, ModelDoc2)

RevLevel = InputBox("Please enter the new revision level", "Revision Entry", "A", , )



CurrentFilePath = swDoc.GetPathName
CurrentFileName = IO.Path.GetFileNameWithoutExtension(CurrentFilePath)
ParentFilePath = IO.Path.GetDirectoryName(CurrentFilePath)
RevLevelAdd = CurrentFileName & "_Rev " & RevLevel
My.Computer.FileSystem.CreateDirectory(ParentFilePath & "\Revision Archive\")
RevFileName = IO.Path.ChangeExtension(RevLevelAdd, ".pdf")
RevFilePath = ParentFilePath & "\Revision Archive\"
If File.Exists(RevFilePath & RevFileName) Then
MsgBox("Revision Level Already Exists - Cannot Overwrite File", MsgBoxStyle.Information)
Exit Sub
Else
longstatus = swDoc.SaveAs3(RevFilePath & RevFileName, 0, 0)
MsgBox("Saved Drawing as: " & RevFilePath & RevFileName, MsgBoxStyle.Information)



CurrentFilePath = swDoc.GetPathName
CurrentFileName = IO.Path.GetFileName(CurrentFilePath)
ParentFilePath = IO.Path.GetDirectoryName(CurrentFilePath)
My.Computer.FileSystem.CreateDirectory(ParentFilePath & "\Release\")
NewFileName = IO.Path.ChangeExtension(CurrentFileName, ".pdf")
ReleaseFilePath = ParentFilePath & "\Release\"
longstatus = swDoc.SaveAs3(ReleaseFilePath & NewFileName, 0, 0)
MsgBox("Saved Drawing as: " & ReleaseFilePath & NewFileName, MsgBoxStyle.Information)
MsgBox("All Done, Have A Nice Day!!", MsgBoxStyle.Information)

End If



End Sub


Public swApp As SldWorks


End Class

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