Solidworks macro that moves parts in a assembly

Discussion in 'SolidWorks' started by Peter Uttrup, Mar 10, 2005.

  1. Peter Uttrup

    Peter Uttrup Guest

    I have to move and save a bunch of parts in a assembly and then save a
    tiff image of them.
    I have to repeate it about 200 times, so i want have a macro do the
    job for me.

    But i cannot get the macro to move the selected components. It just
    saves the same image again and again.

    Here is the macro code. Does anyoen have any idea what might be wrong?

    Regards

    Peter

    ' ******************************************************************************
    ' C:\DOCUME~1\vmpeut\LOKALE~1\Temp\swx3864\Macro1.swb - macro recorded
    on 03/10/05 by vmpeut
    ' ******************************************************************************
    Dim swApp As Object
    Dim Part As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long
    Dim FeatureData As Object
    Dim Feature As Object
    Dim Component As Object
    Dim counter As Integer

    Sub main()

    Set swApp = Application.SldWorks
    For counter = 1 To 10

    Set Part = swApp.ActiveDoc
    boolstatus = Part.Extension.SelectByID("emnederived-1@flytbund",
    "COMPONENT", 0, 0, 0, False, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("centraludstøder2-1@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("udstøder-4@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("udstøder-3@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("udstøder-2@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("udstøder-1@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("bevægelig
    opspændingsplade-1@flytbund", "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("udstøderholdeplade-1@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("udstødertrykplade-1@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("lineal-3@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("lineal-2@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("indsats-1@flytbund",
    "COMPONENT", 0, 0, 0, True, 0, Nothing)
    boolstatus = Part.Extension.SelectByID("bevægelig
    formplade-1@flytbund", "COMPONENT", 0, 0, 0, True, 0, Nothing)
    Part.TranslateComponent
    Part.ClearSelection2 True

    Part.SaveAs2 "\\stsfil\Brugerprofiler\vmpeut\Desktop\a" & Str(counter)
    & ".tif", 0, True, False
    Next counter
    End Sub
     
    Peter Uttrup, Mar 10, 2005
    #1
  2. Peter Uttrup

    KCS Company Guest

    Looks like TranslateComponent activates the move component command then
    waits for the user to move a part(s). It doesn't move anything by
    itself. What you need is a form that stores the tiff image after each
    move. Put a STORE button or something similar on it. All you need to
    assign to the store button is the SaveAs2 method. You should only have
    to select the components once before you start.

    If you are trying to automatically move the parts, I think you've got a
    lot more programming to do. Look at the Transform2 property for
    components in SWx API help.

    Hope this helps...

    Kent
    www.KentContract.com
     
    KCS Company, Mar 11, 2005
    #2
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.