kopia lustrzana https://github.com/backface/turtlestitch
rodzic
399acff55a
commit
8e42398ae4
|
@ -882,3 +882,57 @@ TurtleShepherd.prototype.debug_msg = function (st, clear) {
|
||||||
o = st + "<br />" + o;
|
o = st + "<br />" + o;
|
||||||
document.getElementById("debug").innerHTML = o;
|
document.getElementById("debug").innerHTML = o;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TurtleShepherd.prototype.toDXF = function() {
|
||||||
|
var dxfString = '',
|
||||||
|
isFirst = false,
|
||||||
|
myself = this,
|
||||||
|
i,
|
||||||
|
stitch,
|
||||||
|
lastStitch;
|
||||||
|
|
||||||
|
function dxfHead(maxX=1000,maxY=1000) {
|
||||||
|
dxfString += ' 0\nSECTION\n 2\nHEADER\n 9\n$ACADVER\n 1\nAC1009\n 9\n$EXTMIN\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 9\n$EXTMAX\n';
|
||||||
|
dxfString += ' 10\n';
|
||||||
|
dxfString += maxX.toFixed(1).toString();
|
||||||
|
dxfString += '\n 20\n';
|
||||||
|
dxfString += maxY.toFixed(1).toString();
|
||||||
|
dxfString += '\n 30\n0.0\n 9\n$FILLMODE\n 70\n 0\n 9\n$SPLFRAME\n 70\n 1\n 0\nENDSEC\n';
|
||||||
|
dxfString += ' 0\nSECTION\n 2\nTABLES\n 0\nTABLE\n 2\nLAYER\n 70\n1\n 0\nLAYER\n 2\n0\n 70\n 0\n 62\n 7\n 6\nCONTINUOUS\n 0\nENDTAB\n 0\nENDSEC\n';
|
||||||
|
dxfString += ' 0\nSECTION\n 2\nENTITIES\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
function dxfLine(start,end) {
|
||||||
|
dxfString += ' 0\nLINE\n 8\n0\n 62\n 150\n';
|
||||||
|
dxfString += ' 10\n';
|
||||||
|
dxfString += ((start.x - myself.minX)*0.2).toFixed(3).toString();
|
||||||
|
dxfString += '\n 20\n';
|
||||||
|
dxfString += ((start.y - myself.minY)*0.2).toFixed(3).toString();
|
||||||
|
dxfString += '\n 30\n0.0\n 11\n';
|
||||||
|
dxfString += ((end.x - myself.minX)*0.2).toFixed(3).toString();
|
||||||
|
dxfString += '\n 21\n';
|
||||||
|
dxfString += ((end.y - myself.minY)*0.2).toFixed(3).toString();
|
||||||
|
dxfString += '\n 31\n0.0\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
function dxfEnd() {
|
||||||
|
dxfString += ' 0\nENDSEC\n 0\nEOF\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
dxfHead((this.maxX-this.minX)*0.4 > 1000 ? (this.maxX-this.minX)*0.4 : 1000,(this.maxY-this.minY)*0.4 > 1000 ? (this.maxY-this.minY)*0.4 : 1000);
|
||||||
|
for (i=0; i < this.cache.length; i++) {
|
||||||
|
if (this.cache[i].cmd == "move") {
|
||||||
|
stitch = this.cache[i];
|
||||||
|
if (!isFirst) {
|
||||||
|
isFirst = true;
|
||||||
|
} else {
|
||||||
|
if (stitch.penDown && (stitch.x != lastStitch.x || stitch.y != lastStitch.y)) {
|
||||||
|
dxfLine(lastStitch,stitch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastStitch = stitch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dxfEnd();
|
||||||
|
return dxfString;
|
||||||
|
};
|
||||||
|
|
Ładowanie…
Reference in New Issue