Может ли в OpenSCAD сгибать текст (проецировать его на изогнутую поверхность)?
Я хочу нанести рельефный текст на изогнутую поверхность, но не могу найти способ сделать это в OpenSCAD. Я знаю, что можно сгибать текст в Blender, а затем импортировать stl
, но мне не нравится этот рабочий процесс. Я нашел своего рода рабочее решение, но оно не идеально.
$fn=50;
module bend_text(caption, angle, text_height, text_width, text_depth, steps=10, k=1) {
dh = text_height / steps;
r = text_height / (angle * PI / 180);
h0 = - text_height / 2;
translate([0, 0, -r])
rotate([angle / 2, 0, 0])
for(i=[0:steps-1]) {
rotate([-i * angle/steps, 0, 0])
translate([0, -(dh * i + h0), r / k])
intersection() {
linear_extrude(text_depth)
text(caption, valign="center", halign="center");
translate([0, dh * i + h0, 0])
cube([text_width, dh, text_width], center=true);
}
}
}
bend_text("test", angle=90, text_height=9, text_width=30, text_depth=1, steps=10, k=1.1);
Есть ли лучший способ?
@mugiseyebrows, 👍3
Обсуждение2 ответа
Рабочий процесс, который вы используете, - это единственный известный мне способ, и он, по крайней мере, респектабелен. Вы можете абстрагировать его как модуль для применения к произвольным дочерним элементам, чтобы сделать его несколько менее уродливым и более пригодным для повторного использования.
Теоретически, я думаю, что должно быть возможно выполнить преобразование openscad (в самом openscad, а не на языке scad), которое применяется к произвольным 3D-объектам, путем выполнения 2D-конформного отображения в каждом поперечном сечении, перпендикулярном заданной оси, для достижения подобных эффектов без возможности нарушения геометрии. Но я не знаю, чтобы кто-нибудь работал над этим. Вероятно, я предложу это в какой-то момент, и, надеюсь, это не будет отвергнуто как математически несостоятельное (что может быть; я не уверен).
Я не могу сказать, лучше ли это, чем ваш метод, но это библиотечный ресурс, соответствующий вашим требованиям.
Библиотека охватывает различные формы, в том числе цилиндрические:
Изображение со связанного сайта. Также с сайта: "Работает только с OpenSCAD v 2014.xx и более поздними версиями ..."
Насколько я могу судить, он не сгибает персонажей, он просто помещает каждого персонажа в его собственную плоскость, это не то, чего я хочу., @mugiseyebrows
Это различие, которое я упустил из виду, спасибо за разъяснение. Это делает ваше творение еще более впечатляющим. Есть ли способ удалить фрагменты из творения?, @fred_dot_u
да, фрагменты можно удалить, я использовал куб для разделения текста на части, мне следовало использовать треугольную призму, @mugiseyebrows
- Существует ли простой способ разделения моделей в OpenSCAD?
- OpenSCAD linear_extrude из многопутевого импорта svg
- .STEP/.F3D to .Файл SCAD?
- Библиотека OpenSCAD для пустого пространства/отверстий
- Как указать начало вращения в openscad
- OpenSCAD "not valid 2-manifold" полезная информация
- Рендер OpenSCAD (F6) завершается ошибкой "ERROR: CGAL error in CGAL_Nef_polyhedron3()"
- Создание "куска пирога" в OpenSCAD?
Это стек 3D-печати, а не стек САПР, требуется указание на актуальность для 3D-печати, из [по теме] (https://3dprinting.stackexchange.com/help/on-topic ): `Если вопрос САПР связан с 3D-печатью, то он по теме. Однако общие вопросы САПР, не связанные с 3D-печатью, не по теме.- Однако очень интересный вопрос! Упоминая, что сгибание текста требуется, когда текст проецируется на небольшие радиусы, иначе под буквами могут быть пробелы, которые препятствуют правильной печати., @0scar