问题标签 [ezdxf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
99 浏览

python - 如何确定属于封闭区域(ezdxf)的所有实体(弧线、线)

我正在尝试使用库 ezdxf 在 python 中管理 dxf 文件。

导入后,我有两种类型的实体列表:

  • ARC:起点、终点、起点角度、终点角度、圆心、半径
  • LINE:起点、终点

我的目标是找到所有具有相应实体的封闭区域。例如:

  • area_1 = [arc1,line2,arc3,line7]
  • area_2 = [arc4, line1, line4, line9]

我的第一次尝试是使用图论计算实体每个点的最小闭环。为此,我使用每个实体的起点和终点作为顶点,将实体的长度作为边创建了一个图形。

我用这种方法遇到了两个大问题:

  1. 我必须为每条弧线/线定义一个连贯的“方向”
  2. 使用图边的实体长度并不总是导致最小区域

我在几何方面不是很熟练,所以我想知道我是否错过了一些明显的东西。有一种更结构化的方法可以做到这一点,还是我应该继续尝试图论?

0 投票
0 回答
46 浏览

python - 如何在ezdxf中获取块的大小和位置?

我想在现有的 dxf 文件上找到一个块(代表一扇门)并用一条直线替换它(即关上门)。

我的想法是找到插入块的点,然后从该点沿块的较大尺寸画一条线。

为此,我需要找到块的总宽度和高度。我曾尝试使用explode 和virtual_entities 来尝试分析组成块的各个线和多段线,但我最终得到的点甚至与dxf 文件中显示的点都不接近。

我还需要它在 dxf 文件上的确切位置。当我使用 dxf.insert 时,我得到的点与图层上的实际插入点坐标不同。

我正在使用 matplotlib 在绘图上显示实体,这是我尝试过的代码示例:

0 投票
0 回答
13 浏览

python - 将 ezdxf 与 joblib 一起使用会溢出堆栈

我正在尝试使用 joblib.Memory 来缓存 DXF 文件(一种 3D CAD 文件格式)的加载,并且发现加载缓存的对象似乎以递归错误结束,这会耗尽 python 堆栈。我创建了一个演示问题的 MWE。

示例 DXF 文件(一个简单的立方体)可在此 gist 处获得(太大,无法粘贴到此处)。

https://gist.github.com/jrjbertram/87e31b3bb0ce2d3771dce7f50d2d0fba

该对象第一次加载没有任何问题(数据很好,绘图未包含在 MWE 中。)重新运行脚本以便使用缓存的文件会导致错误,例如:

我怀疑必须有一些关于joblib可以成功缓存和恢复的规则,而ezdxf库必须违反它们?或者这可能是类似于这里描述的泡菜限制:

无法腌制对象:超出最大递归深度

我现在的解决方法是加载DXF文件(真正的需要很长时间并且非常大),执行面部/顶点/三角剖分处理将结果保存到numpy数组,然后使用joblib.Memory缓存numpy数组。但是,就我而言,我需要经常在同一个 DXF 文件上重新运行此三角测量和其他处理,因此能够缓存加载的 DXF 文件本身会很好,这样我就可以避免解析损失(作为 DXF 文件格式是一个非常详细的文本文件,必须全部处理。)

我可能只需要遍历加载的 DXF 文件并以其他格式(列表、字典等?)返回它的修剪版本,然后将其缓存。

欢迎任何建议或想法。

谢谢你,乔希。

0 投票
0 回答
106 浏览

python - ModuleNotFoundError:没有名为“ezdxf”的模块

我已经ezdxf使用以下命令在我的 .py 文件所在的同一文件夹中安装了运行以下库:

我在悬停时看到此错误import ezdxf

当我尝试运行该项目时,它说:

我试图再次安装,但我看到了这个:

我该如何解决这个问题?

0 投票
2 回答
84 浏览

python - 获取圆 x 和 y 中心

我的目标是从dxf文件中获取所有圈子,其中包含 3 个信息,例如:circumference, X center, Y center. 到目前为止,我能够得到圆周。我怎样才能得到Y & X?这是我当前的代码:

0 投票
0 回答
20 浏览

python - 计算lwpolylines的电路

我想计算每个 LWPOLYLINE 的电路。目前我正在遍历每条 LWPolyline 并获取点和长度。有人可以告诉我如何计算它,特别是如果 gien LWPolyline 的点数可以不同。

循环遍历每个 LWPolyline:

例子:

这里的电路将是 300

0 投票
1 回答
53 浏览

python - 如何使用opencv绘制轮廓内的区域?(图片是从dx​​f文件导出的)

我有一张包含多个机械部件的图片。它们是使用 ezdxf 直接从 dxf 文件导出的。我怎样才能将它们分别绘制到图像上?我试过contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)plt. contours但是,图表会变得模糊。有什么方法可以帮助我吗?下面是图片。先谢谢了 图片

0 投票
0 回答
48 浏览

python - 如何通过ezdxf使用自定义字体将“DXF”文件的一部分转换为图片?

(英语不是我的母语)

我想用来ezdxf将“DXF”文件转换为图片。

作为文档的示例:

但是,警告来了:

它使:创建的图片,将使用矩形来表示(如“工程”字样,“工程”等汉字)

我想,matplotlib加载字体时可能有任何问题。所以,我在main.py头部尝试了下面的代码:

但出现了其他警告:

所以我只写了一个迷你代码来展示,应该如何使用自定义字体:

警告来了:

另外,我尝试了其他代码(查找字体支持的字符):

显示:字体不支持所有字符。

那么,我该怎么做才能将“DXF”文件的一部分转换为ezdxf使用自定义字体的图片?

0 投票
0 回答
33 浏览

python - 在 ezdxf 中渲染几何公差

ezdxf 是否支持几何公差?我一直在尝试渲染一些具有几何公差的 dxf 文件,例如;-Flatness -Position -Runout -Parallelism -Perpendicity 等但我得到一个“跳过的实体 TOLERANCE(#!!)。原因:“不支持” “是否有解决方法来渲染它们,或者是否有计划支持这个?我已经使用文档中给出的代码使用 matplotlib 渲染 dxf: https ://ezdxf.readthedocs.io/en/stable/addons/drawing.html

这是来自 Autodesk 查看器的 dxf 和来自 ezdxf 的渲染: 在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
46 浏览

python - 使用python ezdxf过滤DXF doc中所有LWPOLYLINE中的LINES

如何从 dxf 文档中的 LWPOLYLINE 获取 LINES 坐标?

我有以下代码:

以上for获取块“INSERT”并将它们拆分为我只能得到LINES。我尝试为 LWPOLYLINE 做同样的事情,但没有奏效。

下面的代码获取所有坐标,但我需要逐行过滤并获取坐标:

下面的代码突然停止工作,我认为库 ezdxf 发生了变化。我收到错误

“LWPolyline”对象没有属性“virtual_entities”