我有从SolidWorks导出的a dxf file。我想使用Inkscape打开它们,对其进行修改并发送以进行激光切割。但是,当我打开它们时,出现此错误:
Inkscape has received additional data from the
script executed. The script did not return an error,
but this may indicate the result will not be as expected
然后
Traceback (most recent call last):
File "dxf_input.py", line 443, in <module>
w = 90.0/25.4*vals[groups['370']][0]/00.0
ZeroDivisionError: float division by zero
我在其他软件(如LibreCAD)中打开了文件,效果很好。更奇怪的是,这些文件在macOS和其他Windows机器上打开得很好。我尝试多次卸载并重新安装该软件,但这都没有帮助。
我的环境是:
如果您能帮助我知道问题出在哪里以及如何解决,我将不胜感激。
答案 0 :(得分:1)
我首先想到的是,解析器并未考虑DXF组370的值为零(因为线宽为零有效)的可能性,但是在dxf_input.py
的{{3}}中是在除法之前检查DXF组370(线宽)是否为零:
if vals[groups['370']]: # Common Lineweight
if vals[groups['370']][0] > 0: # <-------------------- HERE
w = 96.0/25.4*vals[groups['370']][0]/100.0
if w < 0.5:
w = 0.5
所以我不认为这是问题所在。
然后我发现奇怪的是,上面的100.0
的值在您的回溯中显示为0.00
:
Traceback (most recent call last):
File "dxf_input.py", line 443, in <module>
w = 90.0/25.4*vals[groups['370']][0]/00.0 # <-------------------- This is 100.0 in the code
ZeroDivisionError: float division by zero
因此,这可能是预览版本v0.92.4中引入的错字,就像dxf_input.py
的v0.91中一样,我可以确认此行显示为:
w = 90.0/25.4*vals[groups['370']][0]/100.0
要验证是否是导致错误的原因,可以通过转到dxf_input.py
并在适当的代码编辑器(例如Notepad ++)中打开文件来查看C:\Program Files\Inkscape\share\extensions
的来源。
在源代码中搜索w = 90.0/25.4
,并检查除以100.0
而不是00.0
。
答案 1 :(得分:-1)
问题是在dxf_input.py
文件夹中安装了较旧版本的dxf_input扩展名,包括dxf_input.inx
和%USERPROFILE%\AppData\Roaming\Inkscape\extensions
。结果,无论我卸载并重新安装Inkscape多少次,该错误仍然存在。 Lee在其他答案中提到的较旧版本带有一行
w = 90.0/25.4*vals[groups['370']][0]/00.0
删除这些文件解决了该问题。我不记得是从何时何地安装这些文件的,否则,我会去报告问题或提出PR来修复此错误。