Importing CAD file into matlab (STEP file)- Aircraft structure

75 vues (au cours des 30 derniers jours)
Dhinu
Dhinu le 3 Déc 2024 à 10:41
Réponse apportée : Dhinu il y a environ une heure
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 commentaires
Walter Roberson
Walter Roberson le 8 Déc 2024 à 20:56
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
Cris LaPierre le 8 Déc 2024 à 21:58
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.

Connectez-vous pour commenter.

Réponses (2)

Cris LaPierre
Cris LaPierre le 8 Déc 2024 à 22:47
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')
gm1 =
DiscreteGeometry with properties: NumCells: 1 NumFaces: 24 NumEdges: 69 NumVertices: 48 Vertices: [48x3 double]
gm2 = importGeometry('20241126_Dhinu_test_part_cut-out - Bauteil2 (2).stl')
gm2 =
DiscreteGeometry with properties: NumCells: 1 NumFaces: 20 NumEdges: 34 NumVertices: 23 Vertices: [23x3 double]
gm3 = importGeometry('20241126_Dhinu_test_part_cut-out - Bauteil2.stl')
gm3 =
DiscreteGeometry with properties: NumCells: 1 NumFaces: 26 NumEdges: 36 NumVertices: 30 Vertices: [30x3 double]
pdegplot(gm1)
hold on
pdegplot(gm2)
hold on
pdegplot(gm3)
hold off
  5 commentaires
Cris LaPierre
Cris LaPierre il y a 32 minutes
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
Dhinu il y a 15 minutes
I currently use R2024b , but when i try to make all the indepdent part into one (connected to adjacent block) The file runs and open the figure tab but does not show anything . i tried botht the function and the error is same
(importGeometry, feGeometry)
code :
figure(1)
Geometry = "stringers test2 1"
gm1 = importGeometry("stringers test2 1.stp");
pdegplot(gm1,FaceLabels="on",FaceAlpha=0.3)
error message :
Error using pde.DiscreteGeometry
Unable to create one or more edges due to inconsistent triangulation of adjacent faces.
Error in importGeometry (line 88)
gm = pde.DiscreteGeometry(filename,MaxRelativeDeviationDefault);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in open_files (line 16)
gm1 = importGeometry("stringers test2 1.stp");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Connectez-vous pour commenter.


Dhinu
Dhinu il y a environ une heure
i managed to import whole shell skin ,
but it is still not possible with a cutout part even after exporting each structure individually.
i tried the code :
indvidually i get the error:
code:
figure(1)
Geometry1 = "cutout1_skin"
gm1 = fegeometry("cutout1_skin.stp");
pdegplot(gm1,FaceLabels="on",FaceAlpha=0.3)
Error using open_files (line 29)
Unable to create one or more edges due to inconsistent triangulation of adjacent faces.
and together but it gives error message :
figure(1)
Geometry1 = "cutout1_skin"
gm1 = fegeometry("cutout1_skin.stp");
pdegplot(gm1,FaceLabels="on",FaceAlpha=0.3)
figure(2)
Geometry2 = "cutout3_stringers"
gm2 = fegeometry("cutout3_stringers.stp");
pdegplot(gm2,FaceLabels="off",FaceAlpha=0.3)
figure(3)
Geometry3 = "cutout2_frame"
gm3 = fegeometry("cutout2_frame.stp");
pdegplot(gm3,FaceLabels="off",FaceAlpha=0.3)
pdegplot(gm1)
hold on
pdegplot(gm2)
hold on
pdegplot(gm3)
hold off
error:
Error using pde.DiscreteGeometry
Unable to create one or more edges due to inconsistent triangulation of adjacent faces.
Error in importGeometry (line 88)
gm = pde.DiscreteGeometry(filename,MaxRelativeDeviationDefault);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in test_1 (line 4)
gm1 = importGeometry('cutout1_skin.stp')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by