Существует ли метод превращения изображения в 2d-модель?

Общая цель - создать гравюру с изображением колокола свободы. Хлопушка не нужна. Опорная балка не нужна. Я просто хочу имитировать внешнюю форму колокола. После применения Google-fu я нашел это изображение. Он был очищен и немного обрезан.

В OpenSCAD функция surface была применена к png для создания модели высоты. Я вычитал несколько кубиков и в конце концов получил слой около.1 высота.

Мой Злой (каламбур) план состоит в том, чтобы свести его к 2d-модели. Затем, сдвинув копию модели от себя и вычитая их. Это должно оставить только кривую. Затем rotate_extrude кривая для создания фактического колокола нужной толщины.

Я вижу, что грядет проблема. Если модель наслаивается на нулевую высоту, она исчезает. Не оставив мне ничего, что можно было бы вращать.

Итак, перейдем к вопросу.

Есть ли какой-либо инструмент или техника, чтобы превратить изображение в 2d-объект openscad, или в противном случае есть другой способ подойти к проблеме?

Направление, на которое указал мне Фред, вполне жизнеспособно. Я использовал не фактическое изображение, показанное здесь, а сгенерированное вручную из OpenSCAD. В качестве доказательства концепции эта техника работает хорошо.

, 👍2

Обсуждение

Это звучит так, как будто вы просите файл 2D-чертежа 3D-детали в данной плоскости? Если это так, то Solidworks, Solid Edge и Autocad все фантастичны в этом, но не уверены в OpenSCAD., @Diesel


3 ответа


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

3

Поскольку вы уже знакомы с OpenSCAD, подумайте о том, чтобы использовать функцию projection() для достижения своей цели.

Если вы допускаете интерпретацию того, что можно отбросить тень детали на поверхность ниже, она становится 2D-представлением детали. Именно так проекция работает в OpenSCAD.

Обратите внимание, что изображение детали ниже центрировано в x, y, z, а действие вырезания / проекции происходит в плоскости z = 0:

sample model image

Когда функция применяется к этой модели, результатом является несмежное 2D-изображение:

projected cut image

Если параметр cut игнорируется или имеет значение false, то полученное изображение фактически является ортогональной тенью всего объекта, а не выделенного среза:

flat shadow image

Конечно, становится лучше. В OpenSCAD применяются функции translate, rotate и scale. Можно перевернуть модель, изменить ее размер, вращать, комбинировать с параметром cut и получить любую комбинацию 2d-изображения из исходной модели:

rotated model image

shadow rotated model

Важно отметить, что OpenSCAD обеспечивает ненулевую толщину этих проекций при рендеринге или, возможно, при предварительном просмотре. Я всегда меняю этих двоих местами. Поскольку ваша цель - 2D-результат, вы можете выбрать файл PNG (сохранить как изображение) или экспортировать его в формате DXF или SVG.

Перечитывая ваш пост, я также пропустил часть более полезного ответа. Как только у вас есть нужный профиль, вы можете использовать функцию rotate_extrude для создаваемого профиля. Несмотря на ненулевую толщину, он использует аспект нулевой толщины для создания модели на основе этой функции.

Этот аспект ответа оставлен в качестве упражнения для читателя, так как вариантов много, а результаты могут быть сложными.


,

Очевидно, что пришло время пересмотреть все открытые функции scad., @EvilTeach


2

Два варианта:

  1. Используйте TRACE2SCAD (http://aggregate.org/MAKE/TRACE2SCAD)
  2. Для более предприимчивых: откопайте старый pull-request для предлагаемого модуля trace(): https://github.com/openscad/openscad/pull/1110
,

Спасибо тебе, Мариус. Я буду смотреть на trace2scad как на еще одну стрелу в моем колчане., @EvilTeach


0

Вы могли бы сделать это с помощью OpenSCAD, есть инструкции по экструзии.

Лично я бы просто сделал копию высоты 1 с Изображение 2 STL 2 Heightmap Mesh Converter Generator, затем вращается в OpenSCAD. Он называется rotate_extrude() и используется для морских раковин.

В MeshLab вы можете использовать Laplacian Smooth для депикселирования / антиалиаса.

,

интересно. Я сделал все это в OpenSCAD., @EvilTeach