summaryrefslogtreecommitdiffstats
path: root/share/extensions/plotter.inx
blob: 98e9c16cd78ad62c918ace167d6a3445e8b547ab (plain)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
  <name>Plot</name>
  <id>org.ekips.filter.plot</id>
  <dependency type="file" location="inx">hpgl_decoder.py</dependency>
  <dependency type="file" location="inx">hpgl_encoder.py</dependency>
  <label>Please make sure that all objects you want to plot are converted to paths.</label>
  <param name="tab" type="notebook">
    <page name="connection" gui-text="Connection Settings">
      <param name="portType" type="optiongroup" appearance="radio" gui-text="Port type:">
        <option value="serial">Serial</option>
        <option value="parallel">Parallel</option>
      </param>
      <param name="parallelPort" type="string" gui-text="Parallel port:" gui-description="The port of your parallel connection, on Windows not currently supported, on Linux something like: '/dev/usb/lp2' (default: /dev/usb/lp2)">/dev/usb/lp2</param>
      <param name="serialPort" type="string" gui-text="Serial port:" gui-description="The port of your serial connection, on Windows something like 'COM1', on Linux something like: '/dev/ttyUSB0' (default: COM1)">COM1</param>
      <param name="serialBaudRate" type="optiongroup" appearance="combo" gui-text="Serial baud rate:" gui-description="The Baud rate of your serial connection (default: 9600)">
        <option translatable="no" value="9600">9600</option>
        <option translatable="no" value="110">110</option>
        <option translatable="no" value="300">300</option>
        <option translatable="no" value="600">600</option>
        <option translatable="no" value="1200">1200</option>
        <option translatable="no" value="2400">2400</option>
        <option translatable="no" value="4800">4800</option>
        <!-- <option translatable="no" value="9600">9600</option> -->
        <option translatable="no" value="14400">14400</option>
        <option translatable="no" value="19200">19200</option>
        <option translatable="no" value="28800">28800</option>
        <option translatable="no" value="38400">38400</option>
        <option translatable="no" value="56000">56000</option>
        <option translatable="no" value="57600">57600</option>
        <option translatable="no" value="115200">115200</option>
      </param>
      <param name="serialByteSize" type="optiongroup" appearance="combo" gui-text="Serial byte size:" gui-description="The Byte size of your serial connection, 99% of all plotters use the default setting (default: 8 Bits)">
        <option translatable="no" value="eight">8 Bits</option>
        <option translatable="no" value="seven">7 Bits</option>
        <option translatable="no" value="six">6 Bits</option>
        <option translatable="no" value="five">5 Bits</option>
      </param>
      <param name="serialStopBits" type="optiongroup" appearance="combo" gui-text="Serial stop bits:" gui-description="The Stop bits of your serial connection, 99% of all plotters use the default setting (default: 1 Bit)">
        <option translatable="no" value="one">1 Bit</option>
        <option translatable="no" value="onePointFive">1.5 Bits</option>
        <option translatable="no" value="two">2 Bits</option>
      </param>
      <param name="serialParity" type="optiongroup" appearance="combo" gui-text="Serial parity:" gui-description="The Parity of your serial connection, 99% of all plotters use the default setting (default: None)">
        <option translatable="no" value="none">None</option>
        <option translatable="no" value="even">Even</option>
        <option translatable="no" value="odd">Odd</option>
        <option translatable="no" value="mark">Mark</option>
        <option translatable="no" value="space">Space</option>
      </param>
      <param name="serialFlowControl" type="optiongroup" appearance="combo" gui-text="Serial flow control:" gui-description="The software / hardware flow control of your serial connection (default: Software)">
        <option value="xonxoff">Software (XON/XOFF)</option>
        <option value="rtscts">Hardware (RTS/CTS)</option>
        <option value="dsrdtrrtscts">Hardware (DSR/DTR + RTS/CTS)</option>
        <option value="none">None</option>
      </param>
      <param name="commandLanguage" type="optiongroup" appearance="combo" gui-text="Command language:" gui-description="The command language to use (default: HPGL)">
        <option value="HPGL">HPGL</option>
        <option value="DMPL">DMPL</option>
        <option value="KNK">KNK Plotter (HPGL variant)</option>
      </param>
      <spacer/>
      <label>Using wrong settings can under certain circumstances cause Inkscape to freeze. Always save your work before plotting!</label>
      <label>This can be a physical serial connection or a USB-to-Serial bridge. Ask your plotter manufacturer for drivers if needed.</label>
      <label>Parallel (LPT) connections are not supported.</label>
    </page>
    <page name="plotter" gui-text="Plotter Settings">
      <param name="resolutionX" type="float" min="1.0" max="4096.0" precision="1" gui-text="Resolution X (dpi):" gui-description="The number of steps the plotter moves when it moves by 1 inch on the X axis (default: 1016.0)">1016.0</param>
      <param name="resolutionY" type="float" min="1.0" max="4096.0" precision="1" gui-text="Resolution Y (dpi):" gui-description="The number of steps the plotter moves when it moves by 1 inch on the Y axis (default: 1016.0)">1016.0</param>
      <param name="pen" type="int" min="0" max="99" gui-text="Pen number:" gui-description="The number of the pen (tool) to use (standard: '1'). Can also be defined in the layer name (e.g. 'Pen 1')">1</param>
      <param name="force" type="int" min="0" max="1000" gui-text="Pen force (g):" gui-description="The force pushing down the pen in grams. Set to 0 to omit command; most plotters ignore this command (default: 0)">0</param>
      <param name="speed" type="int" min="0" max="10000" gui-text="Pen speed (cm/s or mm/s):" gui-description="The speed the pen will move with in centimeters or millimeters per second (depending on your plotter model). Set to 0 to omit command. Most plotters ignore this command (default: 0). Can be defined in the layer name together with the pen number (e.g. 'Pen 3 Speed 10').">0</param>
      <param name="orientation" type="optiongroup" appearance="combo" gui-text="Rotation (°, clockwise):" gui-description="Rotation of the drawing (default: 0°)">
        <option translatable="no" value="0">0</option>
        <option translatable="no" value="90">90</option>
        <option translatable="no" value="180">180</option>
        <option translatable="no" value="270">270</option>
      </param>
      <param name="mirrorX" type="bool" gui-text="Mirror X axis" gui-description="Check this to mirror the X axis (default: Unchecked)">false</param>
      <param name="mirrorY" type="bool" gui-text="Mirror Y axis" gui-description="Check this to mirror the Y axis (default: Unchecked)">false</param>
      <param name="center" type="bool" gui-text="Center origin" gui-description="Check this if your plotter uses a centered origin (default: Unchecked)">false</param>
      <spacer/>
      <label>If you want to use multiple pens and speeds with your pen plotter, create one layer for each pen number and speed value, name the layers "Pen 1 Speed 10", "Pen 2 Speed 20" etc. and put your drawings on the corresponding layers. This overrides the pen number and pen speed options in the menu above.</label>
    </page>
    <page name="plot_features" gui-text="Plot Features">
      <param name="overcut" type="float" min="0.0" max="100.0" precision="2" gui-text="Overcut (mm):" gui-description="The distance in mm that will be cut over the starting point of the path to prevent open paths. Set to 0.0 to omit command (default: 1.00).">1.00</param>
      <param name="toolOffset" type="float" min="0.0" max="20.0" precision="2" gui-text="Tool (knife) offset correction (mm):" gui-description="The offset from the tool tip to the tool axis in mm. Set to 0.0 to omit command (default: 0.25).">0.25</param>
      <param name="precut" type="bool" gui-text="Precut" gui-description="Check this to cut a small line to correctly align the tool orientation before the real drawing starts (default: Checked).">true</param>
      <param name="flat" type="float" min="0.1" max="10.0" precision="1" gui-text="Curve flatness:" gui-description="Curves are divided into lines. This number controls how fine the curves will be reproduced, the smaller the finer (default: 1.2).">1.2</param>
      <param name="autoAlign" type="bool" gui-text="Auto align" gui-description="Check this to auto align the drawing to the origin (plus the tool offset if used). If unchecked, you have to make sure that all parts of your drawing are within the document border! (default: Checked)">true</param>
      <spacer/>
    </page>
  </param>
  <label>All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter.</label>
  <effect needs-live-preview="false" needs-document="true">
    <object-type>path</object-type>
    <effects-menu>
      <submenu name="Export"/>
    </effects-menu>
  </effect>
  <script>
    <command location="inx" interpreter="python">plotter.py</command>
  </script>
</inkscape-extension>