Macro Question
Macro Question
(OP)
I have this macro I got from this forum that saves a part file to an iges format. It automatically saves it to the folder location that the part is in. I am going to be using PDM works so I need to have it save it in a different spot. What do I need to change to get this to work?
Here is the Macro:
Option Explicit
Dim swApp, Part As Object
Dim BoolStatus As Boolean
Dim LongStatus As Long
Dim e As Long
Dim w As Long
Dim Msg As String
Dim PartName, Rev As String
Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
If ((Part Is Nothing) Or (Not (Part.GetType Eqv swDocPART))) Then
Msg = "A part document must be active to use this command!"
LongStatus = swApp.SendMsgToUser2(Msg, swMbWarning, swMbOk)
End
Else
PartName = Part.GetPathName
PartName = Left(PartName, Len(PartName) - 7) & ".igs"
BoolStatus = Part.SaveAs4(PartName, 0, 0, e, w)
If BoolStatus = False Then
Msg = "Failed to save IGS document!"
LongStatus = swApp.SendMsgToUser2(Msg, swMbWarning, swMbOk)
Else
' Msg = "Saved part as " & PartName
' LongStatus = swApp.SendMsgToUser2(Msg, swMbWarning, swMbOk)
End If
End If
Set Part = Nothing
Set swApp = Nothing
End Sub
Thanks
Chris
Here is the Macro:
Option Explicit
Dim swApp, Part As Object
Dim BoolStatus As Boolean
Dim LongStatus As Long
Dim e As Long
Dim w As Long
Dim Msg As String
Dim PartName, Rev As String
Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
If ((Part Is Nothing) Or (Not (Part.GetType Eqv swDocPART))) Then
Msg = "A part document must be active to use this command!"
LongStatus = swApp.SendMsgToUser2(Msg, swMbWarning, swMbOk)
End
Else
PartName = Part.GetPathName
PartName = Left(PartName, Len(PartName) - 7) & ".igs"
BoolStatus = Part.SaveAs4(PartName, 0, 0, e, w)
If BoolStatus = False Then
Msg = "Failed to save IGS document!"
LongStatus = swApp.SendMsgToUser2(Msg, swMbWarning, swMbOk)
Else
' Msg = "Saved part as " & PartName
' LongStatus = swApp.SendMsgToUser2(Msg, swMbWarning, swMbOk)
End If
End If
Set Part = Nothing
Set swApp = Nothing
End Sub
Thanks
Chris






RE: Macro Question
http://www.EsoxRepublic.com-SolidWorks API VB programming help
RE: Macro Question
Thanks
Chris
RE: Macro Question
PartName = "C:\temp.igs"
RE: Macro Question
Thanks
Chris
RE: Macro Question
*******
PartName = Part.GetTitle
If Right(PartName, 7) = ".sldprt" Then
PartName = Left(PartName, Len(PartName) - 7)
End If
PartName = "C:\" & PartName & ".igs"
*******
If you want the file stored somwhere other than the root of your C: drive, just replace C:\ with whatever path you wish.
I'm pretty sure this will work, but I cannot test it right now. I don't have PDMWorks, either, so that may change something (but I doubt it).
This is really not very difficult...You really should try and learn Visual Basic. I think VARS give some courses, or you can even take a general VB class. Also, there are lots of places on the web to help learn VB.
RE: Macro Question
I have every intention on learning more about VBA. I already have a book just haven't had any time to look through it yet.
Chris
RE: Macro Question