Моей первой мыслью было, что синтаксический анализатор не учел вероятность того, что значение группы DXF 370 будет равно нулю (поскольку допустим нулевой вес), но в эта версия из dxf_input.py
перед делением проверяется, равна ли группа 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, как в v0.91 из dxf_input.py
Я могу подтвердить, что эта строка выглядит так:
w = 90.0/25.4*vals[groups['370']][0]/100.0
Чтобы проверить, является ли это причиной ошибки, вы можете просмотреть источник dxf_input.py
, перейдя к C:\Program Files\Inkscape\share\extensions
и открыв файл в соответствующем редакторе кода, таком как Notepad ++.
Найдите w = 90.0/25.4
в исходном коде и убедитесь, что деление на 100.0
вместо 00.0
.