Доказательство того, что пересечение плоскости среза/STL будет производить только замкнутые многоугольники?

Я пишу свой собственный слайсер и задаюсь вопросом, есть ли математическое доказательство, которое доказывает, что пересечение плоскости среза с файлом STL будет производить только замкнутые многоугольники для каждой заданной плоскости среза?

Спасибо!

, 👍3


2 ответа


Лучший ответ:

5

Вы не можете доказать это, потому что это неправда. Файл STL-это просто набор треугольников. Нет никакой гарантии,что пересечение с плоскостью среза будет состоять из замкнутых многоугольников. Чтобы быть пригодным для 3D-печати, файл STL должен представлять собой один или несколько замкнутых непересекающихся многогранников (что приведет к замкнутым многоугольникам), но это не всегда так. Многие слайсеры имеют эвристику, чтобы попытаться "исправить" плохие файлы STL на основе наилучших усилий. Особенно учитывая возможность ошибок округления, важно, по крайней мере, обнаружить полигоны, которые почти (но не совсем) закрыты, и соединить их конечные точки вместе.


,

2

Я также пытаюсь написать свой собственный слайсер, и поэтому я просто хотел бы предложить некоторую дополнительную информацию.

Вы обнаружите, что файлы .stl просто хранят треугольники и не проверяют, что треугольники собираются для создания модели для печати, поэтому многие, если не большинство файлов .stl, будут иметь данные, которые не совсем то, что вы хотите. Таким образом, вам понадобятся дополнительные шаги, прежде чем вы перейдете к нарезке, чтобы исправить данные, которые вы получаете из файла stl.

Многие модели stl предназначены для 3D - графики, где пересечение других треугольников и отсутствие многообразия не является проблемой. Поэтому вы, вероятно, захотите написать некоторый код для тестирования ваших моделей, прежде чем пытаться разрезать их.

Например, если вы просто нарезали слои чайника Юты Teapot и не ремонтируйте модель для 3D-печати сначала, вы получите два разных типа ошибок. Ручка чайника фактически не крепится к чайнику и представляет собой отдельную модель. А носик чайника - это отдельная модель, которая пересекает чайник. И ручка, и носик также открыты на концах и не водонепроницаемы.

,

Конечно, носик, не являющийся водонепроницаемым, подходит для одного из концов и не должен быть отремонтирован., @Ross

В качестве 3D-объекта для отображения на компьютере незакрытый носик не является проблемой и будет выглядеть так, как вы ожидаете, чтобы выглядел чайник. Но для построения физической модели нужна информация о толщине стенок носика. Эта информация о толщине должна быть дана путем включения информации о внутренних стенках формы и кромке носика., @user802599