Экспортировать STL из командной строки OpenSCAD, вызывая модуль в скрипте?
Учитывая файл. SCAD, содержащий некоторые модули, как я могу выполнить один из этих модулей из командной строки?
пример.Скад
module One() { ... }
module Two() { ... }
render.sh
openscad -q -o one.stl --module One example.scad
Обратите внимание, что здесь нет опции --module, но именно это я и пытаюсь сделать. Обходным путем было бы сделать другой .SCAD-файл , например
one.scad
, который включает в себя example.scad
, и просто вызывает One();
внутри и рендерит этот файл из файла оболочки. Но это не идеально.
@Josh M., 👍3
3 ответа
Лучший ответ:
Опция openscad-D
на самом деле может включать произвольный код, а не только определения переменных, поэтому вы можете включить вызов модуля. Вы даже можете использовать /dev/null
в Linux или NUL в Windows в качестве входного файла и иметь 100% вашего кода в операторах-D.
OpenSCAD не имеет такой опции в командной строке, но общая идиома, которую я считаю, вы хотите использовать, это have .scad
исходные файлы, которые являются модулями, включают в себя вызовы модуля(модулей) на верхнем уровне, управляемые переменными, которые вы можете установить в командной строке или интерфейсе GUI customizer. Любые такие вызовы будут игнорироваться, если файл используется (через директиву use) в другом файле, чтобы они не повредили его статус библиотеки и облегчили предварительный просмотр/тестирование. Так, например, вы могли бы иметь:
wantOne = false;
if (wantOne) One();
а затем установите wantOne
в true
из командной строки.
Спасибо. Я думаю, что это лучше, чем иметь отдельный .scad просто для вызова каждого модуля., @Josh M.
Разрабатывая ответ @r-github-stop-helping-ice, я считаю полезным следующий шаблон:
пример.scad
module a() { .. }
module b() { .. }
module c() { .. }
module print(item=0) {
if (item==1) a();
if (item==2) b();
if (item==3) c();
}
item = 0;
print(item);
рендер.sh
#!/bin/bash
for i in {1..3}; do
openscad -D item=${i} -o item_${i}.stl example.scad
done
- Существует ли простой способ разделения моделей в 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?
Возможно, показ того, как работает экспорт STL, принесет пользу ответу., @0scar
Ура! Впервые я был рад увидеть, что -15 от моего ответа было отклонено, потому что новый ответ-такая хорошая новость! :-), @R.. GitHub STOP HELPING ICE