a drawing's geometric entities, created using commands such as
makeLine and makeCircle from FreeCAD's Draft module, can be converted
to SVG format using getSVG. However, an error is generated by getSVG
if it encounters a dimension created using makeDimension.
Code: Select all
import sys
sys.path.append('/usr/lib/freecad/lib')
import FreeCAD
import FreeCADGui
import Draft
doc = FreeCAD.newDocument()
Draft.makeLine((0,0,0), (1,1,0))
Draft.makeDimension((2,0,0),(9,0,0),(2,1,0))
doc.recompute()
svgfile = open('script_output.svg', 'w')
svgfile.write(r'<?svg version="1.1" encoding="iso-8859-1"?>')
svgfile.write(r'<!DOCTYPE svg>')
svgfile.write(r'<svg width="100" height="100">')
for obj in doc.Objects:
svgfile.write(Draft.getSVG(obj))
svgfile.write(r'</svg>')
Code: Select all
FreeCAD 0.15, Libs: 0.15R4671 (Git)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/home/adamlee/x_x/wip/freecad_script/script.py in <module>()
20
21 for obj in doc.Objects:
---> 22 svgfile.write(Draft.getSVG(obj))
23
24 svgfile.write(r'</svg>')
/usr/lib/freecad/Mod/Draft/Draft.pyc in getSVG(obj, scale, linewidth, fontsize, fillstyle, direction, linestyle, color)
1966
1967 elif getType(obj) == "Dimension":
-> 1968 if obj.ViewObject.Proxy:
1969 if hasattr(obj.ViewObject.Proxy,"p1"):
1970 prx = obj.ViewObject.Proxy
AttributeError: 'NoneType' object has no attribute 'Proxy'
OS: Ubuntu 16.04.2 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.15.4671 (Git)
Branch: releases/FreeCAD-0-15
Hash: 244b3aef360841646cbfe80a1b225c8b39c8380c
Python version: 2.7.11
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
Any suggestions will be most gratefully received.