Product: Mingcedar Studio DESIGNER
Move | Mingcedar Studio
Map a number to a horizontal or vertical offset from the original position, for sliders, level markers and indicators.
<div class="manual-doc-article manual-doc-article-section"><h2 id="geometry-move">Geometry: Move</h2>
Map a number to a horizontal or vertical offset from the original position, for sliders, level markers and indicators.
<div class="doc-card-list">
<article class="doc-card">
<h3 id="geometry-move-item-1">Overview</h3>
<p>Move is a Geometry behavior for numeric single-axis motion. Use Rotate for angles and Scale for size changes.</p>
</article>
<article class="doc-card">
<h3 id="geometry-move-item-2">How to use it: every control in the editor</h3>
<p>Move clamps Source value to Limit minimum / Limit maximum and maps that interval to At limit minimum / At limit maximum. The output is a canvas distance relative to the original component position. Source minimum / Source maximum are available as ValueMin / ValueMax aliases. Changing the source range alone does not update the input limits.</p>
<ul>
<li>Behavior name is editable; Component name is read-only.</li>
<li>Quality override / Override border by quality configures Good and Bad borders for data quality, separately from process limits.</li>
<li>JS functions... inserts a method into the focused expression field.</li>
<li>Source value returns a number, for example ReadTagDouble("PLC_LINE01.TANK01.LEVEL", 0). Condition returns a boolean; false skips the behavior and does not hide the component.</li>
<li>Source minimum / Source maximum default to 0 / 100 and supply the ValueMin / ValueMax expression aliases.</li>
<li>At limit minimum / At limit maximum specify movement offsets, initially 0 / 120 for a new Move behavior, at the input-limit endpoints. Capture calculates an endpoint from the component geometry.</li>
<li>Limit minimum / Limit maximum start as independent values 0 / 100 and control clamping and normalization. Enter ValueMin / ValueMax to follow the source range.</li>
<li>Move axis: Horizontal or Vertical. Hide outside input limits controls visibility on an out-of-range input.</li>
<li>Save / Ctrl+S validates and saves; Cancel / Esc discards the edit.</li>
</ul>
<div class="manual-code" data-code-language="text"><div class="manual-code-toolbar"><span>Text</span><span class="manual-code-tools"><small>Text</small><button type="button" data-copy-code data-copied="Copied" data-failed="Select and copy the code" aria-label="Copy code: Text">Copy code</button><span class="manual-code-status" role="status"></span></span></div><pre tabindex="0" class="docs-code-block shiki github-light" style="background-color:#fff;color:#24292e" tabindex="0"><code><span class="line"><span>// Source value</span></span>
<span class="line"><span>ReadTagDouble("PLC_LINE01.TANK01.LEVEL", 0)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>// Source minimum / maximum: 0 / 100</span></span>
<span class="line"><span>// Limit minimum / maximum: ValueMin / ValueMax</span></span>
<span class="line"><span>// At limit minimum / maximum: 0 / -shape.height</span></span>
<span class="line"><span>// Move axis: Vertical</span></span></code></pre></div>
</article>
<article class="doc-card">
<h3 id="geometry-move-item-3">How the Capture buttons work</h3>
<p>Capture beside At limit minimum / At limit maximum calculates the offset from the same component in PowerPoint. The editor records the original geometry, writes the difference between target and original coordinates, and then attempts to restore the original position.</p>
<ul>
<li>Choose Move axis first: Horizontal uses the Left difference and Vertical uses the Top difference.</li>
<li>Move the component to the desired endpoint, then use Capture beside that endpoint.</li>
<li>The offset uses 0.### formatting and can be replaced with a numeric expression.</li>
<li>The same component must remain selected. Unavailable original or current geometry produces an error.</li>
<li>If restoration fails, the saved offset remains; restore the component before continuing.</li>
</ul>
</article>
<article class="doc-card">
<h3 id="geometry-move-item-4">When to use it</h3>
<p>Use a measured value to drive linear motion, for example:</p>
<ul>
<li>Tank level: map the level percentage into a vertical offset so the liquid block floats up and down with the level</li>
<li>Slider / horizontal indicator: map a 0-100 value into a horizontal offset to produce slider or horizontal indicator bar motion</li>
</ul>
</article>
<article class="doc-card doc-card-warn">
<h3 id="geometry-move-item-5">Limitations and troubleshooting</h3>
<p>Check these settings:</p>
<ul>
<li>Movement outputs use canvas distance. Use shape.width for one component width; 100 means 100 canvas units.</li>
<li>Limit minimum / Limit maximum controls the actual mapping, with out-of-range visibility controlled separately.</li>
<li>Check the movement axis before Capture to avoid recording the wrong coordinate difference.</li>
<li>After changing the source range, update input limits or enter ValueMin / ValueMax to follow it.</li>
</ul>
</article>
</div>
<div class="docs-note-grid manual-doc-image-grid">
<figure class="docs-note-card manual-doc-image-card" id="geometry-move-image-1">
<img src="/WEB_img/HQPPT/current/geometry/move.png" alt="Move behavior editor" loading="lazy" decoding="async" />
<figcaption>
<strong>Figure 1: Move editor</strong>
<p>Set the source range, offset range, and axis to map a value proportionally into a single-axis offset.</p>
</figcaption>
</figure>
</div>
</div>