Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.
Articles

VBA in SolidWorks to create an assembly.

Here's a basic example of how you might use VBA in SolidWorks to create an assembly. This example assumes that you have SolidWorks installed and are familiar with the VBA editor within SolidWorks

.

### Sample VBA Code for Creating an Assembly in SolidWorks

This code will:
1. Create a new assembly document.
2. Insert two existing parts into the assembly.
3. Add a mate between the two parts.

```vba
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssembly As SldWorks.AssemblyDoc
Dim swPart1 As SldWorks.Component2
Dim swPart2 As SldWorks.Component2
Dim swMate As SldWorks.Mate2

Sub CreateAssembly()
    ' Connect to SolidWorks
    Set swApp = Application.SldWorks
    
    ' Create a new assembly
    Set swModel = swApp.NewDocument("C:ProgramDataSolidWorksSOLIDWORKS 2021templatesassembly.asmdot", 0, 0, 0)
    Set swAssembly = swModel

    ' Insert Part 1
    Set swPart1 = swAssembly.AddComponent5("C:PathToYourPart1.SLDPRT", 0, 0, 0, 0, 0, 0)
    
    ' Insert Part 2
    Set swPart2 = swAssembly.AddComponent5("C:PathToYourPart2.SLDPRT", 0, 0, 0.1, 0, 0, 0)

    ' Add a mate (coincident) between the front planes of Part 1 and Part 2
    Dim mateEntities(1) As SldWorks.Entity
    Set mateEntities(0) = swPart1.GetModelDoc2().FeatureByName("Front Plane").GetEntity
    Set mateEntities(1) = swPart2.GetModelDoc2().FeatureByName("Front Plane").GetEntity
    Set swMate = swAssembly.AddMate5(mateEntities, 1, 0, 0, 0, 0, 0, False, 0, 0)

    ' Rebuild the assembly
    swModel.ForceRebuild3 False

    ' Save the assembly
    swModel.SaveAs "C:PathToSaveAssembly.SLDASM"
    
    ' Show a message box indicating the assembly is created
    MsgBox "Assembly created successfully!"
End Sub
```

### Explanation:
1. **AddComponent5**: Adds a part to the assembly. The parameters are the file path, position (X, Y, Z), and orientation.
2. **AddMate5**: Adds a mate between two entities (in this case, the front planes of the two parts).
3. **ForceRebuild3**: Forces a rebuild of the assembly to update the changes.

### Notes:
- Replace `C:PathToYourPart1.SLDPRT` and `C:PathToYourPart2.SLDPRT` with the actual paths to your part files.
- Modify the paths and the orientation as needed for your specific use case.

This code can be expanded and modified depending on your assembly needs.

caa August 17 2024 75 reads 0 comments Print

0 comments

Leave a Comment

Please Login to Post a Comment.
  • No Comments have been Posted.

Sign In
Not a member yet? Click here to register.
Forgot Password?
Users Online Now
Guests Online 2
Members Online 0

Total Members: 11
Newest Member: Jhilam