BOSL2 проблема точности выравнивания в OpenSCAD

Почему мои маленькие кубоиды не идеально выровнены с большим?

include <BOSL2/constants.scad>
include <BOSL2/std.scad>
use <BOSL2/shapes.scad>

diff("remove")
cuboid([1, 0.5, 0.2], anchor=BOTTOM){
    attach(RIGHT) cuboid([0.2, 0.4, 0.1], anchor=TOP, $tags="remove");
    attach(LEFT) cuboid([0.2, 0.4, 0.1], anchor=TOP, $tags="remove");
}

, 👍0


1 ответ


0

от Ревара Десмеры:

Модуль attach() по умолчанию перекрывает прикрепленный элемент с родительским на небольшую величину (0,01). Вы можете сделать attach(RIGHT,overlap=0) для точного выравнивания. Перекрытие происходит так, что CGAL правильно может объединять фигуры.

и прилагаемая() документация :

Присоединенные объекты будут немного перекрываться с родительским объектом, как указано значением по умолчанию $overlap (по умолчанию 0,01) или переопределяющим аргументом overlap=. Это делается для того, чтобы OpenSCAD не создавал объекты, не являющиеся многообразиями. Вы также можете определить $overlap= в качестве аргумента в родительском модуле, чтобы установить значение по умолчанию для всех вложений к нему.


,