Compare commits
2 commits
stable-1.2
...
mrbeam-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f0aad8846c | ||
|
|
7dd03d08e5 |
2 changed files with 83 additions and 51 deletions
|
|
@ -357,6 +357,8 @@ class SvgToGcodePlugin(octoprint.plugin.SlicerPlugin,
|
||||||
converter_path = '/home/teja/workspace/mrbeam-inkscape-ext'
|
converter_path = '/home/teja/workspace/mrbeam-inkscape-ext'
|
||||||
elif("denkbrett" in hostname):
|
elif("denkbrett" in hostname):
|
||||||
converter_path = '/home/flo/mrbeam/git/mrbeam-inkscape-ext'
|
converter_path = '/home/flo/mrbeam/git/mrbeam-inkscape-ext'
|
||||||
|
elif ("clems-Air" in hostname):
|
||||||
|
converter_path = '/Users/clem/Dropbox/mrBeam/mrbeam-inkscape-ext'
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
sys.path.append(converter_path)
|
sys.path.append(converter_path)
|
||||||
|
|
|
||||||
|
|
@ -76,13 +76,13 @@ Snap.plugin(function (Snap, Element, Paper, global) {
|
||||||
Snap.plugin( function( Snap, Element, Paper, global ) {
|
Snap.plugin( function( Snap, Element, Paper, global ) {
|
||||||
|
|
||||||
var ftOption = {
|
var ftOption = {
|
||||||
handleFill: "red",
|
handleFill: "blue",
|
||||||
handleStrokeDashPreset: [5,5],
|
handleStrokeDashPreset: [5,5],
|
||||||
handleStrokeWidth: 2,
|
handleStrokeWidth: 2,
|
||||||
handleLength: 18,
|
handleLength: 18,
|
||||||
handleRadius: 16,
|
handleRadius: 16,
|
||||||
unscale: 1,
|
unscale: 1,
|
||||||
handleStrokeDash: "5,5",
|
handleStrokeDash: "5,5"
|
||||||
};
|
};
|
||||||
|
|
||||||
Element.prototype.ftToggleHandles = function(){
|
Element.prototype.ftToggleHandles = function(){
|
||||||
|
|
@ -100,14 +100,15 @@ Snap.plugin(function (Snap, Element, Paper, global) {
|
||||||
|
|
||||||
var rotateDragger = this.paper.select('#userContent').circle(bb.cx + bb.width/2 + ftOption.handleLength * ftOption.unscale, bb.cy, ftOption.handleRadius * ftOption.unscale ).attr({ fill: ftOption.handleFill });
|
var rotateDragger = this.paper.select('#userContent').circle(bb.cx + bb.width/2 + ftOption.handleLength * ftOption.unscale, bb.cy, ftOption.handleRadius * ftOption.unscale ).attr({ fill: ftOption.handleFill });
|
||||||
var translateDragger = this.paper.select('#userContent').circle(bb.cx, bb.cy, ftOption.handleRadius * ftOption.unscale).attr({ fill: ftOption.handleFill });
|
var translateDragger = this.paper.select('#userContent').circle(bb.cx, bb.cy, ftOption.handleRadius * ftOption.unscale).attr({ fill: ftOption.handleFill });
|
||||||
|
var resizeDragger = this.paper.select('#userContent').circle(bb.cx + bb.width/2, bb.cy - bb.height/2, ftOption.handleRadius * ftOption.unscale).attr({ fill: ftOption.handleFill});
|
||||||
|
|
||||||
var joinLine = freetransEl.ftDrawJoinLine( rotateDragger, ftOption.handleStrokeWidth * ftOption.unscale);
|
var joinLine = freetransEl.ftDrawJoinLine( rotateDragger, ftOption.handleStrokeWidth * ftOption.unscale);
|
||||||
var handlesGroup = this.paper.select('#userContent').g( joinLine, rotateDragger, translateDragger );
|
var handlesGroup = this.paper.select('#userContent').g( joinLine, rotateDragger, translateDragger, resizeDragger );
|
||||||
|
|
||||||
freetransEl.data( "handlesGroup", handlesGroup );
|
freetransEl.data( "handlesGroup", handlesGroup );
|
||||||
freetransEl.data( "joinLine", joinLine);
|
freetransEl.data( "joinLine", joinLine);
|
||||||
|
|
||||||
freetransEl.data( "scaleFactor", calcDistance( bb.cx, bb.cy, rotateDragger.attr('cx'), rotateDragger.attr('cy') ) );
|
freetransEl.data( "scaleFactor", calcDistance( bb.cx, bb.cy, resizeDragger.attr('cx'), resizeDragger.attr('cy') ) );
|
||||||
|
|
||||||
translateDragger.drag(
|
translateDragger.drag(
|
||||||
elementDragMove.bind( translateDragger, freetransEl ),
|
elementDragMove.bind( translateDragger, freetransEl ),
|
||||||
|
|
@ -118,6 +119,13 @@ Snap.plugin(function (Snap, Element, Paper, global) {
|
||||||
freetransEl.unclick();
|
freetransEl.unclick();
|
||||||
freetransEl.data("click", freetransEl.click( function() { this.ftRemoveHandles() } ) );
|
freetransEl.data("click", freetransEl.click( function() { this.ftRemoveHandles() } ) );
|
||||||
|
|
||||||
|
resizeDragger.drag(
|
||||||
|
dragHandleResizeMove.bind(resizeDragger,freetransEl),
|
||||||
|
dragHandleResizeStart.bind(resizeDragger, freetransEl),
|
||||||
|
dragHandleResizeEnd.bind(resizeDragger, freetransEl)
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
rotateDragger.drag(
|
rotateDragger.drag(
|
||||||
dragHandleRotateMove.bind( rotateDragger, freetransEl ),
|
dragHandleRotateMove.bind( rotateDragger, freetransEl ),
|
||||||
dragHandleRotateStart.bind( rotateDragger, freetransEl ),
|
dragHandleRotateStart.bind( rotateDragger, freetransEl ),
|
||||||
|
|
@ -207,8 +215,9 @@ Snap.plugin(function (Snap, Element, Paper, global) {
|
||||||
|
|
||||||
// transformed bbox
|
// transformed bbox
|
||||||
this.data("bbT", this.paper.rect( rectObjFromBB( this.getBBox(1) ) )
|
this.data("bbT", this.paper.rect( rectObjFromBB( this.getBBox(1) ) )
|
||||||
.attr({ fill: "none", stroke: ftOption.handleFill, strokeWidth: ftOption.handleStrokeWidth, strokeDasharray: ftOption.handleStrokeDashPreset.join(',') })
|
.attr({ fill: "none", 'vector-effect': "non-scaling-stroke", stroke: ftOption.handleFill, strokeWidth: ftOption.handleStrokeWidth, strokeDasharray: ftOption.handleStrokeDashPreset.join(',') })
|
||||||
.transform( this.transform().global.toString() ) );
|
.transform( this.transform().global.toString() ) );
|
||||||
|
|
||||||
// outer bbox
|
// outer bbox
|
||||||
this.data("bb", this.paper.select('#userContent').rect( rectObjFromBB( this.getBBox() ) )
|
this.data("bb", this.paper.select('#userContent').rect( rectObjFromBB( this.getBBox() ) )
|
||||||
.attr({ fill: "none", stroke: 'gray', strokeWidth: ftOption.handleStrokeWidth, strokeDasharray: ftOption.handleStrokeDash }) );
|
.attr({ fill: "none", stroke: 'gray', strokeWidth: ftOption.handleStrokeWidth, strokeDasharray: ftOption.handleStrokeDash }) );
|
||||||
|
|
@ -281,6 +290,34 @@ Snap.plugin(function (Snap, Element, Paper, global) {
|
||||||
function elementDragEnd( mainEl, dx, dy, x, y ) {
|
function elementDragEnd( mainEl, dx, dy, x, y ) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function dragHandleResizeStart( mainElement ) {
|
||||||
|
this.ftStoreStartCenter();
|
||||||
|
};
|
||||||
|
|
||||||
|
function dragHandleResizeEnd( mainElement ) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function dragHandleResizeMove( mainEl, dx, dy, x, y, event){
|
||||||
|
var handle = this;
|
||||||
|
var mainBB = mainEl.getBBox();
|
||||||
|
var unscale = mainEl.data('unscale');
|
||||||
|
|
||||||
|
//todo was ist ocx
|
||||||
|
handle.attr({ cx:+handle.data('ocx') + dx*unscale, cy: +handle.data('ocy')+dy*unscale});
|
||||||
|
|
||||||
|
var distance = calcDistance(mainBB.cx,mainBB.cy,handle.attr('cx'),handle.attr('cy'));
|
||||||
|
var scale = distance / mainEl.data("scaleFactor");
|
||||||
|
if(event.shiftKey){
|
||||||
|
scale = Math.round(scale*4) / 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainEl.data("scale", scale );
|
||||||
|
|
||||||
|
mainEl.ftUpdateTransform();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
function dragHandleRotateStart( mainElement ) {
|
function dragHandleRotateStart( mainElement ) {
|
||||||
this.ftStoreStartCenter();
|
this.ftStoreStartCenter();
|
||||||
};
|
};
|
||||||
|
|
@ -297,19 +334,12 @@ Snap.plugin(function (Snap, Element, Paper, global) {
|
||||||
|
|
||||||
if(!mainEl.data('block_rotation')){
|
if(!mainEl.data('block_rotation')){
|
||||||
var angle = Snap.angle( mainBB.cx, mainBB.cy, handle.attr('cx'), handle.attr('cy') ) - 180;
|
var angle = Snap.angle( mainBB.cx, mainBB.cy, handle.attr('cx'), handle.attr('cy') ) - 180;
|
||||||
if(event.shiftKey){
|
if(event.shiftKey){ //enable block rotation
|
||||||
angle = Math.round(angle/30) * 30;
|
angle = Math.round(angle/30) * 30;
|
||||||
}
|
}
|
||||||
mainEl.data("angle", angle );
|
mainEl.data("angle", angle );
|
||||||
}
|
}
|
||||||
|
|
||||||
var distance = calcDistance( mainBB.cx, mainBB.cy, handle.attr('cx'), handle.attr('cy') );
|
|
||||||
var scale = distance / mainEl.data("scaleFactor");
|
|
||||||
if(event.shiftKey){
|
|
||||||
scale = Math.round(scale*4) / 4;
|
|
||||||
}
|
|
||||||
mainEl.data("scale", scale );
|
|
||||||
|
|
||||||
mainEl.ftUpdateTransform();
|
mainEl.ftUpdateTransform();
|
||||||
mainEl.ftDrawJoinLine( handle );
|
mainEl.ftDrawJoinLine( handle );
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue