File: gen_svg_viewbox_tests-template.py

package info (click to toggle)
openscad 2021.01-8
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 36,012 kB
  • sloc: cpp: 53,199; sh: 4,384; ansic: 4,382; python: 1,813; yacc: 853; javascript: 762; lex: 417; lisp: 163; xml: 127; makefile: 118
file content (37 lines) | stat: -rwxr-xr-x 1,200 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#! ${PYTHON_EXECUTABLE}

from __future__ import print_function

import sys

params = [
	[ 300, 400, "none" ],
	[ 600, 200, "none" ],
	[ 300, 400, "xMinYMin", "meet" ],
	[ 300, 400, "xMidYMin", "meet" ],
	[ 300, 400, "xMaxYMin", "meet" ],
	[ 600, 200, "xMinYMin", "meet" ],
	[ 600, 200, "xMinYMid", "meet" ],
	[ 600, 200, "xMinYMax", "meet" ],
	[ 600, 200, "xMinYMin", "slice" ],
	[ 600, 200, "xMidYMin", "slice" ],
	[ 600, 200, "xMaxYMin", "slice" ],
	[ 600, 600, "xMinYMin", "slice" ],
	[ 600, 600, "xMinYMid", "slice" ],
	[ 600, 600, "xMinYMax", "slice" ]
]

with open(sys.argv[1] + "/viewbox-tests.svg.in") as f:
    svg = f.read()

for p in params:
    width, height = p[0:2]
    aspectParam = ' '.join(str(x) for x in p[2:])
    aspectFile = '_'.join(str(x) for x in p[2:][::-1])
    svg_viewBox = "viewBox=\"0 0 {} {}\"".format(width, height)
    svg_preserveAspectRatio = "preserveAspectRatio=\"{}\"".format(aspectParam)
    out = svg.replace('__VIEWBOX__', svg_viewBox).replace('__PRESERVE_ASPECT_RATIO__', svg_preserveAspectRatio)
    outfile = sys.argv[1] + "/viewbox_{}x{}_{}.svg".format(width, height, aspectFile)
    print(outfile)
    with open(outfile, "w") as f:
        f.write(out)