0

我有一个由连续立方体组成的 stl 文件,如下所示:

http://www.mathworks.com.au/matlabcentral/fileexchange/screenshots/6499/original.jpg

我需要删除立方体的所有共享面,这样结构就变成了一个连续的实体。

请注意,我不能只删除所有内部结构。物体是中空的,必须保持其内部结构。我只想删除相邻立方体的共享面。

MeshLab有没有办法做到这一点?谢谢,

4

1 回答 1

0

我正在尝试做类似的事情,所以这就是我的做法:

获取边界体素并将其转换为点:

surface= Volume- imerode(Volume, true(3));
indx=find(surface);
[x,y,z]=ind2sub(size(Volume),indx);
surface=horzcat(x,y,z);

将其保存为层文件

function save_ply(filename,xyz)
    fid=fopen(strcat(filename,'.ply'),'wt');
    fprintf(fid,'ply\n');
    fprintf(fid,'format ascii 1.0\n');
    fprintf(fid,'element vertex %u\n',size(xyz,2));
    fprintf(fid,'property float x\n');
    fprintf(fid,'property float y\n');
    fprintf(fid,'property float z\n');
    fprintf(fid,'end_header\n');

    for ii=1:size(xyz,2)
       fprintf(fid,'%4f %4f %4f\n',xyz(1,ii),xyz(2,ii),xyz(3,ii)); 
    end

end

然后您可以将点云加载到 Meshlab。然后,您可以使用其内部的数十种算法创建 STL 文件,但我现在正在努力选择最好的。像你一样的非凸面。

于 2014-09-08T13:34:38.327 回答