Топологически зависимые преобразования
Существует класс операций, требующий в качестве параметра выбрать элемент топологии модели. В интерактивных CAD мы можем, используя указатель мыши, выделить такой элемент и указать в качестве параметра. Этот метод недоступен в скриптовом CAD. Общий подход ZenCad состоит в том, что такой элемент задаётся методом "ближайшей точки". При задании аргумента, вместо элемента топологии задаётся точка. Выбранным считается элемент, растояние до которого от элемента топологии будет минимальным.
Fillet
Операция скругления тела.
Если тело объёмное - модификации подвергаются ребра. Если плоское - вершины.
Скругления задаются радиусом r
и масивом ближайших точек refs
. Если refs == None
, выбранными считаются все элементы топологии.
fillet(proto=model, r=radius, refs=referencedPoints)
fillet(proto=model, r=radius)
model.fillet(radius, referencedPoints)
model.fillet(radius)
Chamfer
Операция взятия фаски тела. В отличие от скругления применяется только к объёмным телам.
Фаска задаётся расстоянием r
, взятым от ребра до линии фаски и масивом ближайших точек refs
. Если refs == None
, выбранными считаются все элементы топологии.
TODO: несиметричная фаска.
chamfer(proto=model, r=radius, refs=referencedPoints)
Thicksolid
Операция создания тонкостенного объёмного тела.
Задаётся прототипной моделью shp
и массивом точек, ближайших к удаляемым граням refs
.
Также задаётся толщина стенок t
. Если толщина стенок положительная, стенки наращиваются наружу. Если отрицательная - внутрь.
thicksolid(proto=model, t=thickness, refs=referencedPoints)