我的目标是通过AcCoreConsole运行我的自定义dll并在DWG上进行各种分析,例如在对象上公开图层名称和XY坐标。我设法将所有对象都放在选择集中,并且可以遍历实体。当围绕这个主题进行大量搜索时,我找不到任何有关如何从实体中提取坐标的示例。我确实知道,“坐标”意味着不同的事物,例如它是圆形还是折线。
经过几个小时的谷歌搜索,我找到了答案。简单地使用GeometricExtents为每个实体获取一个边界框,然后通过一些简单的数学计算中点。
try
{
var entExtent = ent.GeometricExtents;
var midpointX = (entExtent.MaxPoint.X+entExtent.MinPoint.X)/2;
var midpointY = (entExtent.MaxPoint.Y+entExtent.MinPoint.Y)/2;
}
catch
{
//edt.WriteMessage("\nGeometricExtents didn´t work on this entity");
}