Create/Export .stl file from a mesh
조회 수: 33 (최근 30일)
이전 댓글 표시
Hello,
I have created a model and used generateMesh function that created a mesh and stored it to a model object.
smodel = createpde('structural', 'static-solid');
importGeometry(smodel, 'SquareBeam.STL');
msh = generateMesh(smodel, 'GeometricOrder','linear','Hmin',50);
pdemesh(msh);
Now, I'd like to write this structure to a stl file. I have found stlWrite function in the File Exchange but this function takes faces and vertices as input parameters.
https://www.mathworks.com/matlabcentral/fileexchange/20922-stlwrite-write-ascii-or-binary-stl-files
Is there any way I can extract this data from msh object created in the code above?
Thank you.
댓글 수: 0
채택된 답변
Cris LaPierre
2022년 9월 15일
You can use the stlwrite function that ships with MATLAB. However, you do need to turn your mesh into a triangulation opject first. I'm not sure I found the best way to do this, but my solution is based on this answer:
smodel = createpde('structural', 'static-solid');
importGeometry(smodel, 'SquareBeam.stl');
pdegplot(smodel)
msh = generateMesh(smodel, 'GeometricOrder','linear','Hmin',50);
pdemesh(msh)
% Extract the edge nodes
N = findNodes(msh,"region","Edge",1:smodel.Geometry.NumEdges);
% Convert to alphashape
shp = alphaShape(msh.Nodes(:,N)');
figure
plot(shp)
% Create triangulation
[T, P] = boundaryFacets(shp);
TR = triangulation(T, P);
stlwrite(TR, 'myMesh.stl');
% check result
bmodel = createpde('structural', 'static-solid');
importGeometry(bmodel, 'myMesh.stl');
pdegplot(bmodel)
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Bounding Regions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



