在svg中设置默认单位(Python svgwrite)

在svg中设置默认单位(Python svgwrite),python,svg,cad,Python,Svg,Cad,我正在使用python的svgwrite生成SVG图形。每次我想画画的时候,我都会发现自己在做一件丑陋而笨拙的事情: line = drawing.line(start = "%dmm" % start, end = "%dmm" % end) 我希望我能做到: line = drawing.line(start = start, end = end) 是否有办法将整个svg图形的默认单位设置为“mm” 一种可能的方法是设置viewBox属性和文档大小 dwg = svgwrite.Draw

我正在使用python的svgwrite生成SVG图形。每次我想画画的时候,我都会发现自己在做一件丑陋而笨拙的事情:

line = drawing.line(start = "%dmm" % start, end = "%dmm" % end)
我希望我能做到:

line = drawing.line(start = start, end = end)

是否有办法将整个svg图形的默认单位设置为“mm”

一种可能的方法是设置viewBox属性和文档大小

dwg = svgwrite.Drawing('myDrawing.svg', size=('170mm', '130mm'), viewBox=('0 0 170 130'))

dwg.add(dwg.line(start=(30, 30), end=(50,50)))

dwg.save()
为我生产

<?xml version="1.0" encoding="utf-8" ?>

<svg baseProfile="full" height="130mm" version="1.1" viewBox="0 0 170 130" width="170mm"
xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink"><defs /><line x1="30" x2="50" y1="30" y2="50" />     </svg>

我刚刚发现您可以做到这一点:

from svgwrite import cm, mm
dwg = svgwrite.Drawing('my_drawing.svg', height='10cm', width='10cm')
dwg.add(dwg.line((0*cm, 0*cm), (10*cm, 10*cm))
dwg.save()