Я пытаюсь добавить толщину к гироиду me sh и экспортировать это в STL. Я могу успешно построить утолщенный щитовидный железо me sh, как показано ниже, но это потому, что я написал функцию для удаления нежелательных граней, а именно граней, у которых ребра длиннее определенного предела. Я должен также упомянуть, что все грани имеют три angular, поэтому матрицы вершин и граней имеют форму N x 3.
![thickened gyroid](https://i.stack.imgur.com/l9tgl.png)
Вот код, который проверяет длину ребер и удаляет те, которые too_long
:
function [F] = remove_bad_faces(F,V,too_long)
%% Initiate various counters/storage matrices
bad_face_count = 0; % Number of bad faces
bad_faces = []; % Matrix of bad faces
bad_vertices = []; % Matrix of bad vertices
bad_face_indexes = []; % Matrix of bad face row indices. I know that the plural of index is not indexes.
%% Find all bad faces
for i=1:size(F,1)
face = F(i,:);
v1 = V(face(1),:);
v2 = V(face(2),:);
v3 = V(face(3),:);
if norm(v1-v2) >= too_long || norm(v2-v3) >= too_long || norm(v1-v3) >= too_long
bad_face_count = bad_face_count + 1;
bad_faces = [bad_faces; face];
bad_vertices = [bad_vertices;v1;v2;v3];
bad_face_indexes = [bad_face_indexes,i];
end
end
%% Remove bad faces
for j=1:size(bad_face_indexes,2)
index = bad_face_indexes(j);
F(index,:) = nan;
end
end
Как вы можете видеть, я заменяю "плохие лица" (то есть строки матрицы F) на NaN
, но это работает только для визуализации. Когда я пытаюсь передать результирующие грани и вершины в функцию, генерирующую STL (см. здесь ), я получаю следующую ошибку:
Index in position 2 is invalid. Array indices must be positive integers or logical values.
Error in stlwrite (line 76)
facets = reshape(facets(:,faces'), 3, 3, []);
Error in Gyroid_Mesh_Script (line 60)
stlwrite('gyroid_test.stl', F, V)
Итак, ясно, что проблема NaN
и я попытался поменять его местами с []
и 0
, но ни одна из них не сработала. Любая помощь очень ценится, спасибо заранее!
Редактировать: Когда я использую []
вместо NaN
, я могу экспортировать в STL, но он включает эти "плохие лица" , показано ниже (увеличенное изображение):
![bad faces](https://i.stack.imgur.com/BpWmT.png)