cad.net 图元Delta属性居然受UCS影响

今天在进行几何运算时,发现在UCS非世界坐标系的时候运算结果不正确

这与我以往的认知出现了冲突,我个人的经验,只有在用户交互的时候(如GetPoint,GetEntity),才用得到ucs。

当一个图元已经从id拿到,转化为Entity时,从该图元属性上取出的属性应该为均为世界坐标系。

经过我的排查后发现,Line的Delta属性居然在不同的UCS下取值不同。我原以为Delta属性就是起点到终点的向量。

这里我写了一个最小化测试Demo

var line1 = new Line(Point3d.Origin,new Point3d(100,0,0));
line1.Delta.Print();
line1.StartPoint.GetVectorTo(line1.EndPoint).Print();

其中print函数是Editor.WriteMessage(); 输出到命令行。

此代码在UCS为世界坐标系时输出是这样的

当修改了UCS后,输出如下

由此可见,“从图元上取得的属性值均为世界坐标系”,此说法虽然大部分情况正确,但未必完全正确。

 

posted @ 2024-05-22 15:56  DDYYHH  阅读(13)  评论(0编辑  收藏  举报