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

问题描述 投票:-2回答:1

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

VIEWPORT类无助于分离视图。

[帮我解决这个问题。

提前感谢

python autocad dxf ezdxf
1个回答
1
投票

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

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

可以通过获取视口(相对于Paperspace)的边界顶点,然后使用使用比例尺(或视图高度),旋转(或扭曲角)和法线构造的转换矩阵来转换这些顶点,来计算边界矢量和视口中心。

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.