3D ploting stl or cad file from fusion360 to matlab

87 views (last 30 days)
Hello all, i want to import STL or CAD file that i created using fusion360.
eventually I want to 3D plot on a figure the object and make it rotate according to euler angles or quaternions
I couldnt find example or answer in the form that i could implement and that work.
I'll be greatful for any help :)

Answers (1)

Aritra
Aritra on 3 Feb 2023
Hi, 
As per my understanding you aretrying to import a STL/CAD file in MATLAB and make the 3D model rotate as per Euler angles/quaternions.
To import a STL file in MATLAB you can make use of the importGeometry(geometryfile) function. The importGeometry function helps to import geometry from STL/STEP file. You can also refer to the below documentation to learn more about how to STL File Import.
Next to rotate a 3D figure you can make use of the rotate(g,theta) function. The rotate function rotates the geometry g about the z axis by an angle theta. Similarly, you can use the quatrotate(q,r) function to rotate a initial vector r by a quaternion q.
The below code snippet shows how to import a STL file in MATLAB and rotate it by an angle of 45 degrees using the rotate function.
figure
gm = importGeometry("Torus.stl");
pdegplot(gm)
rotate(gm , 45);
figure
pdegplot(gm)
For more details you can refer to the below MATLAB documentation on importGeometry and rotate function:
  1 Comment
Eyal Sasson
Eyal Sasson on 3 Feb 2023
Edited: Eyal Sasson on 3 Feb 2023
thanks
when I try the first part of the code with my stl file:
figure
gm = importGeometry("mystl.stl");
pdegplot(gm)
I get this error:
Error using pde.DiscreteGeometry
Failed to create geometry. The stl file is invalid, more than two facets share an edge.
Error in importGeometry (line 53)
gm = pde.DiscreteGeometry(geofilename);
Error in myproject (line 12)
gm = importGeometry("mystl.stl");
The obejct I created the stl from is a component which have multiple bodies that is not connected to each other, but I want to to be plotted the whole thing as one rigid body. any ideas how to make the function treat it as one rigid body?

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!