added reverse subpaths and number subpaths extensions

This commit is contained in:
Mario Voigt 2021-04-25 23:29:07 +02:00
parent 06e5d0cad3
commit 8386b76eda
6 changed files with 170 additions and 512 deletions

View File

@ -1,18 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Animate Order - joinery_2021-4-25_1.24.3.svg</title>
<meta name="description" content="SVG Drawing Animation">
</head>
<body>
<button onclick="vi.reset().play();">replay</button>
<br/>
<object id="animate_order" type="image/svg+xml" data="drawing.svg"></object>
<script src="./vivus-0.4.6/dist/vivus.js"></script>
<script>
var vi = new Vivus('animate_order', {type: 'oneByOne', duration:1200.0, reverseStack:false});
</script>
</body>
</html>

View File

@ -1,494 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
width="96.550346mm"
height="91.824226mm"
viewBox="0 0 96.550345 91.824227"
id="svg274"
sodipodi:docname="joinery_2021-4-25_1.24.3.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs278" />
<sodipodi:namedview
id="namedview276"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
objecttolerance="10.0"
gridtolerance="10.0"
guidetolerance="10.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.93602498"
inkscape:cx="6.9442591"
inkscape:cy="277.23619"
inkscape:window-width="1920"
inkscape:window-height="964"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="shape" />
<g
id="g272"
transform="translate(-973.35126,-374.04121)">
<g
fill="none"
stroke="none"
stroke-width="none"
stroke-linecap="none"
stroke-linejoin="miter"
stroke-miterlimit="none"
stroke-dasharray="none"
stroke-dashoffset="0"
font-family="none"
font-weight="none"
font-size="12px"
text-anchor="start"
mix-blend-mode="normal"
id="g270">
<g
stroke-opacity="0"
stroke="#000000"
stroke-width="1"
stroke-linecap="butt"
stroke-miterlimit="10"
font-family="sans-serif"
font-weight="normal"
id="g2" />
<g
stroke-width="1"
stroke-linecap="butt"
stroke-miterlimit="10"
font-family="sans-serif"
font-weight="normal"
id="g4" />
<g
stroke-width="1"
stroke-linecap="butt"
stroke-miterlimit="10"
font-family="sans-serif"
font-weight="normal"
id="g6" />
<g
stroke-width="1"
stroke-linecap="butt"
stroke-miterlimit="10"
font-family="sans-serif"
font-weight="normal"
id="g8" />
<g
stroke="#00aaff"
stroke-width="2"
stroke-linecap="butt"
stroke-miterlimit="10"
font-family="sans-serif"
font-weight="normal"
id="g10" />
<g
stroke-width="1"
stroke-linecap="butt"
stroke-miterlimit="10"
font-family="sans-serif"
font-weight="normal"
id="g12" />
<g
id="shape"
stroke-width="1"
stroke-linecap="round">
<path
d="m 1021.6264,380.69814 -40.49996,29.425"
id="joint"
font-family="Roboto, sans-serif"
font-weight="400"
style="fill:none;stroke:#ff0000;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 996.59544,457.73314 -15.469,-47.61"
id="path15"
font-family="Roboto, sans-serif"
font-weight="400"
style="fill:none;stroke:#ff0000;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 996.59544,457.73314 h 50.06096"
id="path17"
font-family="Roboto, sans-serif"
font-weight="400"
style="fill:none;stroke:#ff0000;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1046.6564,457.73314 15.47,-47.61"
id="path19"
font-family="Roboto, sans-serif"
font-weight="400"
style="fill:none;stroke:#ff0000;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1062.1264,410.12314 -40.5,-29.425"
id="path21"
font-family="Roboto, sans-serif"
font-weight="400"
style="fill:none;stroke:#ff0000;stroke-width:0.2646;stroke-opacity:1" />
<g
id="3_joint">
<g
id="g56"
fill="none"
stroke="#00ffff"
stroke-miterlimit="4"
font-family="Roboto, sans-serif"
font-weight="400">
<path
d="m 1046.6564,457.73314 15.47,-47.61"
id="path54"
style="fill:none;stroke:#000000;stroke-width:0.2646;stroke-opacity:1" />
</g>
<path
d="m 1046.6564,457.73314 7.6085,2.47222 c 1.0313,-3.174 2.0626,-6.348 3.094,-9.522 1.0313,-3.174 2.0626,-6.348 3.094,-9.522 1.0313,-3.174 2.0626,-6.348 3.094,-9.522 1.0313,-3.174 2.0626,-6.348 3.094,-9.522 1.0313,-3.174 2.0626,-6.348 3.094,-9.522 l -7.6085,-2.47222"
font-family="sans-serif"
font-weight="normal"
id="path58"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1046.9233,454.75751 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path60"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1048.8571,448.80626 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path62"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1050.7908,442.85501 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path64"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1052.7246,436.90376 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path66"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1054.6583,430.95251 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path68"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1056.5921,425.00126 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path70"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1058.5258,419.05001 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path72"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1060.4596,413.09876 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path74"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
</g>
<g
id="4_joint">
<g
id="g102"
fill="none"
stroke="#00ffff"
stroke-miterlimit="4"
font-family="Roboto, sans-serif"
font-weight="400">
<path
d="m 1062.1264,410.12314 -40.5,-29.425"
id="path100"
style="fill:none;stroke:#000000;stroke-width:0.2646;stroke-opacity:1" />
</g>
<path
d="m 1062.1264,410.12314 4.7023,-6.47213 c -2.7,-1.96167 -5.4,-3.92333 -8.1,-5.885 -2.7,-1.96167 -5.4,-3.92333 -8.1,-5.885 -2.7,-1.96167 -5.4,-3.92333 -8.1,-5.885 -2.7,-1.96167 -5.4,-3.92333 -8.1,-5.885 -2.7,-1.96167 -5.4,-3.92333 -8.1,-5.885 l -4.7023,6.47213"
font-family="sans-serif"
font-weight="normal"
id="path104"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1058.8952,408.28408 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path106"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1053.8327,404.60595 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path108"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1048.7702,400.92782 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path110"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1043.7077,397.2497 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path112"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1038.6452,393.57157 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path114"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1033.5827,389.89345 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path116"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1028.5202,386.21532 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path118"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1023.4577,382.5372 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path120"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
</g>
<g
id="2_joint">
<g
id="g148"
fill="none"
stroke="#00ffff"
stroke-miterlimit="4"
font-family="Roboto, sans-serif"
font-weight="400">
<path
d="m 996.59544,457.73314 h 50.06096"
id="path146"
style="fill:none;stroke:#000000;stroke-width:0.2646;stroke-opacity:1" />
</g>
<path
d="m 996.59544,457.73314 v 8 c 3.3374,0 6.67476,0 10.01216,0 3.3374,0 6.6748,0 10.0122,0 3.3374,0 6.6748,0 10.0122,0 3.3374,0 6.6748,0 10.0122,0 3.3374,0 6.6748,0 10.0122,0 v -8"
font-family="sans-serif"
font-weight="normal"
id="path150"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 999.02425,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.38665,0 0.70005,0.3134 0.70005,0.7 0,0.3866 -0.3134,0.7 -0.70005,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path152"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1005.2819,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path154"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1011.5395,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path156"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1017.7971,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path158"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1024.0548,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path160"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1030.3124,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path162"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1036.57,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path164"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1042.8276,457.73314 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path166"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
</g>
<g
id="0_joint">
<g
id="g171"
fill="none"
stroke="#00ffff"
stroke-miterlimit="4"
font-family="Roboto, sans-serif"
font-weight="400">
<path
d="m 1021.6264,380.69814 -40.49996,29.425"
id="path169"
style="fill:none;stroke:#000000;stroke-width:0.2646;stroke-opacity:1" />
</g>
<path
d="m 1021.6264,380.69814 -4.7022,-6.47213 c -2.7001,1.96167 -5.4,3.92333 -8.1,5.885 -2.7001,1.96167 -5.4,3.92333 -8.1001,5.885 -2.69995,1.96167 -5.39995,3.92333 -8.09995,5.885 -2.7,1.96167 -5.4,3.92333 -8.1,5.885 -2.7,1.96167 -5.4,3.92333 -8.1,5.885 l 4.70229,6.47213"
font-family="sans-serif"
font-weight="normal"
id="path173"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1018.3952,382.5372 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path175"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1013.3327,386.21532 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path177"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1008.2702,389.89345 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path179"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1003.2077,393.57157 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path181"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 998.14519,397.2497 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path183"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 993.08269,400.92782 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path185"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 988.02019,404.60595 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path187"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 982.95769,408.28408 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path189"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
</g>
<g
id="1_joint">
<g
id="g240"
fill="none"
stroke="#00ffff"
stroke-miterlimit="4"
font-family="Roboto, sans-serif"
font-weight="400">
<path
d="m 996.59544,457.73314 -15.469,-47.61"
id="path238"
style="fill:none;stroke:#000000;stroke-width:0.2646;stroke-opacity:1" />
</g>
<path
d="m 996.59544,457.73314 -7.60847,2.47207 c -1.03127,-3.174 -2.06253,-6.348 -3.0938,-9.522 -1.03127,-3.174 -2.06253,-6.348 -3.0938,-9.522 -1.03127,-3.174 -2.06253,-6.348 -3.0938,-9.522 -1.03127,-3.174 -2.06253,-6.348 -3.0938,-9.522 -1.03127,-3.174 -2.06253,-6.348 -3.0938,-9.522 l 7.60847,-2.47207"
font-family="sans-serif"
font-weight="normal"
id="path242"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 994.92863,454.75751 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path244"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 992.995,448.80626 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path246"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 991.06138,442.85501 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path248"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 989.12775,436.90376 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path250"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 987.19413,430.95251 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path252"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 985.2605,425.00126 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path254"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 983.32688,419.05001 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path256"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 981.39325,413.09876 c 0,-0.3866 0.3134,-0.7 0.7,-0.7 0.3866,0 0.7,0.3134 0.7,0.7 0,0.3866 -0.3134,0.7 -0.7,0.7 -0.3866,0 -0.7,-0.3134 -0.7,-0.7 z"
font-family="sans-serif"
font-weight="normal"
id="path258"
style="fill:none;stroke:#0000ff;stroke-width:0.2646;stroke-opacity:1" />
</g>
</g>
<path
d="m 1046.6564,457.73314 15.47,-47.61"
font-family="sans-serif"
font-weight="normal"
id="path264"
style="fill:none;stroke:none;stroke-width:0.2646;stroke-opacity:1" />
<path
d="m 1046.6564,457.73314 15.47,-47.61"
font-family="sans-serif"
font-weight="normal"
id="path268"
style="fill:none;stroke:none;stroke-width:0.2646;stroke-opacity:1" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<name>Number Subpaths</name>
<id>fablabchemnitz.de.number_subpaths</id>
<param name="tab" type="notebook">
<page name="Options" gui-text="Options">
<param name="fontsize" type="string" gui-text="Font size:">10px</param>
<param name="dotsize" type="string" gui-text="Dot size:">10px</param>
<param name="showID" type="boolean" gui-text="Show path id">false</param>
<param name="help" type="description">Green dot = start, red dot = end.</param>
</page>
<page name="Help" _gui-text="Help">
<param name="info" type="description" xml:space="preserve">This extension mark the selection's start and endnodes for each subpath and number the subpaths.</param>
</page>
</param>
<effect>
<object-type>path</object-type>
<effects-menu>
<submenu name="FabLab Chemnitz">
<submenu name="Shape/Pattern from existing Path(s)" />
</submenu>
</effects-menu>
</effect>
<script>
<command location="inx" interpreter="python">path_number_subpaths.py</command>
</script>
</inkscape-extension>

