How could I create stl file based on the ellipsoid command?

3 次查看(过去 30 天)
I try several methods to write an stl file based on the ellipsoid geometry.
But I haven't find way to successfully do it.
Following is my code
clear
clc
close all
[x, y, z] = ellipsoid(0,0,0,5.9,3.25,3.25,30);
s=surf(x,y,z)
p=surf2patch(s)
%Extract faces and vertices from structure p
pf=p.faces
pv=p.vertices
tr=triangulation(pf,pv)
stlwrite(tr,'ell.stl')
The message ''Tetrahedron triangulation is not supported.'' appears, I know I could use ''boundaryFacets'' command to solve this problem, but I don't know how to create an alphaShape of ellipsoid.
Could anyone gives me a hint?

采纳的回答

Aditya Patil
Aditya Patil 2020-12-24
stlwrite only support triangles.
You can get the alphaShape of ellipsoid using the alphaShape function.
shp = alphaShape(tr.Points)
There is also the freeBoundary function.
[F,P] = freeBoundary(tr)
trNew = triangulation(F,P)
stlwrite(trNew, "freeboundary.stl")
  1 个评论
Daniel Chou
Daniel Chou 2020-12-24
编辑:Daniel Chou 2020-12-24
Dear @Aditya Patil
I sincerely appreciate for your assistance.
You save me from this haha.
Before viewing your suggestion, I already used the freeboundary method to create the stl file. However, the mesh quality is a disaster, I'm still trying to figure out how to solve it.
After reading your hint I try to modify my code as follow,
clear
clc
close all
%input the properties of ellipsoid by ''ellipsoid'' function
[x, y, z] = ellipsoid(1,1,1,5.9,3.25,3.25,30,5);
%Convert the ellipsoid to surface via ''surf''
s=surf(x,y,z)
%from surface to patch: generate the faces and vertices
p=surf2patch(x,y,z)
%Extract faces and vertices from structure p
pf=p.faces
pv=p.vertices
tr=triangulation(pf,pv)
sha=alphaShape(tr.Points)
%Using larger sha.Alpha to imprive the quality of mesh
sha.Alpha=5
plot(sha)
%Extract boundary face of alphaShape
[F,P]=boundaryFacets(sha)
%New set of triangulation
Newtr=triangulation(F,P)
%Export stl file
stlwrite(Newtr, "ell_3.stl")
I got an adorable ellipsoid stl file with steady mesh quality, which allows me to do re-meshing work in meshmixer and further model manipulation in solidworks.
Thank you very much again!!
Sincerely yours
Daniel Chou

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Bounding Regions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by