UNPKG

awv3

Version:
116 lines (101 loc) 5.58 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); exports.addCommand = addCommand; exports.removeCommands = removeCommands; exports.updateCommand = updateCommand; exports.restrictionCommands = restrictionCommands; exports.setPlaneCommands = setPlaneCommands; var _type = require('../constraint/type'); var _geomutils = require('../geomutils'); var _lowlevel = require('./lowlevel'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function addCommand(sketch, geomParams) { switch ((0, _geomutils.getClass)(geomParams)) { case 'CC_Point': return (0, _lowlevel.AddPoint)(sketch, geomParams.start); case 'CC_Line': return (0, _lowlevel.AddLine)(sketch, geomParams.start, geomParams.end); case 'CC_Arc': return (0, _lowlevel.AddArc)(sketch, geomParams.start, (0, _geomutils.getArcAngles)(geomParams).mid, geomParams.end); case 'CC_Circle': return (0, _lowlevel.AddCircle)(sketch, geomParams.center, geomParams.radius); } if (geomParams.entities) return (0, _lowlevel.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]); } // highlevel commands are those that map to different lowlevel commands depending on the arguments function removeCommands(sketch) { for (var _len = arguments.length, ccrefs = 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 (0, _lowlevel.RemovePoint)(sketch, ccref); case 'CC_Line': return (0, _lowlevel.RemoveLine)(sketch, ccref); case 'CC_Arc': return (0, _lowlevel.RemoveArc)(sketch, ccref); case 'CC_Circle': return (0, _lowlevel.RemoveCircle)(sketch, ccref); } if (ccref.isConstraint()) return (0, _lowlevel.RemoveConstraint)(sketch, ccref); }); } function updateCommand(sketch, ccref, geomParams) { switch (ccref.class) { case 'CC_Point': { var encompassing = ccref.encompassing; if (ccref === encompassing) return (0, _lowlevel.UpdatePoint)(sketch, ccref, geomParams.start);else return updateCommand(sketch, encompassing, (0, _extends4.default)({}, encompassing.geomParams, (0, _defineProperty3.default)({}, ccref.pointType, geomParams.start))); } case 'CC_Line': return (0, _lowlevel.UpdateLine)(sketch, ccref, geomParams.start, geomParams.end); case 'CC_Arc': return (0, _lowlevel.UpdateArc)(sketch, ccref, geomParams.start, geomParams.end, geomParams.center, geomParams.start.distanceTo(geomParams.center), (0, _geomutils.getArcAngles)(geomParams).bulge); case 'CC_Circle': return (0, _lowlevel.UpdateCircle)(sketch, ccref, geomParams.center, geomParams.radius); } } 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') : (0, _lowlevel.GetOrigin)(sketch); switch (ccref.class) { case 'CC_Point': add(_type.horizontalDistance, [origin, ccref], restrictions.xabsolute); add(_type.verticalDistance, [origin, ccref], restrictions.yabsolute); break; case 'CC_Line': add(_type.distance, ccref.children, restrictions.length); add(_type.angleox, [ccref], restrictions.angle); add(_type.horizontalDistance, ccref.children, restrictions.xoffset); add(_type.verticalDistance, ccref.children, restrictions.yoffset); add(_type.horizontalDistance, [origin, ccref.endPoint], restrictions.xabsolute); add(_type.verticalDistance, [origin, ccref.endPoint], restrictions.yabsolute); break; case 'CC_Arc': add(_type.radius, [ccref], restrictions.radius); add(_type.horizontalDistance, [ccref.startPoint, ccref.endPoint], restrictions.xoffset); add(_type.verticalDistance, [ccref.startPoint, ccref.endPoint], restrictions.yoffset); add(_type.horizontalDistance, [origin, ccref.endPoint], restrictions.xabsolute); add(_type.verticalDistance, [origin, ccref.endPoint], restrictions.yabsolute); break; case 'CC_Circle': add(_type.radius, [ccref], restrictions.radius); break; } return commands; } function setPlaneCommands(sketch, plane) { var v = (0, _lowlevel.Variable)(); return (0, _lowlevel.Sequence)((0, _lowlevel.Assign)(v, sketch), (0, _lowlevel.Call)((0, _lowlevel.Member)(v, 'SetPlaneRef'), plane), (0, _lowlevel.Call)((0, _lowlevel.Member)(v, 'SetCoordSys')), 1); }