Skip to content

0.0.4

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Aug 13:21
· 3 commits to main since this release
e6f145f
Прореживание контуров EXCLUDE_OBJECT_DEFINE (#8)

Слайсер пишет контур первого слоя целиком для каждой детали. На плите из
полусотни мелких это больше десяти тысяч точек, и их разбор подвешивает
Klipper: плата отдаёт Timer too close, печать обрывается на первом слое.

Дуглас-Пекер с допуском в миллиметрах, по умолчанию 0.2 — 54 детали дают
1134 точки вместо 13500, силуэт в вебморде остаётся узнаваемым.
Ключ -simplify-objects=0 заменяет контур габаритным прямоугольником,
-no-simplify-objects отключает прореживание.

Крайние по осям точки неудаляемы, поэтому габарит точен при любом допуске —
на него опираются KAMP и LINE_PURGE. Отмена детали идёт по имени и центру
и не затрагивается.

Разбор — стандартными средствами. Значение POLYGON= это обычный JSON:
raw_decode в питоне, json.Decoder с InputOffset в Go, оба заодно сообщают,
где значение кончилось. Аргументы — flag и argparse. Что не разобралось,
оставляем нетронутым.

Go и Python дают одинаковый вывод: сверено на плите из 54 деталей при
допусках 0, 0.1, 0.2, 0.5, 2 и на пятнадцати крайних случаях разбора, коды
возврата на отказах тоже совпадают. Расходятся в одном: ключ, поставленный
ПОСЛЕ пути, flag пропускает, а argparse принимает. Слайсер такую команду не
собирает — он дописывает путь последним.

В питоне разбиение Дугласа-Пекера идёт явным стеком вместо рекурсии: контур
держит тысячи точек.

Co-authored-by: pbannykh <baza182@proton.me>