Резюме.
После осмотра марсианского ровера для исследования Марса:http://www.thingiverse.com/thing:10057Меня вдохновило сделать в OpenScad то, что я давно хотел сделать.
Эта штука - это техника для представления и рендеринга ваших моделей с использованием некоторых массивов и 'рекурсии'.
Здесь представлено всего несколько рутинных действий, но с их помощью вы, по сути, можете сделать что-то вроде этого:
CSG([OP_UNION, [
[PRIM_CYLINDER, [2,2, 8+15+3], zero(), zero()],
[PRIM_CYLINDER, [4,4, 3],zero(),zero()],
]];
Или, если вы просто хотите выполнить простую часть;
place_prim([PRIM_CYLINDER, [2,2, 8+15+3],zero(), zero()]);
Это не что-то революционное, но это просто еще один инструмент в арсенале текстового моделирования. Поскольку модели, а также операции с частями просто представлены в виде массивов чисел, вы можете использовать функции для их генерации или их конкатенации.
Это довольно интересно, потому что код начинает выглядеть как LISP или другие варианты, основанные на массивах.
В любом случае, это еще одна техника.
Файл openscad_vm.scad содержит реальные мозги. Есть файл 'test_openscad_vm.scad', который показывает некоторые тестовые случаи всех процедур. Файл "mars_rover_vm.scad" берет некоторые интересные части из вдохновляющего проекта марсохода и превращает их в части, подходящие для использования в виртуальной машине OpenSCAD. Самый сло
Инструкции.
1) Скачайте файл openscad_vm.scad в свою рабочую среду.
2) Создайте какой-нибудь объект, используя много скобок [] в своём коде.
3) Радуйтесь!
Примечание: Поскольку эта версия не поддерживает многогранники и 2D-примитивы, она несколько ограничена. Однако их довольно легко добавить.
Один очень интересный побочный эффект заключается в том, что вы можете использовать представление объекта в OpenScad_VM в качестве механизма передачи данных!! Эта идея постепенно до меня доходит и упрощает мою жизнь.
Теги
Источник модели
