Issue Exporting IGES Structure – FEA Parts Not Recognized After ReadVSPFile

35 views
Skip to first unread message

Andreas Chris

unread,
May 7, 2026, 7:11:56 AM (8 days ago) May 7
to OpenVSP

Good Afternoon,

I am trying to reload a .vsp3 file and export the FEA structure as IGES Structure using the Python API. However, after calling ReadVSPFile(), the FEA parts do not seem to be recognized correctly during the IGES structure export.

The export fails with the following message:

D:\a\OpenVSP\OpenVSP\buildlibs\LIBIGES-prefix\src\LIBIGES\src\iges\iges.cpp:642:IGES::Write(): + [INFO ] no entities to save

Below is the relevant portion of my script:

vsp.VSPCheckSetup()
vsp.VSPRenew()
vsp.ClearVSPModel()
vsp.ReadVSPFile(vsp3_file)
vsp.Update()
fea_ids = vsp.GetFeaStructIDVec()
fea_id = fea_ids[0]
rib_array_1 = vsp.GetFeaPartID(fea_id, 1)
vsp.SetParmVal( vsp.FindParm(rib_array_1, "RelStartLocation", "FeaRibArray"), 0.1 )
vsp.Update()
vehicle_id = vsp.FindContainersWithName('Vehicle')[0] 
vsp.Update() 
GeomID = vsp.FindParm(vehicle_id, 'LabelID', 'IGESSettings') 
vsp.SetParmVal(GeomID, True) 
GeomName = vsp.FindParm(vehicle_id, 'LabelName', 'IGESSettings') vsp.SetParmVal(GeomName, True) 
SurfNum = vsp.FindParm(vehicle_id, 'LabelSurfNo', 'IGESSettings') vsp.SetParmVal(SurfNum, True) 
SplitNum = vsp.FindParm(vehicle_id, 'LabelSplitNo', 'IGESSettings') vsp.SetParmVal(SplitNum, True) 
vsp.ExportFile( output_iges_path, vsp.SET_ALL, vsp.EXPORT_IGES_STRUCTURE ) vsp.Update()

A few observations:

  • SetParmVal does change the  RelStartLocation of the  FeaRibArray.

  • However, the IGES export still reports “no entities to save”.

  • The export does work manually if I open the .vsp3 file in the GUI, go to the FEA Structures tab, click on any FEA part, and then export the IGES structure.

My question is:

Does ReadVSPFile() fully build the FEA entities needed for EXPORT_IGES_STRUCTURE, or is there an additional API call required before exporting structural IGES data?

I am also attaching the .vsp3 file.

I am using the latest update (3.50).

Any suggestions would be greatly appreciated.

Thank you.


wing_20_.vsp3

Brandon Litherland

unread,
May 7, 2026, 8:20:56 AM (8 days ago) May 7
to OpenVSP
I'll admit that I'm far less familiar with the FEA features of VSP.  However, I'm wondering if the untrimmed IGES Structure export file isn't what you want.  
Looking into the API documentation and checking in the API itself, I think you want to run the FEA as an analysis to create the mesh THEN export that trimmed mesh to IGES.  The FEA structure/assembly can be thought of a collection of the parameters that define your structure but it isn't the structure object itself.  That is produced when you run the "FeaMeshAnalysis" from the analysis manager.  If you use your IDE or script to show all the analyses with "vsp.ListAnalysis()" you get the full list of the available analyses you can run on your model:

vsp.ListAnalysis()
Out[2]:
('BladeElement',
 'CpSlicer',
 'CompGeom',
 'DegenGeom',
 'PlanarSlice',
 'DegenGeomMesh',
 'EmintonLord',
 'GeometryAnalysis',
 'MassProp',
 'FeaMeshAnalysis',
 'Projection',
 'SurfacePatches',
 'WaveDrag',
 'VSPAERODegenGeom',
 'VSPAEROComputeGeometry',
 'VSPAEROSinglePoint',
 'VSPAEROSweep',
 'VSPAEROReadPreviousAnalysis',
 'ParasiteDrag',
 'SurfaceIntersection',
 'CfdMeshAnalysis')

Then if you look at all available inputs to an analysis with "vsp.GetAnalysisInputNames('Analysisname')" like so:

vsp.GetAnalysisInputNames('FeaMeshAnalysis')
Out[3]:
('BaseLen',
 'CADLabelDelim',
 'CADLabelID',
 'CADLabelName',
 'CADLabelSplitNo',
 'CADLabelSurfNo',
 'CADLenUnit',
 'CALCULIXFileFlag',
 'CALCULIXFileName',
 'CURVFileFlag',
 'CURVFileName',
 'ExportRawFlag',
 'GMSHFileFlag',
 'GMSHFileName',
 'GrowthRatio',
 'HalfMeshFlag',
 'IGESFileFlag',
 'IGESFileName',
 'MASSFileFlag',
 'MASSFileName',
 'MaxGap',
 'MinLen',
 'NASTRANFileFlag',
 'NASTRANFileName',
 'NCircSeg',
 'NKEYFileFlag',
 'NKEYFileName',
 'P3DFileFlag',
 'P3DFileName',
 'RelCurveTol',
 'RigorLimit',
 'SRFFileFlag',
 'SRFFileName',
 'STEPFileFlag',
 'STEPFileName',
 'STEPRepresentation',
 'STEPTol',
 'STLFileFlag',
 'STLFileName',
 'XYZIntCurveFlag')

My concern/question is whether executing the analysis only builds the mesh and then stops -or- if the analysis manager assumes that you want to export the CAD format because the flags are active or not... If the FEA Mesh analysis only creates the mesh, then the CAD export side of this may be missing from the API.  I may be confusing the FeaMeshAnalysis and the ComputeFeaMesh function in the FEA Mesh API itself (https://openvsp.org/api_docs/latest/group___f_e_a_mesh.html#ga3ac963c203ea4472f43af51f07bfeedb).  I suggest that you try both of these approaches and see what works.  Start very simply with a wing structure skin or something and then try to run each of these in a few combinations to see what happens.  For example, you may find that running the FeaMeshAnalysis produces the analysis result that you can then use the Results Manager to write out as CAD.

Rob McDonald

unread,
May 7, 2026, 10:30:08 AM (8 days ago) May 7
to OpenVSP
A couple of years ago, we went through a bunch of changes to make OpenVSP faster and more responsive.  These basically amounted to trying to be smarter (more fine-grained) about how we update information.  I.e. don't update stuff that doesn't need to be updated.

One of these optimizations is that we don't regenerate all of the structures surfaces every time you change a Parm for a Geom.  We update them when the Structures GUI is open, and in some other situations.

Unfortunately, we don't update them before exporting like this.  It is a bug, I'll have it fixed in the next release.

Right now, the only two lightweight API commands that force a fea structure Update are AddFeaPart and AddFeaSubSurf.

So, as a workaround, I suggest you AddFeaPart and then immediately DeleteFeaPart just before you export.

Rob

Andreas Chris

unread,
May 9, 2026, 3:18:04 PM (5 days ago) May 9
to OpenVSP

Thanks Rob, this method works perfectly.

Appreciate the explanation and workaround until the next release fix.

Kind regards,

Andreas.

Reply all
Reply to author
Forward
0 new messages