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

人生乱弹 2年前 (2023) admin
10 0

如图所示,是自由绘制的一个网格(间距符合实际距离),并且制作为了块。
本文不讨论如何绘制网格,而是在有了一个自定义网格之后,如何将网格当作可用坐标系,去获取到网格上的点的坐标。
这里的坐标指的是点相对于网格上显示的坐标,而不是实际的CAD模型空间的坐标。
如下图,若在(30,160)的位置画一个图形,获取该图形的坐标,则应该得到(30,160),而无论该网格处于CAD模型空间中的任何位置。

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

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

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

  
 

文章来源

版权声明:admin 发表于 2023年12月2日 pm10:29。
转载请注明:AutoCAD .NET 二次开发(2020版)将自定义网格作为坐标系 | 银库

相关文章

本站主题由 OneNav 一为主题强力驱动