Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

SolidWorks API 1

Status
Not open for further replies.

Bingo123

Mechanical
Jan 31, 2011
5
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
 
Replies continue below

Recommended for you

Hi, Bingo123:

What do you means by "remotely"?

Best regards,

Alex
 
Hi!

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 :)
 
Hi, Bingo123:

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
 
I have tried this advice, but I am quite a novice with Visual Studio and was wondering if you could advise how to debug...

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 :)
 
Hi, Bingo123:

"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
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor