Состояние на июнь 2026 (форк johnfound). Что нужно сделать для использования bcad в реальной CAD-работе. Порядок — по приоритету (субъективно).
Core SCL — критические пробелы
- [x]
scale(v)— трансформация (uniform: gp_Trsf, не-uniform: gp_GTrsf + BRepBuilderAPI_GTransform) - [x]
rotate(a, v)— вращение вокруг произвольной оси (сейчас толькоrotate(v)) - [x]
minkowski()— скругления/фаски (sphere-only, BRepOffsetAPI_MakeOffsetShape + GeomAbs_Arc; micro-sphere fix for valency≥4; _ensure_solid для shell→solid) - [x]
offset(r)— 2D (BRepOffsetAPI_MakeOffset) и 3D (BRepOffset_MakeOffset, тот же движок что и minkowski) - [x]
$fnдляcylinder()— призма/пирамида вместо гладкого цилиндра/конуса (по явномуcylinder($fn=N)) - [ ]
text()— 3D текст - [x]
norm(v)— длина вектора - [x]
cross(v1, v2)— векторное произведение - [x]
rands(lo, hi, n)— случайные числа
Контроль типов и отладка
- [x]
is_undef(v),is_list(v),is_num(v),is_bool(v),is_string(v) - [x]
assert(cond, msg)
Viewport / 3D взаимодействие
- [ ] Сетка (grid) в сцене
- [ ] Выбор объектов кликом в окне (selection code есть в Viewer3d, не привязан к GUI)
- [ ] Подсветка выбранного + синхронизация с object tree
- [ ] Координаты курсора / readout в статус-баре
- [x] Инструменты измерения (расстояние, угол, радиус)
Редактор
- [ ] Инлайн-маркеры ошибок (сейчас ошибки только в консоли)
- [ ] Авто-перезагрузка при изменении файла (live preview)
UI / удобство
- [ ] Статус-бар
- [ ] Темы оформления (dark mode)
- [ ] Recent files
- [ ] Toolbar
- [ ] Правая кнопка мыши / контекстное меню
Импорт/экспорт
- [ ]
import("file.svg") - [ ]
import("file.dxf") - [ ] Экспорт SVG
- [ ] Пакетный экспорт (batch export)
- [ ] Экспорт изображения через GUI (сейчас только через код)
- [ ] Экспорт 3D PDF
Прочее
- [x]
[ for (...) expr ]— list comprehension - [x]
let(...)— локальные переменные в выражениях - [ ]
surface()— чтение height map - [ ]
search(),lookup(),parent_module() - [x]
version(),version_num()