awv3
Version:
⚡ AWV3 embedded CAD
116 lines (101 loc) • 5.58 kB
JavaScript
;
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);
}