Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

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

Macro Question

Status
Not open for further replies.

MachineSMMC

Industrial
Joined
May 7, 2004
Messages
70
Location
US
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
 
PartName = Part.GetPathName
PartName = Left(PartName, Len(PartName) - 7) & ".igs"
These two lines are what take the current part path and swap ".sldprt" for ".igs". Instead of using "Part.GetPathName" to determine your path, set a new path at this point.

[bat]I could be the world's greatest underachiever, if I could just learn to apply myself.[bat]
-SolidWorks API VB programming help
 
Could you give me an example? I am not sure I know exactly what I need to do.

Thanks
Chris
 
you could just replace those two lines with this one:

PartName = "C:\temp.igs"
 
I still want to maintain the parts original name just change the location. Cab you give me an example of that?

Thanks
Chris
 
OK, fine. Try this:
*******
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.
 
Ok, thanks

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
 
Definitely start w/ VBA before you get too deep into macros. It really helps.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top