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

<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
    <name>Lathe</name>
    <id>ru.cnc-club.filter.gcodetools_lathe_lathe_modify_path_ptg</id>
    <param name='active-tab' type="notebook">

        <page name='lathe' gui-text='Lathe'>
            <param name="lathe-width" type="float" precision="5" min="0" max="1000" gui-text="Lathe width:">10</param>
            <param name="lathe-fine-cut-width" type="float" precision="5" min="0" max="1000" gui-text="Fine cut width:">1</param>
            <param name="lathe-fine-cut-count" type="int" min="0" max="1000" gui-text="Fine cut count:">1</param>
            <param name="lathe-create-fine-cut-using" gui-text="Create fine cut using:" type="optiongroup" appearance="combo">
                <option value="Move path">Move path</option>
                <option value="Offset path">Offset path</option>
            </param>
            <param name="lathe-x-axis-remap" type="string" gui-text="Lathe X axis remap:">X</param>
            <param name="lathe-z-axis-remap" type="string" gui-text="Lathe Z axis remap:">Z</param>
        </page>

        <page name='lathe_modify_path' gui-text='Lathe modify path'>
            <label xml:space="preserve">
            This function modifies path so it will be possible to be cut it with a rectangular cutter.
        </label>
            <param name="lathe-rectangular-cutter-width" type="float" precision="5" min="0" max="1000" gui-text="Lathe width:">4</param>
        </page>


        <page name='path-to-gcode' gui-text='Path to Gcode'>
            <param name="biarc-tolerance" type='float' precision="5" gui-text='Biarc interpolation tolerance:'>1</param>
            <param name="biarc-max-split-depth" type="int" gui-text="Maximum splitting depth:">4</param>
            <param name="path-to-gcode-order" gui-text="Cutting order:" type="optiongroup" appearance="combo">
                <option value="subpath by subpath">Subpath by subpath</option>
                <option value="path by path">Path by path</option>
                <option value="pass by pass">Pass by Pass</option>
            </param>

            <param name="path-to-gcode-depth-function" type="string" gui-text="Depth function:">d</param>
            <param name="path-to-gcode-sort-paths" type="bool" gui-text="Sort paths to reduce rapid distance">true</param>

            <label xml:space="preserve">
Biarc interpolation tolerance is the maximum distance between path and its approximation.
The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance.
For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points.
</label>
        </page>

        <page name='options' gui-text='Options'>
            <param name="Zscale" type="float" precision="5" min="-100000" max="100000" gui-text="Scale along Z axis:">1</param>
            <param name="Zoffset" type="float" precision="5" min="-100000" max="100000" gui-text="Offset along Z axis:">0.0</param>
            <param name="auto_select_paths" type="bool" gui-text="Select all paths if nothing is selected">true</param>
            <param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" gui-text="Minimum arc radius:">0.05</param>
            <param name="comment-gcode" type="string" gui-text="Comment Gcode:"></param>
            <param name="comment-gcode-from-properties" type="bool" gui-text="Get additional comments from object's properties">false</param>

        </page>

        <page name='preferences' gui-text='Preferences'>
            <param name="filename" type="string" gui-text="File:">output.ngc</param>
            <param name="add-numeric-suffix-to-filename" type="bool" gui-text="Add numeric suffix to filename">true</param>

            <param name="directory" type="string" gui-text="Directory:">/home</param>

            <param name="Zsafe" type="float" precision="5" min="-1000" max="1000" gui-text="Z safe height for G00 move over blank:">5</param>
            <param name="unit" type="optiongroup" appearance="combo" gui-text="Units (mm or in):">
                <option value="G21 (All units in mm)">mm</option>
                <option value="G20 (All units in inches)">in</option>
            </param>
            <param name="postprocessor" type="optiongroup" appearance="combo" gui-text="Post-processor:">
                <option context="GCode postprocessor" value=" ">None</option>
                <option value="parameterize();">Parameterize Gcode</option>
                <option value="flip(y);parameterize();">Flip y axis and parameterize Gcode</option>
                <option value="round(4);">Round all values to 4 digits</option>
                <option value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</option>
            </param>
            <param name="postprocessor-custom" type="string" gui-text="Additional post-processor:"></param>


            <param name="create-log" type="bool" gui-text="Generate log file">false</param>
            <param name="log-filename" type="string" gui-text="Full path to log file:"></param>

        </page>

        <page name='help' gui-text='Help'>
            <label xml:space="preserve">
Gcodetools plug-in:
Converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.
This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed.

Tutorials, manuals and support can be found at
English support forum:
    http://www.cnc-club.ru/gcodetools

and Russian support forum:
    http://www.cnc-club.ru/gcodetoolsru

Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.

Gcodetools ver. 1.7
</label>

        </page>

    </param>
    <effect>
        <object-type>path</object-type>
        <effects-menu>
            <submenu name="Gcodetools"/>
        </effects-menu>
    </effect>
    <script>
        <command location="inx" interpreter="python">gcodetools.py</command>
    </script>
</inkscape-extension>