View File

@ -0,0 +1,84 @@
#!/usr/bin/env python3
#
# Copyright (C) 2005 Aaron Spike, aaron@ekips.org
# Modified by Ellen Wasbo, ellen@wasbo.net 2021 - number subpaths and mark start/end node with green/red dot
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
import math
import inkex
from inkex import TextElement, Circle
class NumberSubpaths(inkex.EffectExtension):
"""Mark start and end nodes with numbered dots according to the options"""
def add_arguments(self, pars):
pars.add_argument("--dotsize", default="10px", help="Size of the dots on the path nodes")
pars.add_argument("--fontsize", default="10px", help="Size of node labels")
pars.add_argument("--showID", type=inkex.Boolean, default=False)
pars.add_argument("--tab", help="The selected UI-tab when OK was pressed")
def effect(self):
if not self.svg.selected:
raise inkex.AbortExtension("Please select an object.")
for id, node in self.svg.selection.id_dict().items():
self.add_dot(node)
def add_dot(self, node):
"""Add a dot label for this path element"""
group = node.getparent().add(inkex.Group())
dot_group = group.add(inkex.Group())
num_group = group.add(inkex.Group())
group.transform = node.transform
styleStart = inkex.Style({'stroke': 'none', 'fill': '#00ff00'})
styleEnd = inkex.Style({'stroke': 'none', 'fill': '#ff0000'})
idTxt=''
if self.options.showID==True:
idTxt=node.get('id')+', '
cc=0
for sub in node.path.to_superpath():
x=sub[0][1][0]
y=sub[0][1][1]
circle = dot_group.add(Circle(cx=str(x), cy=str(y), r=str(self.svg.unittouu(self.options.dotsize) / 2)))
circle.style = styleStart
num_group.append(self.add_text(
x + (self.svg.unittouu(self.options.dotsize) / 3),
y - (self.svg.unittouu(self.options.dotsize) / 3), idTxt+str(cc)))
x=sub[-1][1][0]
y=sub[-1][1][1]
circle = dot_group.add(Circle(cx=str(x), cy=str(y), r=str(self.svg.unittouu(self.options.dotsize) *0.9 / 2)))
circle.style = styleEnd
num_group.append(self.add_text(
x + (self.svg.unittouu(self.options.dotsize) / 3),
y - (self.svg.unittouu(self.options.dotsize) / 3), idTxt+str(cc)))
cc+=1
def add_text(self, x, y, text):
"""Add a text label at the given location"""
elem = TextElement(x=str(x), y=str(y))
elem.text = str(text)
elem.style = {
'font-size': self.svg.unittouu(self.options.fontsize),
'fill-opacity': '1.0',
'stroke': 'none',
'font-weight': 'normal',
'font-style': 'normal',
'fill': '#999'}
return elem
if __name__ == '__main__':
NumberSubpaths().run()

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<name>Reverse Order Of Subpaths</name>
<id>fablabchemnitz.de.reverse_order_subpaths</id>
<param name="help" type="description">Reverse order of subpaths (combined paths) without reversing the node order nor the order of the paths.</param>
<effect>
<object-type>path</object-type>
<effects-menu>
<submenu name="FabLab Chemnitz">
<submenu name="Modify existing Path(s)"/>
</submenu>
</effects-menu>
</effect>
<script>
<command location="inx" interpreter="python">reverse_order_subpaths.py</command>
</script>
</inkscape-extension>

View File

@ -0,0 +1,42 @@
#!/usr/bin/env python3
#
# Copyright (C) Ellen Wasbo, cutlings.wasbo.net 2021
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
import inkex
from inkex import PathElement, CubicSuperPath
class ReverseOrderSubpaths(inkex.EffectExtension):
def effect(self):
"""Reverse order of subpaths (combined paths) without reversing node-order or order of paths"""
if not self.svg.selected:
raise inkex.AbortExtension("Please select an object.")
for id, elem in self.svg.selection.id_dict().items():
new=[]
sub=elem.path.to_superpath()
i=0
while i<len(sub):
new.append(sub[-1-i])
i+=1
elem.path = CubicSuperPath(new).to_path(curves_only=True)
if __name__ == '__main__':
ReverseOrderSubpaths().run()