2017-06-13 3 views
0

J'ai écrit du code MATLAB (montré ci-dessous) qui fait un bord, puis construit un maillage s'étendant à partir de ce bord. Je peux voir le modèle 3D dans une figure comme un maillage, mais il n'y a aucun moyen d'exporter ce modèle en tant qu'objet 3d tel qu'un stl ou obj.Comment exporter un maillage dans MATLAB vers stl ou obj?

J'ai lu de nombreux exemples de conversion à stl, qui a utilisé quelque chose comme ceci:

% Extract the surface mesh 
M=isosurface(x,y,z,F,0); 
tr=TriRep(M.faces,M.vertices); 
figure('color','w'), h=trimesh(tr); axis equal 
% Write to .stl 
stlwrite('PillBoxExample.stl',tr.Triangulation,tr.X) 

Mais dans mon code, j'utilisé juste maille:

figure; 
M= surface(-finalLSF); 
hold on; contour(phi, [0,0], 'r','LineWidth',2); 

J'ai essayé beaucoup de temps pour convertir mais J'ai toujours des erreurs.

code:

Img = imread('MK2.jpg'); 
Img=double(Img(:,:,1)); 
% 
% ... other code ... 
% 
figure; 
M= mesh(-finalLSF); 
hold on; contour(phi, [0,0], 'r','LineWidth',2); 
str=['Final level set function, ', num2str(iter_outer*iter_inner+iter_refine), ' iterations']; 
title(str); 
axis on; 
+0

Je suis Je ne sais pas si vous pouvez ou si vous le devriez. 'mesh 'est une fonction de traçage, elle ne génère pas réellement d'objet mesh. –

Répondre

0

Vous devez download stlwrite from File Exchange et le placer dans votre chemin d'accès Matlab. Vous pouvez vérifier s'il se trouve sur votre chemin en tapant exist('stlwrite'). Si cela renvoie 2, vous êtes bon. Si elle renvoie 0, vous devez add it to your path.

Il semble que vous avez les x, y et z coordonnées, dans ce cas, vous pouvez simplement appeler

stlwrite('C:\...\filename.stl', x, y, z); 

Si vous voulez utiliser isosurface d'abord, puis il suffit d'utiliser

M = isosurface(x,y,z,F,0); 
stlwrite('C:\...\filename.stl', M);