Point2Curve
<p><strong>事件名称</strong>:Point2Curve</p>
<p><strong>接口形式</strong>:DLL</p>
<p><strong>请求方式</strong>:调用<code>OCCTProxy</code>的<code>Point2Curve</code>方法</p>
<p><strong>接口描述</strong>:
在特定的两点画一条轨迹,配合仿真运动使用</p>
<p><strong>返回数据格式</strong>:无,效果直接显示在画面中</p>
<p><strong>请求参数</strong>:
<code>List&lt;double&gt; tempL</code>
<code>List&lt;double&gt; tmepL2</code></p>
<p><strong>参数说明</strong>:</p>
<p><code>tempL</code>是起始点的位置,<code>tempL2</code>是结束点的位置。</p>
<p><strong>样例</strong>:</p>
<pre><code class="language-csharp"> ActiveViewer.View.ClearCurve(); // 清除之前跑过的轨迹样式
Dictionary&lt;String, Object&gt; ret2 = ActiveViewer.View.InsertPointsJogPosition(test); // 获取均匀间距的点
List&lt;Dictionary&lt;string, object&gt;&gt; ans2 = ret2[&quot;Data&quot;] as List&lt;Dictionary&lt;string, object&gt;&gt;;
try{
for (int i = 0; i &lt; ans2.Count; i++)
{
List&lt;double&gt; jogs = ans2[i][&quot;Jogs&quot;] as List&lt;double&gt;;
int times = (int)ans2[i][&quot;Time&quot;];
int num = i - 1;
if (num &lt; 0)
{
num = 0;
}
List&lt;double&gt; xyz = ans2[num][&quot;XYZ&quot;] as List&lt;double&gt;; // 获取上一点的XYZ
List&lt;double&gt; xyz2 = ans2[i][&quot;XYZ&quot;] as List&lt;double&gt;; // 获取当前点的XYZ
Dictionary&lt;String, Object&gt; temp = new Dictionary&lt;String, Object&gt;();
temp.Add(&quot;Jogs&quot;, jogs); // 传入当前点的关节数据
if ((bool)needCheckCollide.IsChecked)
{
ActiveViewer.View.CollideCheckWithMove(temp);
}
else
{
ActiveViewer.View.J_MoveToDT(temp); // 使用当前点关节数据仿真
ActiveViewer.View.Point2Curve(xyz, xyz2); // 画TCP运行轨迹
}
await Task.Delay(times); // 延迟执行,可自己定义。也可以用后端根据不同段运动速度计算的times
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}</code></pre>