使用ezdxf从特定视图中检索DXF实体

时间:2019-12-26 11:23:19

标签: python autocad dxf ezdxf

我试图仅从DXF文件的特定视图中检索实体。

VIEWPORT类无助于分离视图。

帮我解决这个问题。

预先感谢

1 个答案:

答案 0 :(得分:1)

通常,对于任意视口和目标对象,这是一个相对困难的问题。

该解决方案可以简化为计算相对于WCS的视口边界,然后确定哪些实体完全位于或部分位于计算的边界内。

可以通过获取视口的边界顶点(相对于Paperspace),然后使用使用比例尺(或视图高度),旋转(或扭曲角)和法向矢量和视口中心。

  • 比例可以通过将DXF组45(高度wrt模型空间)除以DXF组41(高度wrt图纸空间)来计算。

  • 旋转可以从DXF组51(视角扭曲角度)获得。

  • 法向矢量可从DXF组16(WCS视图方向矢量)获得。

  • 中心可以从DXF组10(WCS中心点)获得

在计算边界坐标后,您将需要计算所有“模型空间”几何图形的范围(或仅取决于您要求的精度的矩形边界框),并确定几何范围的任何部分是否落在计算出的视口边界。