diff --git a/web/app/sketcher/constr/solver.js b/web/app/sketcher/constr/solver.js index 69ca96d8..193cead5 100644 --- a/web/app/sketcher/constr/solver.js +++ b/web/app/sketcher/constr/solver.js @@ -2,6 +2,10 @@ TCAD.parametric = {}; /** @constructor */ TCAD.parametric.Param = function(id, value) { + this.reset(id, value); +}; + +TCAD.parametric.Param.prototype.reset = function(id, value) { this.id = id; this.value = value; this.j = -1; diff --git a/web/app/sketcher/parametric.js b/web/app/sketcher/parametric.js index 87f7ac73..b8db19ff 100644 --- a/web/app/sketcher/parametric.js +++ b/web/app/sketcher/parametric.js @@ -454,7 +454,14 @@ TCAD.TWO.ParametricManager.prototype.prepareForSubSystem = function(locked, subS } var _p = pdict[p.id]; if (_p === undefined) { - _p = new TCAD.parametric.Param(p.id, p.get()); + if (p.__cachedParam__ === undefined) { + _p = new TCAD.parametric.Param(p.id, p.get()); + p.__cachedParam__ = _p; + } else { + _p = p.__cachedParam__; + _p.reset(p.id, p.get()); + } + _p._backingParam = p; pdict[p.id] = _p; }