@scalenc/nc-format
Version:
Library for handling TRUMPF NC file format.
76 lines • 3.2 kB
JavaScript
;
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