AnsweredAssumed Answered

How to Import a Parasolid file in C# as a Standalone build

Question asked by Thiago Motta on Aug 21, 2018
Latest reply on Aug 22, 2018 by Thiago Motta



I've just started working with SolidWords and wanted to see if it was possible to create a C# Project to start Solidworks as a background process (not visible at all) and load a Parasolid file, but Im not finding the correct documentation to help me out. The closest link I found was, which was great already, but at the end didnt help me get through with it.


This is what I have so far: A simple Console Project with the following code


class Program
    static SldWorks.SldWorks _swApp;

    static void Main( string [ ] args )
            Test( args );
        catch ( Exception ex )
            Console.WriteLine( ex.Message );

        if ( _swApp != null )
            _swApp.ExitApp( ); //Exits SolidWorks running in the background
            _swApp = null;

    static void Test( string [ ] args )
        SldWorks.SldWorks _swApp = new SldWorks.SldWorks( ); //Correctly starts a new instance of solidwords if one isnt opened already
        ModelDoc2 swModel;

        swModel = _swApp.ActiveDoc as ModelDoc2;

        string fileName = null;
        string argString = null;
        int Err = 0;

        fileName = "D:\\temp\\HEAD-A-0018.x_t";
        argString = "r";

        dynamic importData = _swApp.GetImportFileData( fileName );
        swModel = ( ModelDoc2 )_swApp.LoadFile4( fileName, argString, importData, ref Err );


This is throwing the following exception:

An exception of type 'System.Runtime.InteropServices.COMException' occurred in System.Dynamic.dll but was not handled in user code

Additional information: Element not found. (Exception from HRESULT: 0x8002802B (TYPE_E_ELEMENTNOTFOUND))

What I could tell was that "importData" variable has a NULL value, the "fileName" path results in a valid file and that swApp is not null. Also added some Solidworks DLLs to the References of this C# Project .


Can anyone point me the way to correct this? Because I havent been able to figure it out so far =/


Thank you!