UNPKG

awv3

Version:
120 lines (100 loc) 4.77 kB
import _extends from "@babel/runtime/helpers/extends"; // highlevel commands are those that map to different lowlevel commands depending on the arguments import { angleox, distance, horizontalDistance, radius, verticalDistance } from '../constraint/type'; import { getArcAngles, getClass } from '../geomutils'; import { AddPoint, AddLine, AddArc, AddCircle, AddConstraint, RemovePoint, RemoveLine, RemoveArc, RemoveCircle, RemoveConstraint, UpdatePoint, UpdateLine, UpdateArc, UpdateCircle, GetOrigin, SketchAppendNewObj, Assign, Call, Member, Sequence, Variable } from './lowlevel'; export function addCommand(sketch, geomParams) { switch (getClass(geomParams)) { case 'CC_Point': return AddPoint(sketch, geomParams.start); case 'CC_Line': return AddLine(sketch, geomParams.start, geomParams.end); case 'CC_Arc': return AddArc(sketch, geomParams.start, getArcAngles(geomParams).mid, geomParams.end); case 'CC_Circle': return AddCircle(sketch, geomParams.center, geomParams.radius); } if (geomParams.entities) return AddConstraint(sketch, geomParams.class, geomParams.class, geomParams.entities, geomParams.value.type, geomParams.value.value, geomParams.value.userValue, geomParams.value.dimPos, [geomParams.value.sector, geomParams.value.reflex]); } export function removeCommands(sketch) { for (var _len = arguments.length, ccrefs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { ccrefs[_key - 1] = arguments[_key]; } return ccrefs.filter(function (ccref) { return ccref === ccref.encompassing; }).map(function (ccref) { switch (ccref.class) { case 'CC_Point': return RemovePoint(sketch, ccref); case 'CC_Line': return RemoveLine(sketch, ccref); case 'CC_Arc': return RemoveArc(sketch, ccref); case 'CC_Circle': return RemoveCircle(sketch, ccref); } if (ccref.isConstraint()) return RemoveConstraint(sketch, ccref); }); } export function updateCommand(sketch, ccref, geomParams) { switch (ccref.class) { case 'CC_Point': { var _extends2; var encompassing = ccref.encompassing; if (ccref === encompassing) return UpdatePoint(sketch, ccref, geomParams.start);else return updateCommand(sketch, encompassing, _extends({}, encompassing.geomParams, (_extends2 = {}, _extends2[ccref.pointType] = geomParams.start, _extends2))); } case 'CC_Line': return UpdateLine(sketch, ccref, geomParams.start, geomParams.end); case 'CC_Arc': return UpdateArc(sketch, ccref, geomParams.start, geomParams.end, geomParams.center, geomParams.start.distanceTo(geomParams.center), getArcAngles(geomParams).bulge); case 'CC_Circle': return UpdateCircle(sketch, ccref, geomParams.center, geomParams.radius); } } export function restrictionCommands(sketch, ccref, restrictions) { var commands = []; function add(ct, entities, value) { if (value !== undefined) commands.push(addCommand(sketch, { class: ct.type, entities: entities, value: { value: value } })); } var origin = sketch.getMember('originReference').value ? sketch.getMember('originReference', 'Ccref') : GetOrigin(sketch); switch (ccref.class) { case 'CC_Point': add(horizontalDistance, [origin, ccref], restrictions.xabsolute); add(verticalDistance, [origin, ccref], restrictions.yabsolute); break; case 'CC_Line': add(distance, ccref.children, restrictions.length); add(angleox, [ccref], restrictions.angle); add(horizontalDistance, ccref.children, restrictions.xoffset); add(verticalDistance, ccref.children, restrictions.yoffset); add(horizontalDistance, [origin, ccref.endPoint], restrictions.xabsolute); add(verticalDistance, [origin, ccref.endPoint], restrictions.yabsolute); break; case 'CC_Arc': add(radius, [ccref], restrictions.radius); add(horizontalDistance, [ccref.startPoint, ccref.endPoint], restrictions.xoffset); add(verticalDistance, [ccref.startPoint, ccref.endPoint], restrictions.yoffset); add(horizontalDistance, [origin, ccref.endPoint], restrictions.xabsolute); add(verticalDistance, [origin, ccref.endPoint], restrictions.yabsolute); break; case 'CC_Circle': add(radius, [ccref], restrictions.radius); break; } return commands; } export function setPlaneCommands(sketch, plane) { var v = Variable(); return Sequence(Assign(v, sketch), Call(Member(v, 'SetPlaneRef'), plane), Call(Member(v, 'SetCoordSys')), 1); } export function createAndSetPlaneCommands(sketch, face) { var v = Variable(); return Sequence(Assign(v, sketch), Call(Member(v, 'CreateAndSetWorkPlane'), face), 1); }