autocad.net 圖元Delta屬性居然受UCS影響

DDYYHH發表於2024-05-22

今天在進行幾何運算時,發現在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為世界座標系時輸出是這樣的

autocad.net 圖元Delta屬性居然受UCS影響

當修改了UCS後,輸出如下

autocad.net 圖元Delta屬性居然受UCS影響

由此可見,“從圖元上取得的屬性值均為世界座標系”,此說法雖然大部分情況正確,但未必完全正確。

相關文章