SpecCommandLineDrawing/DraftSubmodule
Jump to navigation
Jump to search
- Return to SpecCommandLineDrawing
This module specifies the method for drawing an SVG object from parameters entered by the "command line". It contains:
- A dictionary holding possible parameters (except general style paramters - these are found in the global association module), along with the type of the parameter and the default value, which will be used if the user doesn't specify. For example, if the user enters circle r:50, the circle will be centred at (0,0).
- A function called draw_SVG(), which puts the parameters into the correct position in the SVG, and draws it using, in this case, the inkex helper module.
- A function used to perform overrides for redundant parameters. For example, in the circle case, the radius only is used in drawing the circle. However, if the user enters a diameter and not radius, the default radius (100) would be used unless this function sets the radius to the diameter/2.
Draft Code
#!/usr/bin/env python ''' ######DESCRIPTION###### This script contains routines for drawing circles using command line parameters formatted by command_line.py import inkex, simplestyle import command_line command_dictionary = { 'circle':{ 'r':{'t':'scalar', 'd':100}, #radius if r given, overrides diameter 'd':{'t':'scalar'}, #diameter 'c':{'t':'point' , 'd':(0,0)} #centre uses the inkscape position, if given }} def draw_SVG(params, parent): style = command_line.create_SVG_style_dict(params) attribs = {'style':simplestyle.formatStyle(style), 'cx': str(params['c'][0]), 'cy': str(params['c'][1]), 'r': str(params['r']) } inkex.etree.SubElement(parent, inkex.addNS('circle','svg'), attribs ) def set_defaults(params): #r overrides d if 'd' in params and 'r' not in params: params['r'] = params['d']/2.0 return