SolidWorks API
SolidWorks API
(OP)
Hi!
I am new to SolidWorks API but am an experienced SolidWorks user.
Please can someone advise how to open a SolidWorks file remotely?
Thank you
I am new to SolidWorks API but am an experienced SolidWorks user.
Please can someone advise how to open a SolidWorks file remotely?
Thank you






RE: SolidWorks API
What do you means by "remotely"?
Best regards,
Alex
RE: SolidWorks API
Sorry, I wasn't very clear.
I would like to write code in Visual Studio, so that when I execute it it will check if SolidWorks is open, if not open it.
Once I have learnt to do this I would also like to get the code to check if a certain solidworks part file is open, and if not open it.
Is this possible?
Many Thanks :)
RE: SolidWorks API
You will need to use swApp.OpenDoc(?) method. Please search "Open Document Silently Example" under Solidworks API help menu. Alternatively, you can use "Shell" command, which can open any type of documents as long as there is associated application in your system.
You do not need to check if Solidworks is open (running). Windows takes care of that for you.
Hope this helps! Thanks for the star!
Best regards,
Alex
RE: SolidWorks API
I have created a visual basic project and have added a code file where I have copied the following (from SolidWorks API help):
'------------------------------------------------------
'
' Preconditions: Specified file to open exists.
'
' NOTE: The specified file in this example is shipped as a
' sample file for a SolidWorks tutorial. After
' opening the file with this macro, close it without saving it so
' that it will continue to work with the tutorial.
'
' Postconditions: Specified file is opened.
'
'------------------------------------------------------
Dim swSelMgr As SldWorks.SelectionMgr
Dim swDocSpecification As SldWorks.DocumentSpecification
Dim sComponents(0) As String ' List of components to select
Dim Components As Object
Dim swComponent As SldWorks.Component2
Dim sName As String
Dim longstatus As Long, longwarnings As Long
Sub Main()
swApp = Application.SldWorks
swDocSpecification = swApp.GetOpenDocSpec("C:\Program Files\SolidWorks\SolidWorks\samples\tutorial\advdrawings\bowl and chute.sldasm")
sComponents(0) = "food bowl-1@bowl and chute"
Components = sComponents
swDocSpecification.ComponentList = Components
swDocSpecification.Selective = True
sName = swDocSpecification.FileName
swDocSpecification.DocumentType = swDocASSEMBLY
swDocSpecification.DisplayState = "Default_Display State-1"
swDocSpecification.UseLightWeightDefault = False ' Ignore the system default and use swDocSpecification::LightWeight value
swDocSpecification.LightWeight = True
swDocSpecification.Silent = True
swDocSpecification.IgnoreHiddenComponents = True
swModel = swApp.OpenDoc7(swDocSpecification)
longstatus = swDocSpecification.Error
longwarnings = swDocSpecification.Warning
End Sub
But, I have errors:
''Sub Main' was not found in 'Open Solidworks assembly VBA''.
And several:
'Statement is not valid in a namespace.'
(For all of the 'Dim swSelMgr As SldWorks.SelectionMgr' etc. at the start of the code.).
This is probably a reflection of my lack of Visual Studio knowledge, but can someone help me?
Thank you so much :)
RE: SolidWorks API
Dan
www.eltronresearch.com
Dan's Blog
RE: SolidWorks API
"Sub main" is a startup form to an application. It seems that you do not have this startup form. Normally, a VB project can have many forms (windows), and developers need to specify which form that you want to assign the startup form.
It also seem swApp object is not defined.
I copy my API sample and I have no issue. I am still using SW08.
Best regards,
Alex