Contact me: hankecnc@gmail.com

Dxf文件解析错误 #121

推推 grbl 3年前 (2023-02-09) 305次浏览
关闭
连枣子 开了这个issue 2020 年 5 月 15 日 · 8条评论
关闭

Dxf文件解析错误#121

连枣子 开了这个issue 2020 年 5 月 15 日 · 8条评论

评论

Dxf文件解析错误 #121

你好,最近在使用绘图仪软件的时候发现一个问题,不知道怎么解决。当我用软件加载dxf文件时,软件自动添加了一些直线,但这些直线并不在dxf文件中。下图1是用Estlcam软件打开的dxf文件截图,图2是用绘图仪软件打开的dxf文件截图,图3是用LibrCAD软件打开的dxf文件截图。图 2 中用蓝色标记的部分是由绘图仪软件自动添加的。

Dxf文件解析错误 #121
图1

Dxf文件解析错误 #121
图 2

Dxf文件解析错误 #121
图 3

用于测试
temple_noir_aplats_negatif.zip的 Dxf 文件

Dxf文件解析错误 #121 连枣子 补充道 漏洞 标签 2020 年 5 月 15 日
Dxf文件解析错误 #121
所有者

您是否使用了特殊选项或在导入后对数字进行了排序?

Dxf文件解析错误 #121
作者
莲枣子 评论了 2020 年 5 月 15 日  

感谢你的回复。
我把用plotter软件读取dxf的过程和用librecad软件读取同一个dxf文件的过程做了gif动画。

软件设置使用默认值。

Dxf文件解析错误 #121
作者

抱歉,由于我的失误,我没有检查dxf文件中的图元是否重合,实际上用于测试的dxf文件中有很多重合的几何图元,而且这些图元很短。因此,用绘图仪软件读取dxf文件时多出的线条应该是dxf文件中几何图元重叠造成的。但是我有一个疑问,即使dxf中有重叠的几何图元,dxf文件中没有的线也不应该出现。如果有重复的几何图元,应该重复几何图元生成两次Gcode。

基于以上,我有两个好的建议:

  1. 绘图仪软件可以删除重复的几何图元(完全重复的几何图元会删除其中一个,当短图元和长图元重合时,删除短的图元)
  2. 当两个直线图元之间的距离小于或等于设定的允许值时,合并两个图元。

为了说明我的想法,我画了三张
图 图1:如果红色几何基元和白色几何基元重合,删除较短的红色几何基元。
Dxf文件解析错误 #121

图 3:如果两个几何图元部分重叠,则两个几何图元合并为一个图元。合并后的几何图元的总长度为重复的两个几何图元的长度减去两个几何图元重合部分的长度。
Dxf文件解析错误 #121

图2:当两个图元之间的距离小于设定的允许距离时,它与两个图元的延伸相交。其中,带角度的几何元素的延伸部分可选择直线连接或圆弧连接(选择圆弧连接时,该圆弧应与两条直线相切)。
Dxf文件解析错误 #121

不知道这样是否表达了你对我的想法的理解。我知道这很难实现,但它确实可以防止在读取dxf文件时出现一些奇怪的问题。

Dxf文件解析错误 #121
作者

查看图片时,请双击您要查看的图片,这样您会看得更清楚。

Dxf文件解析错误 #121
所有者

检查距离在新版本中被假定为相等

Dxf文件解析错误 #121
作者

非常感谢。添加该功能后,绘图仪软件在读取“Temple_noir_aplats_negatif.dxf”文件时将不会生成一些不存在的线条。但是我对这个功能的使用和理解还不是很清楚。
我不是很清楚“Distance to be assumed equal”的用法,能详细介绍一下这个设置项的使用和这个设置项的作用吗?

Dxf文件解析错误 #121
所有者

通常你会比较坐标,比如
if ((x1 == x2) && (y1 == y2)),但是对于 float 和 double 格式,即使数字“相同”,也可能存在最小偏差的风险,这可能是由四舍五入引起的。
更好地使用“范围”:
if ( ( Math.Abs​​(x1 – x2) < deviation) && ( Math.Abs​​(y1 – y2) < deviation) )
With ‘deviation’ (“Distance to be assumed equal”) 你可以设置允许的错误…

Dxf文件解析错误 #121
作者

谢谢