diff --git a/web/app/canvas.js b/web/app/canvas.js index a7108ad4..0328af36 100644 --- a/web/app/canvas.js +++ b/web/app/canvas.js @@ -282,6 +282,7 @@ TCAD.TWO.SketchObject.prototype._translate = function(dx, dy, translated) { }; TCAD.TWO.SketchObject.prototype.translate = function(dx, dy) { +// this.translateImpl(dx, dy); this._translate(dx, dy, {}); }; diff --git a/web/app/parametric.js b/web/app/parametric.js index f1f4dcb0..78578f90 100644 --- a/web/app/parametric.js +++ b/web/app/parametric.js @@ -195,6 +195,7 @@ TCAD.TWO.ParametricManager.prototype.solve = function(locked, fineLevel) { var params; var i; var _constrs = []; + var equals = []; function getParam(p) { var _p = pdict[p.id]; @@ -218,12 +219,17 @@ TCAD.TWO.ParametricManager.prototype.solve = function(locked, fineLevel) { var _constr = TCAD.constraints.create(sdata[0], params, sdata[2]); _constrs.push(_constr); + if (sdata[0] === 'equal') { + equals.push(this.system[i]); + } } var _locked = []; + var lockedIds = {}; if (locked !== undefined) { for (var p = 0; p < locked.length; ++p) { _locked[p] = getParam(locked[p]); + lockedIds[locked[p]] = true; } } @@ -233,6 +239,22 @@ TCAD.TWO.ParametricManager.prototype.solve = function(locked, fineLevel) { var _p = pdict[p]; _p._backingParam.set(_p.get()); } + + + //Make sure all equal constraints are equal + for (i = 0; i < equals.length; ++i) { + var ec = equals[i]; + var master = ec.p1; + var slave = ec.p2; + if (lockedIds[master.id] === true) { + master = ec.p2; + slave = ec.p1; + if (lockedIds[master.id] === true) { + continue; + } + } + slave.set( master.get() ); + } }; TCAD.TWO.Constraints.Equal = function(p1, p2) {