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 ([COLOR="red"]see line in Red[/COLOR]). 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?
[CODE]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)
[COLOR="red"]RevLevel = InputBox("Please enter the new revision level", "Revision Entry", "A", , )[/COLOR]
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[/CODE]