Компилирует существующий OpenSCAD-скрипт (.scad) в binary STL-файл.
Требует: OpenSCAD установлен в системе (openscad в PATH).
.scad уже должен существовать. Напишите его заранее через filesystem write.openscad_not_found.mcp:navi-3d:compile_scad(
session_id="...",
source_path="handle.scad",
output_path="handle.stl"
)
| Параметр | Обязательно | Описание |
|---|---|---|
session_id |
Да | UUID текущей сессии Navi. Файлы разрешаются внутри session_files/<session_id>/. |
source_path |
Да | Путь к существующему .scad-файлу (внутри сессии или абсолютный) |
output_path |
Да | Путь, куда записать сгенерированный .stl. Родительские директории создаются автоматически. |
filesystem write session_files/sess-abc/bracket.scad '
difference() {
cube([40, 20, 5], center=true);
translate([15, 0, 0]) cylinder(h=6, d=4, center=true);
translate([-15, 0, 0]) cylinder(h=6, d=4, center=true);
}
'
mcp:navi-3d:lint_scad(
session_id="sess-abc",
source_path="bracket.scad"
)
mcp:navi-3d:compile_scad(
session_id="sess-abc",
source_path="bracket.scad",
output_path="bracket.stl"
)
content_publish(filename="bracket.stl", title="Bracket")
При успехе:
Generated: bracket.stl Path: /home/.../session_files/sess-abc/bracket.stl Size: 12.4 KB
При ошибке:
openscad_not_found — OpenSCAD не установленscad_not_found — исходный файл не найденopenscad_compile_error — ошибка компиляции (невалидный CSG, деление на ноль и т.д.)no_output — OpenSCAD завершился без ошибок, но файл не создалсяwrong_session_dir — файл находится вне разрешённой сессии--export-format binstl.compile_scad не пишет .scad, только компилирует.session_id — без него инструмент не знает, в какой директории искать файлы.