Hackish way to make scriptsboxes to work with Inkscape.
This commit is contained in:
parent
ff7ee22885
commit
e0a4d06c43
|
@ -22,6 +22,7 @@ except ImportError:
|
||||||
pass
|
pass
|
||||||
import cairo
|
import cairo
|
||||||
import math
|
import math
|
||||||
|
import sys
|
||||||
import argparse
|
import argparse
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
import re
|
import re
|
||||||
|
@ -30,6 +31,7 @@ from xml.sax.saxutils import quoteattr
|
||||||
|
|
||||||
from boxes import edges
|
from boxes import edges
|
||||||
from boxes import formats
|
from boxes import formats
|
||||||
|
from boxes import svgutil
|
||||||
from boxes import gears
|
from boxes import gears
|
||||||
from boxes import pulley
|
from boxes import pulley
|
||||||
from boxes import parts
|
from boxes import parts
|
||||||
|
@ -215,6 +217,7 @@ class Boxes:
|
||||||
self.formats = formats.Formats()
|
self.formats = formats.Formats()
|
||||||
self.argparser = ArgumentParser(description=self.__doc__)
|
self.argparser = ArgumentParser(description=self.__doc__)
|
||||||
self.edgesettings = {}
|
self.edgesettings = {}
|
||||||
|
self.inkscapefile = None
|
||||||
self.argparser._action_groups[1].title = self.__class__.__name__ + " Settings"
|
self.argparser._action_groups[1].title = self.__class__.__name__ + " Settings"
|
||||||
|
|
||||||
defaultgroup = self.argparser.add_argument_group(
|
defaultgroup = self.argparser.add_argument_group(
|
||||||
|
@ -330,6 +333,11 @@ class Boxes:
|
||||||
:param args: (Default value = None) parameters, None for using sys.argv
|
:param args: (Default value = None) parameters, None for using sys.argv
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
args = args or sys.argv
|
||||||
|
if args[-1][0] != "-":
|
||||||
|
self.inkscapefile = args[-1]
|
||||||
|
del args[-1]
|
||||||
|
args = [a for a in args if not a.startswith('--tab=')]
|
||||||
for key, value in vars(self.argparser.parse_args(args=args)).items():
|
for key, value in vars(self.argparser.parse_args(args=args)).items():
|
||||||
# treat edge settings separately
|
# treat edge settings separately
|
||||||
for setting in self.edgesettings:
|
for setting in self.edgesettings:
|
||||||
|
@ -497,6 +505,8 @@ class Boxes:
|
||||||
self.surface.finish()
|
self.surface.finish()
|
||||||
|
|
||||||
self.formats.convert(self.output, self.format)
|
self.formats.convert(self.output, self.format)
|
||||||
|
if self.inkscapefile:
|
||||||
|
svgutil.svgMerge(self.output, self.inkscapefile, sys.stdout)
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
### Turtle graphics commands
|
### Turtle graphics commands
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
@ -26,9 +27,15 @@ def main():
|
||||||
del modules['_template']
|
del modules['_template']
|
||||||
if len(sys.argv) == 1:
|
if len(sys.argv) == 1:
|
||||||
printusage()
|
printusage()
|
||||||
elif sys.argv[1] in modules:
|
elif (sys.argv[1] in modules or
|
||||||
|
(sys.argv[1].startswith("--generator=") and
|
||||||
|
sys.argv[1][12:] in modules)):
|
||||||
|
if sys.argv[1].startswith("--generator="):
|
||||||
|
sys.argv[1] = sys.argv[1][12:]
|
||||||
name = sys.argv[1]
|
name = sys.argv[1]
|
||||||
sys.argv[0] = "%s %s" % (sys.argv[0], sys.argv[1])
|
sys.argv[0] = "%s %s" % (sys.argv[0], sys.argv[1])
|
||||||
|
sys.argv[1] = '--tab="0"'
|
||||||
|
del sys.argv[0]
|
||||||
del sys.argv[1]
|
del sys.argv[1]
|
||||||
modules[name].main()
|
modules[name].main()
|
||||||
elif sys.argv[1] == '--list':
|
elif sys.argv[1] == '--list':
|
||||||
|
|
Loading…
Reference in New Issue