AutoCAD .NET 二次开发(2020版)将自定义网格作为坐标系

发布时间 2023-11-30 16:37:39作者: -Cloud-

如图所示,是自由绘制的一个网格(间距符合实际距离),并且制作为了块。

本文不讨论如何绘制网格,而是在有了一个自定义网格之后,如何将网格当作可用坐标系,去获取到网格上的点的坐标。

这里的坐标指的是点相对于网格上显示的坐标,而不是实际的CAD模型空间的坐标。

如下图,若在(30,160)的位置画一个图形,获取该图形的坐标,则应该得到(30,160),而无论该网格处于CAD模型空间中的任何位置。

 

代码如下,可获取到对象在网格中的坐标

Point2d cadPoint;//这是对象在CAD模型空间中的真实坐标,自行获取
Point2d basePoint;//这是网格的原点的真实坐标,自行获取

//将对象的坐标转换为网格对应的坐标 Vector2d displacement = basePoint.GetAsVector().Negate(); Point2d customPoint = cadPoint+ displacement;//这是对象在网格中对应的坐标,以上图的红点为例,应能得到坐标(30,160)