ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
JSJohn Shaw09/04/2020

Hi all, I am working on a macro to inserting multiple parts into an assembly from a single folder location. It assumes the assembly is already open.

It loops through fine, however only the first part is coincident and fixed to the assembly origin. All other parts are not coincident to the origin, even visually.  How would I correct this? I would prefer to do it after each part is added rather than all at the end. Code below, any help gratefully received!

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssem As SldWorks.AssemblyDoc
Dim boolstatus As Boolean
Dim sFileName As String
Dim Path As String
Dim nErrors As Long
Dim nWarnings As Long

'***************************************

On Error Resume Next

Set swApp = Application.SldWorks
Set swAssem = swApp.ActiveDoc

Path = "E:\Scripting\"
sFileName = Dir(Path & "*.sldprt")

Do Until sFileName = ""

Set swModel = swApp.OpenDoc6(Path & sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
boolstatus = swAssem.AddComponent(Path & sFileName, 0, 0, 0)
swApp.CloseDoc Path & sFileName

Set swModel = Nothing
Set swAssem = swApp.ActiveDoc
sFileName = Dir

Loop

End Sub

Thanks, John

Credit: Deepak Gupta's code on this forum has already helped greatly, thank you sir.