Importing CAD file into matlab (STEP file)- Aircraft structure
Show older comments
Hello all,
I would like to import a cut out part of the aircraft shell and overlay with some existing/measured point cloud.
I tried to first import the ideal STEP file of the shell using the following code:
figure
Geometry = 'Shell single body'
gm = fegeometry("Shell single body.stp");
pdegplot(gm,FaceLabels="on",FaceAlpha=0.3)
But i was able to import only a very very small part of the shell within the cut out part .Tried to change the export types in CATIA and make fucntion changes but nothing works and i suppose that it runs and breaks as the meory is full (RAM) while reading such large file (2000KB), is there a way i can import such large Step files without loosing the geometry and would be able to overlay the meaured point clouds on it ?
8 Comments
Jacob Mathew
on 3 Dec 2024
Hey Dhinu,
Do you face any explicit error that you are running out of memory? Also coud you share the file or a dummy one of similar size and complexity to reproduce it
Walter Roberson
on 3 Dec 2024
2000KB is only 2 GB. I would not expect that to be a problem except on systems that barely meet the minimums for running MATLAB.
Dhinu
on 3 Dec 2024
Dhinu
on 3 Dec 2024
Walter Roberson
on 3 Dec 2024
zip the .step file and attach the .zip
Dhinu
on 8 Dec 2024
Walter Roberson
on 8 Dec 2024
I get,
Imported geometry must be a solid geometric shape.
when I try to read in 20241126_Dhinu_test_part_cut-out.stp
Cris LaPierre
on 8 Dec 2024
This is an error I commonly encounter when working with stl files - the model geometry is not fully closed. With stl's, I have used online repari tools in the past to fix this issue.
Here's a previous post about stl files: https://www.mathworks.com/matlabcentral/answers/688609-cannot-load-simple-stl-file#answer_570469
Answers (2)
I was able to load your step file into OnShape. Your file has 3 independent geometries in it. That is why you are getting this error. I exported the 3 parts as STL files and then was able to import each one individually.
unzip('20241126_Dhinu_test_part_cut-out.zip','./')
gm1 = importGeometry('20241126_Dhinu_test_part_cut-out - Bauteil2 (1).stl')
gm2 = importGeometry('20241126_Dhinu_test_part_cut-out - Bauteil2 (2).stl')
gm3 = importGeometry('20241126_Dhinu_test_part_cut-out - Bauteil2.stl')
pdegplot(gm1)
hold on
pdegplot(gm2)
hold on
pdegplot(gm3)
hold off
5 Comments
Dhinu
on 9 Dec 2024
Cris LaPierre
on 9 Dec 2024
The file format is not the issue. It is that you have multiple independent parts in a single file. You need to separate each unique part into its own file and import it that way.
Dhinu
on 10 Dec 2024
Cris LaPierre
on 10 Dec 2024
The functions for importing a step file are importgeometry and fegeometry. Note that, for importgeometry, you must be using at least R2022b and for fegeometry, you must be using at least R2023a (for step files, at least).
Dhinu
on 10 Dec 2024
Dhinu
on 12 Dec 2024
3 Comments
Jacob Mathew
on 13 Dec 2024
Hi Dhinu,
This error points to the model itself having some error. This could be because the 3D modelling software that you are using might not flag dirty geometry but MATLAB does. Do consider manually modifying the model within the modeling software to try and solve the issue
Dhinu
on 13 Dec 2024
Cris LaPierre
on 13 Dec 2024
I was able to duplicate the issue if I tried to import a file with two unique parts interfacing. As I showed above, I imported your step file into a CAD program and then exported each unique component. I was then able to import each part indificually without error. This suggests there is an error with how the CAD software is creating the file, particularly where two components interface. Error might be too strong of a word, since other CAD systes will load it just fine.
This is an issue I encountered a lot when working with stl files for 3D printing. I was able to use online tools to repair the files. This amounted to orienting the faces correctly, removing interior walls, etc.
Categories
Find more on Geometry and Mesh in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

