UNPKG

@scalenc/nc-format

Version:

Library for handling TRUMPF NC file format.

76 lines 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MachineDefinition = exports.LinearAxes = void 0; const Constants_1 = require("./Constants"); const MotionMode_1 = require("./MotionMode"); class LinearAxes { names = []; centerNames = []; } exports.LinearAxes = LinearAxes; class MachineDefinition { linearAxes; circularAxes; initialMotionMode; constructor(linearAxes = [], circularAxes = [], initialMotionMode = MotionMode_1.MotionMode.LINEAR) { this.linearAxes = linearAxes; this.circularAxes = circularAxes; this.initialMotionMode = initialMotionMode; } static makeDefault() { return new MachineDefinition([{ names: ['X', 'Y', 'Z'], centerNames: ['I', 'J', 'K'] }], ['A', 'B', 'C'], MotionMode_1.MotionMode.LINEAR); } getCenterAndReferenceVariables() { // eslint-disable-next-line security/detect-object-injection return this.linearAxes.flatMap((a) => a.centerNames.map((centerName, i) => ({ centerName, name: a.names[i] }))); } isRelativeAssignable(variable) { return this.isCoordinateOrCenter(variable) || Constants_1.Constants.TRANSFORM_VARIABLES.includes(variable.toUpperCase()); } isAbsoluteAssignable(variable) { return !this.isLinearCoordinateCenter(variable); } getReferenceVariable(variable) { const variableUpperCase = variable.toUpperCase(); const referenceVariable = this.getCenterAndReferenceVariables().find((x) => x.centerName === variableUpperCase)?.name; return referenceVariable ?? variable; } isTemporaryMotionVariable(variable) { return this.isLinearCoordinateCenter(variable) || Constants_1.Constants.CENTER_RADIUS === variable.toUpperCase(); } isLength(variable) { return this.isLinearCoordinate(variable) || this.isLinearCoordinateCenter(variable); } isVelocity(variable) { return this.isLinearVelocity(variable); } inchToMillimeter(variable, value) { if (this.isLength(variable) || this.isVelocity(variable)) { // inch -> mm, inch/min -> mm/min return Constants_1.Constants.INCH_TO_MM * value; } return value; } isCoordinate(variable) { return this.isLinearCoordinate(variable) || this.isCircularCoordinate(variable); } isCoordinateOrCenter(variable) { return this.isCoordinate(variable) || this.isLinearCoordinateCenter(variable); } isLinearCoordinate(variable) { const variableUpperCase = variable.toUpperCase(); return this.linearAxes.some((x) => x.names.includes(variableUpperCase)); } isLinearCoordinateCenter(variable) { const variableUpperCase = variable.toUpperCase(); return this.linearAxes.some((x) => x.centerNames.includes(variableUpperCase)); } isCircularCoordinate(variable) { return this.circularAxes.includes(variable.toUpperCase()); } isLinearVelocity(variable) { return Constants_1.Constants.LINEAR_VELOCITY_VARIABLES.includes(variable.toUpperCase()); } } exports.MachineDefinition = MachineDefinition; //# sourceMappingURL=MachineDefinition.js.map