dxf-writer
Version:
Dead simple 2D DXF writer
42 lines (37 loc) • 1.42 kB
JavaScript
const DatabaseObject = require("./DatabaseObject");
class Ellipse extends DatabaseObject {
/**
* Creates an ellipse.
* @param {number} x - Center x
* @param {number} y - Center y
* @param {number} majorAxisX - Endpoint x of major axis, relative to center
* @param {number} majorAxisY - Endpoint y of major axis, relative to center
* @param {number} axisRatio - Ratio of minor axis to major axis
* @param {number} startAngle - Start angle
* @param {number} endAngle - End angle
*/
constructor(x, y, majorAxisX, majorAxisY, axisRatio, startAngle, endAngle) {
super(["AcDbEntity", "AcDbEllipse"]);
this.x = x;
this.y = y;
this.majorAxisX = majorAxisX;
this.majorAxisY = majorAxisY;
this.axisRatio = axisRatio;
this.startAngle = startAngle;
this.endAngle = endAngle;
}
tags(manager) {
// https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ellipse_al_u05_c.htm
manager.push(0, "ELLIPSE");
super.tags(manager);
manager.push(8, this.layer.name);
manager.point(this.x, this.y);
manager.push(11, this.majorAxisX);
manager.push(21, this.majorAxisY);
manager.push(31, 0);
manager.push(40, this.axisRatio);
manager.push(41, this.startAngle);
manager.push(42, this.endAngle);
}
}
module.exports = Ellipse;