master
myf 2 years ago
parent 29722b6fb2
commit a4c64b79c0

@ -1,3 +1,15 @@
## Basement Ooza Basics
The hacked together pipeline is as follows given an svg `$SVG`. You may use the `Woodbine.svg` file as an example for testing.
1. Ensure that your SVG has a size set that fits in Ooza
1. One way to ensure is by setting width & height on the root `<svg>` element
2. Covert the SVG to gcode via `cargo run --release -- $SVG -o $OUTFILE`
3. Rewrite the gcode to center where the print happens via `python rewritegcode.py $OUTFILE $UPDATEFILE`
4. (Optional) Verify the maximum x & y values fit on the board via `python parsegcode.py $UPDATEFILE`
5. Generate the final file by concatenating the header to the updated file via `cat ooza/config.g $UPDATEFILE > $FINALEFILE`
6. Upload `$FINALFILE` to Jobs in Duet and run it
# svg2gcode
[![Build, test, and publish coverage for svg2gcode](https://github.com/sameer/svg2gcode/actions/workflows/lib.yml/badge.svg)](https://github.com/sameer/svg2gcode/actions/workflows/lib.yml)

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 287.83 846.84" width="180" height="540">
<defs>
<style>
.cls-1 {
fill: #fff;
stroke: #231f20;
stroke-miterlimit: 10;
}
</style>
</defs>
<g id="Layer_1-2" data-name="Layer 1">
<g>
<path class="cls-1" d="m287.33,670.03c0,1.29-.18,2.56-.53,3.75-2.84,9.65-13.68,10.6-25.15,11.61-12.96,1.14-29.1,2.55-40.51,13.93-6.62,6.6-9.16,14.07-11.2,20.07-2.14,6.29-3.18,12.46-3.18,18.86,0,7.42,1.38,14.12,2.72,20.6,1.24,6.01,2.41,11.69,2.41,17.5s-1.31,11.42-4,16.38c-5.49,10.13-12.75,12.42-34.28,19.21-5.25,1.66-11.21,3.54-18.43,5.91-23.36,7.69-40.09,14.09-52.3,18.76-24.64,9.42-34.84,13.32-46.44,5.7-9.21-6.05-11.61-14.63-14.15-23.72-2.67-9.55-5.7-20.37-17.35-33.68-.59-.68-1.2-1.35-1.8-2.02-4.33-4.82-8.81-9.8-8.81-16.07,0-1.43.24-2.83.72-4.16,2.25-6.24,9.61-10.45,19.68-11.26,3.77-.3,16.45-.63,21.13,7.84.92,1.67,1.39,3.46,1.39,5.32h0c0,2.8-1.05,5.01-1.9,6.79-.86,1.81-1.6,3.37-1.6,6.03v.11c.04,5.96,3.74,11.67,6.44,15.84,2,3.1,3.83,5.14,3.85,5.16,2.17,2.4,14.31,5.83,33.78,3.32,21.37-2.75,47.87-12.72,58.12-32.42,2.25-4.32,3.11-7.88,4.31-12.81,1.72-7.08,3.85-15.9,11-30.09,1.49-2.96,2.82-5.4,3.98-7.54,2.59-4.76,3.84-7.14,3.84-8.97,0-.31-.03-.64-.09-1.01-1.39-8.19-15.78-17.83-30.59-17.41-5.71.16-8.25,1.8-13.8,5.39-4.46,2.88-10.56,6.81-20.29,10.9-31.8,13.37-53.73,14.37-65.19,2.97-5.15-5.12-8.11-12.81-8.11-21.1,0-4.62.94-9.08,2.72-12.91,5.04-10.84,15.73-14.93,20.87-16.89l.24-.09c17.17-6.58,33.77-14.98,46.08-22.05-.63.12-1.16.23-1.61.33-2.15.45-3.85.8-6.66.42-10.35-1.38-14.91-8.99-19.33-16.35-3.39-5.65-6.89-11.48-13.55-16.67-9.61-7.49-18.8-10.89-23.98-8.88-5.17,2.01-8.26,10.06-10.99,17.17-3.35,8.72-7.15,18.61-17.08,18.67-4.9.03-9.32-2.57-13.13-7.72-2.7-3.66-4.07-8.1-4.07-13.2,0-6.96,2.52-14.55,5.32-22.36,12.6-35.09,17.81-49.62,30.04-52.48,12.25-2.87,22.25,5.66,32.83,14.68,16.1,13.73,28.85,25.23,39.1,34.46,25.77,23.23,35.12,31.19,43.77,29.82.63-.1.82-.17.83-.18.24-.13,1.08-.84,1.83-1.47,3.05-2.58,8.74-7.38,23.06-15.81,26.53-15.63,37.18-17.19,46.61-14.61,13.58,3.72,20.32,13,20.97,20.56.04.48.06.96.06,1.45,0,10.87-10.23,18.08-16.34,22.38-9.02,6.35-25.31,14.15-51.71,15.21-8.66.35-14.86-.18-19.38-.57-2.38-.2-5.06-.43-6.06-.27-.61.77-1.23,2.56-1.23,5.43,0,9.19,5.64,19,10.08,20.29,1.68.49,4.06-.92,9.96-4.77,2.03-1.32,4.32-2.82,6.97-4.41,10.33-6.23,20.69-11.21,30.81-14.79,20.29-7.18,37.75-8.09,51.89-2.7,6.45,2.46,13.06,6.61,18.12,11.4,4.25,4.02,9.31,10.28,9.31,17.22Z"/>
<path class="cls-1" d="m30.71,779.86c23.81,27.2,15.22,46.37,29.94,56.04,12.67,8.32,23.72-2.81,92.12-25.33,35.87-11.81,43.33-12.21,48.36-21.49,10.39-19.16-9.84-38.76,1.54-72.16,2.19-6.44,5.17-15.17,13.05-23.03,23-22.93,60.46-11.19,63.72-22.26,1.98-6.74-9.79-18.29-22.26-23.03-29.45-11.21-69.48,12.96-76,16.89-11.17,6.74-16.29,11.94-23.03,9.98-12.7-3.69-20.39-29.63-12.28-38.38,4.55-4.92,10.68-.73,30.71-1.54,28.3-1.14,43.02-10.59,47.6-13.82,5.38-3.79,13.68-9.64,13.05-16.89-.59-6.76-8.71-12-15.35-13.82-6.33-1.73-14.94-1.35-40.69,13.82-25.25,14.88-21.85,17.38-28.4,18.42-17.63,2.8-31.6-17.02-89.05-66.02-10.06-8.58-17.85-14.98-26.1-13.05-8.16,1.91-13.63,17.14-24.57,47.6-4.24,11.81-7.26,21.69-2.3,28.4.84,1.13,3.42,4.62,6.91,4.61,10.07-.05,9.73-29.26,25.33-35.31,12.46-4.83,28.51,7.67,31.47,9.98,16.67,12.99,16.63,29.8,29.17,31.47,3.18.42,2.85-.7,16.89-2.3,11.01-1.26,16.51-1.89,16.89-.77,1.11,3.32-34.22,25.51-69.86,39.15-4.32,1.66-13.09,4.89-16.89,13.05-3.59,7.73-2.39,19.14,3.84,25.33,13.63,13.55,48.28-1.02,56.81-4.61,21.24-8.93,23.1-16.49,36.85-16.89,17.15-.49,36.16,10.66,38.38,23.8,1.11,6.58-2.51,10.48-8.44,22.26-11.76,23.34-9.07,30.91-15.35,42.99-20.3,39.01-92.18,44.19-104.4,30.71-.43-.47-2.44-2.8-4.61-6.14-2.99-4.62-7.62-11.76-7.68-19.96-.06-8.63,4.98-11.14,3.07-14.59-3.5-6.32-24.29-4.86-26.87,2.3-1.54,4.27,3.84,9.32,8.44,14.59Z"/>
<path class="cls-1" d="m132.81,547.25c-10.16,5.55-15.16,27.73-5.37,38.38,8.5,9.26,24.44,5.8,29.94,4.61,14.76-3.2,25.39-14.2,46.06-36.08,16.09-17.03,15.95-19.92,15.35-21.49-3.36-8.85-34.8-11.93-51.43,1.54-4.1,3.32-6.83,7.27-13.82,9.98-9.99,3.88-14.77-.18-20.73,3.07Z"/>
<path class="cls-1" d="m210.03,534.8c-1.62,2.29-5.03,6.53-12.18,14.09-20.37,21.56-29.89,31.2-42.11,33.85-4.24.92-17.14,3.72-22.65-2.29-2.1-2.29-3.26-5.94-3.26-10.28,0-7.5,3.44-14.42,6.66-16.18.85-.46,1.65-.5,4.38-.39,3.67.15,8.71.35,15.44-2.26,6.49-2.52,10.2-5.98,13.17-8.76.93-.87,1.81-1.69,2.7-2.41,11.38-9.22,31.14-8.21,37.85-5.37Z"/>
<path class="cls-1" d="m135.88,565.68c-.7,3.19.94,6.82,3.07,8.44,5.15,3.93,16.92-.93,24.57-7.68,10.83-9.56,12.59-22.21,16.12-21.49,1.76.35,3.29,3.87,2.3,6.14-1.34,3.08-6.83,2.68-27.64,4.61-3.73.35-10.32,1.04-15.35,5.37-1.57,1.35-2.67,2.78-3.07,4.61Z"/>
<path class="cls-1" d="m226.47,495.09c0,5.41-4.73,7.44-7.56,8.66-2,.86-4.82,1.97-8.38,3.39-8.26,3.27-20.73,8.21-35.39,14.87l-.64.29c-7.94,3.61-16.94,7.71-26.34,3.59-6.7-2.93-8.97-8.15-10.47-11.6-.96-2.2-1.4-3.08-2.24-3.64-2.91-1.95-10.49,1.52-17.17,4.57-11.06,5.05-24.82,11.34-38.48,5.28-1.8-.8-10.99-5.29-15.44-15.46-1.57-3.59-2.36-7.48-2.36-11.57,0-10.68,5.41-19.31,6.03-20.26,5.62-8.64,15.29-14.63,27.98-17.3,9.92-2.09,21.41-2.03,31.53.17,20.38,4.44,38.87,18.43,46.76,24.41,1.65,1.25,3.11,2.4,4.52,3.52,5.57,4.4,8.92,7.06,14.51,8.1,8.71,1.62,16.42-1.74,20.13-3.36,2.42-1.06,4.93-2.15,8.11-.88l2.97,1.18,1.31,2.99c.42.97.63,2,.63,3.06Z"/>
<path class="cls-1" d="m139.72,504.26c-13.53-9.05-36.68,18.14-56.81,9.21-.7-.31-8.11-3.72-11.52-11.52-5.09-11.63,2.69-23.98,3.07-24.57,9.88-15.2,34.64-17.47,51.43-13.82,18.73,4.08,36.41,17.46,43.76,23.03,8.5,6.44,13.1,11.35,22.26,13.05,14.67,2.73,26.51-5.45,26.87-4.61.44,1.02-19.23,7.42-46.83,19.96-7.35,3.34-14.27,6.66-20.73,3.84-7.3-3.2-5.45-10.53-11.52-14.59Z"/>
<path class="cls-1" d="m149.69,504.26c4.86,1.56,11.86-2.24,12.28-6.14.69-6.33-15.9-12.42-17.66-13.05-9.33-3.35-17.39-3.22-26.1-3.07-5.37.09-11.77.24-19.96,2.3-9.26,2.34-18.75,6.61-18.42,7.68.73,2.39,49.09-16.59,61.41-.77,3.67,4.71,3.29,11.39,8.44,13.05Z"/>
<path class="cls-1" d="m241.92,407.9c0,9.57-3.48,17.58-5.34,21.88-14.55,33.54-54.3,38.9-55.98,39.11-8.05,1.01-35.03,3.06-44.43-12.94-2.36-4.02-2.64-7.59-2.64-9.93,0-.93.05-1.8.09-2.56.04-.63.07-1.23.07-1.75,0-1.02-.11-1.76-.69-2.81-3.77-6.79-18.46-9.87-30.24-6.35-3.49,1.05-4.95,2.15-8.46,4.84-1.98,1.51-4.44,3.39-7.88,5.7-16.26,10.92-36.5,24.52-54.99,18.6-16.64-5.33-28.24-25.87-28.24-40.97,0-5.05,1.27-9.26,3.79-12.5,6.12-7.89,17.12-7.01,19.26-6.76,12.33,1.47,18.04,11.44,22.2,18.72,2.44,4.26,4.74,8.28,7.52,9.85,7.54,4.24,24.48-9.5,40.86-22.79,26.1-21.17,58.59-47.52,95.34-42.62,3.91.52,38.49,5.84,47.66,31.09,1.39,3.84,2.1,7.94,2.1,12.2Z"/>
<path class="cls-1" d="m229.53,426.73c-12.71,29.31-47.65,34.26-49.9,34.55-3.2.4-29.43,3.42-36.85-9.21-3.61-6.15.65-10.19-3.07-16.89-6.05-10.91-25.07-14.19-39.15-9.98-7.29,2.18-8.78,5.04-18.42,11.52-15.07,10.12-33.41,22.44-48.36,17.66-17-5.44-27.74-32.42-20.73-41.45,3.69-4.76,11.79-3.9,12.28-3.84,14.74,1.75,15.93,21.48,26.87,27.64,27.07,15.23,78.48-72.56,138.95-64.48,1.67.22,33.77,4.92,41.45,26.1,4.21,11.61-.77,23.09-3.07,28.4Z"/>
<path class="cls-1" d="m157.37,409.07c-.98.91-13.64,12.97-9.21,23.8,4.3,10.52,20.98,10.72,23.03,10.75,17.54.22,37.36-13.16,36.08-25.33-1.1-10.47-17.35-15.78-18.42-16.12-10.7-3.36-23.08-.88-31.47,6.91Z"/>
<path class="cls-1" d="m82.15,340.55c34.93,19.84,83.85,10.99,92.89,9.21,17.2-3.38,25.98-5.23,34.55-13.05,12.5-11.41,22.69-33.87,13.05-49.9-4.3-7.15-13.39-14.44-23.03-13.82-11.75.76-12.39,12.49-31.47,25.33-16.16,10.87-25.8,9.26-29.17,18.42-3.74,10.16,5.74,18.56,1.54,23.8-6.04,7.52-30.9-3.24-32.24-3.84-25.49-11.26-26.2-25.76-43.76-28.4-12.75-1.92-27.81,3.42-35.31,14.59-4.45,6.63-7.92,17.83-3.84,21.49,6.77,6.08,26.82-15.24,49.13-7.68,3.28,1.11,4.92,2.27,7.68,3.84Z"/>
<path class="cls-1" d="m218.78,301.24c0,11.47-7.45,23.49-14.37,29.81-6.87,6.28-13.99,7.87-30.85,11.19-5.05.99-15.01,2.66-27.14,3.21.02-.03.04-.05.06-.08,1.82-2.27,2.79-5.07,2.79-8.1,0-3.12-.98-5.96-1.92-8.7-.83-2.41-1.61-4.68-1.61-6.75,0-.85.14-1.64.42-2.41.69-1.88,1.73-2.56,7.96-5.16,4.58-1.92,10.86-4.54,18.3-9.55,9.84-6.62,14.7-12.37,19.04-17.42,4.55-5.29,5.79-6.44,8.64-6.62,6.18-.4,12.83,4.91,15.96,10.11,1.8,3,2.72,6.52,2.72,10.47h0Zm-124.9,36.53c-2.72-1.14-5.37-2.43-7.93-3.89-.51-.29-.98-.57-1.43-.83-2.07-1.21-4.2-2.46-7.57-3.61-15.77-5.34-30.33,1.04-39.96,5.26-1.73.76-3.83,1.68-5.55,2.32.57-3.02,2.18-6.95,4.13-9.85,5.46-8.14,17.15-12.88,27.8-11.27,6.5.98,9.7,4.07,15.01,9.19,3.97,3.83,8.59,8.29,15.52,12.68Z"/>
<path class="cls-1" d="m228.76,249.4c-2.66,5.34-9.21,8.02-43.76,9.98-36.57,2.07-41.91-.22-46.06-3.84-9.7-8.48-13.46-24.77-8.44-29.17,8.22-7.2,31.68,24.83,62.95,19.19,16.44-2.96,27.59-15,33.78-9.98,3.37,2.73,3.78,9.32,1.54,13.82Z"/>
<path class="cls-1" d="m222.49,243.17c0,1.01-.22,2.05-.59,2.79-.8,1.6-6.32,2.97-16.46,4.1,3.84-1.48,7.26-3.18,10.28-4.68,2.17-1.08,4.97-2.47,6.72-3.06.03.24.05.52.05.85Zm-49.51,9.09c-22.91.84-27.05-.82-28.98-2.51-4.7-4.11-7.64-10.99-8-15.77,2.29,1.15,5.4,3.08,7.88,4.61,7.49,4.63,17.41,10.77,29.1,13.66Z"/>
<path class="cls-1" d="m93.65,237.88c-.73,4.52,6.28,11.45,13.05,10.75,3.46-.36,5.68-2.59,6.14-3.07,3.58-3.75,4.05-10.13,1.54-13.05-4.51-5.24-19.75-.66-20.73,5.37Z"/>
<path class="cls-1" d="m108.27,237.87c-.08.9-.46,1.85-.98,2.39-.18.18-.76.67-1.38.73-1.17.12-2.67-.78-3.67-1.71,1.74-.87,4.37-1.51,6.02-1.42Z"/>
<path class="cls-1" d="m204.21,312.91c.22,3.59-7.53,7.05-23.03,13.82-13.84,6.05-18.11,6.68-21.49,4.61-2.53-1.55-4.51-4.58-4.61-7.68-.32-9.94,18.84-16.27,20.73-16.89,3.96-1.31,9.41-3.03,16.12-1.54,3.55.79,12.03,3.51,12.28,7.68Z"/>
<path class="cls-1" d="m183.69,198.73c28.33-9.03,39.62-9.94,46.06-20.73,1.07-1.8,4.27-7.15,2.3-9.98-5.26-7.57-43.49,8.45-45.29,9.21-12.16,5.16-18.57,9.43-29.17,8.44-3.36-.31-11.21-1.05-16.12-6.91-5.8-6.92-6.08-19.29-.77-26.87,11.98-17.12,53.67-11.66,60.65-10.75,12.22,1.6,22.07,4.66,26.87-.77,3.45-3.9,3.32-11.1.77-16.12-7.49-14.72-37.07-13.28-57.58-12.28-25.32,1.23-41.78,2.03-56.81,14.59-2.93,2.45-23.67,19.77-19.96,41.45.3,1.78,2.93,17.11,13.82,22.26,6.85,3.24,13.64.89,20.73,6.91,1.72,1.46,5.28,4.49,4.61,6.91-1.95,7-35.91.35-36.85,4.61-.58,2.62,11.45,9.94,25.33,9.98,9.01.03,14.1-3.03,27.64-8.44,9.28-3.71,17.44-6.31,33.78-11.52Z"/>
<path class="cls-1" d="m223.16,174.07c-3.37,5.63-8.85,7.48-25.68,12.45-4.68,1.38-9.98,2.95-16.12,4.9-16.49,5.25-24.76,7.89-34.3,11.7-2.09.84-3.98,1.62-5.7,2.33.13-.65.19-1.31.19-1.97,0-5.85-4.81-9.93-7.4-12.13-5.92-5.03-11.71-5.88-16.35-6.55-2.43-.35-4.35-.63-6.06-1.44-5.37-2.54-8.49-10.54-9.54-16.62-.22-1.29-.33-2.61-.33-3.92,0-14.48,13.51-26.88,17.65-30.34,13.05-10.9,27.81-11.62,52.26-12.81,15.77-.77,45.12-2.2,50.36,8.1.66,1.3,1.04,2.95,1.04,4.53,0,1.75-.47,2.74-.72,3.02-1.08,1.22-8.9-.03-13.1-.71-2.24-.36-4.55-.73-7.02-1.05-10.86-1.42-20.9-1.9-29.85-1.44-18.8.97-31.61,6.15-38.09,15.4-3.34,4.77-5.18,10.95-5.18,17.39,0,7.24,2.26,13.92,6.35,18.81,6.94,8.28,17.37,9.26,21.29,9.62,10.57.99,17.98-2.36,26.56-6.23,1.99-.9,4.05-1.83,6.32-2.79,12.71-5.39,26.42-9.6,33.56-10.5-.05.09-.1.18-.16.27Z"/>
<path class="cls-1" d="m182.93,46.73c1.45-5.17,7.89-28.07-5.37-39.92-9.71-8.67-24.06-6.14-28.4-5.37-13.39,2.36-21.7,10.45-32.24,20.73-12.24,11.92-18.35,17.88-19.96,27.64-2.59,15.72,7.46,33.56,21.49,40.69,8.28,4.2,22.27,1.84,49.9-3.07,17.79-3.16,26.93-4.83,38.38-9.21,14.87-5.69,29.15-11.38,36.08-25.33,1.44-2.91,5.03-10.38,3.07-19.19-2.58-11.65-14.21-22.89-23.8-20.73-7.94,1.79-11.86,12.2-13.05,15.35-2.64,7-1.44,10.98-2.3,16.89-2.03,13.85-13.18,23.14-17.66,26.87-19.65,16.37-49.1,15.82-66.79,4.61-5.99-3.79-10.68-8.84-9.98-9.98,1.07-1.75,13.88,7.27,33.01,8.44,6.69.41,12.7.78,19.19-2.3,12.8-6.08,16.87-20.57,18.42-26.1Z"/>
<path class="cls-1" d="m238.77,38.93c0,4.81-1.99,8.82-2.84,10.53-5.34,10.75-16.12,15.52-31.95,21.58-1.31.5-2.58.96-3.85,1.4,5.64-5.64,12.48-14.44,14.19-26.12.37-2.51.43-4.67.48-6.59.09-3.11.15-5.36,1.41-8.71,3.29-8.74,6.38-10.3,7.55-10.57,1.34-.3,3.25.26,5.26,1.53,4.38,2.78,8.22,8.27,9.35,13.37.26,1.16.39,2.37.39,3.58Zm-60.68-10.48c0,7.13-1.86,13.73-2.55,16.21-1.4,4.99-4.68,16.66-14.33,21.25-4.7,2.23-9.2,1.96-15.42,1.57-10.89-.67-19.71-4.26-24.98-6.41-1.82-.74-3.26-1.33-4.55-1.72-6.62-1.99-9.7,2.05-10.49,3.33-.09.15-.18.31-.27.47-.82-2.75-1.27-5.55-1.27-8.28,0-1.3.1-2.59.31-3.82,1.14-6.91,5.45-11.4,17.74-23.38,9.96-9.7,17.15-16.71,28.22-18.67,3.72-.66,15.03-2.65,21.96,3.54,3.75,3.35,5.65,8.7,5.65,15.9h0Z"/>
<path class="cls-1" d="m161.43,37.52c1.02,9.38-14.41,16.03-19.96,18.42-5.4,2.33-11.84,5.1-15.35,2.3-4.89-3.9-1.64-16.68,3.84-24.57,2.09-3.01,4.89-7.04,9.98-8.44,9.06-2.5,20.66,4.6,21.49,12.28Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,61 @@
; Configuration file for Duet 3 (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.10 on Mon Mar 14 2022 19:57:00 GMT+0100 (heure normale dEurope centrale)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M453 ; Put the machine into CNC Modes
M550 P"ooza" ; set printer name
; Drives
M569 P0.1 S1 ; physical drive 0.0 goes BACKWARDS X
M569 P0.2 S1 ; physical drive 0.1 goes FORWARDS Y1
M569 P0.4 S1 ; physical drive 0.2 goes FORWARDS Y2
M569 P0.3 S1 ; physical drive 0.3 goes BACKWARDS Z
M584 X0.1 Y0.2:0.4 Z0.3 ; set drive mapping
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X400.00 Y400.00 Z400.00 ; set steps per mm
M566 X500.00 Y500.00 Z500.00 ; set maximum instantaneous speed changes (mm/min)
M203 X2500.00 Y2500.00 Z2500.00 ; set maximum speeds (mm/min)
M201 X150.00 Y150.00 Z150.00 ; set accelerations (mm/s^2)
M906 X2400 Y2400 Z2400 I100 ; set motor currents (mA) and motor idle factor in per cent
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X798 Y1300 Z103 S0 ; set axis maxima
; Endstops
M574 X1 S1 P"!io6.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in
M574 Y2 S1 P"!io8.in" ; configure switch-type (e.g. microswitch) endstop for HIGH end on Y via pin io1.in
M574 Z2 S1 P"!io7.in" ; configure switch-type (e.g. microswitch) endstop for HIGH end on Z via pin io2.in
; Spindle
;M950 R0 C"vfd" L0:25000 Q1000 ; Create spindle index 0
;M563 P1 S"Spindle 1" R0 ; Create tool 1 with spindle 0 and call it "Spindle 1"
;M453
;T1 ; select tool 1
;M3 S0
;M5 ;stop spindle
; Fans
;M950 F0 C"!out6" Q500 ; create fan 0 on pin out7 and set its frequency
;M106 P0 S0.5 H-1 ; set fan 0 value. Thermostatic control is turned off
; Z-Probe
;M558 K0 P8 C"!io7.in" H10 F120 T3000 ; Z probe 0 via pin io6.in
;G31 Z10.0 ; set current probe status
; Tools
M950 P0 C"!out1" Q65535 ; power to omega pressure regulator. sets out1 pin to be always on, basically just voltage supply
;M950 P1 C"io3.out" Q10000 ;OMEGA pressure regulator control on 3.3v pwm (io3.out)
M950 P2 C"out7" Q65535 ; solenoid control, on out7
M950 F0 C"out9" Q2000 ;OMEGA pressure regulator control on 5v pwm
M106 P0 C"regulator" X0.45 H-1
; Custom settings are not defined

@ -0,0 +1,474 @@
# generated by SuperSlicer 2.4 on 2023-05-07 at 18:21:05 UTC
allow_empty_layers = 0
avoid_crossing_not_first_layer = 1
avoid_crossing_perimeters = 0
avoid_crossing_perimeters_max_detour = 0
bed_custom_model = G:\\My Drive\\Sync\\SuperSlicer\\Beds\\voron2_350bed.stl
bed_custom_texture = G:\\My Drive\\Sync\\SuperSlicer\\Beds\\V2_bed_smooth_pei.png
bed_shape = 0x0,798x0,798x1300,0x1300
bed_temperature = 110
before_layer_gcode =
between_objects_gcode =
bottom_fill_pattern = monotonicgapfill
bottom_solid_layers = 3
bottom_solid_min_thickness = 1
bridge_acceleration = 5000
bridge_angle = 0
bridge_fan_speed = -1
bridge_flow_ratio = 85%
bridge_internal_acceleration = 5000
bridge_internal_fan_speed = -1
bridge_overlap = 50%
bridge_overlap_min = 50%
bridge_speed = 140
bridge_speed_internal = 100%
bridge_type = nozzle
bridged_infill_margin = 200%
brim_acceleration = 5000
brim_ears = 0
brim_ears_detection_length = 1
brim_ears_max_angle = 120
brim_ears_pattern = concentric
brim_inside_holes = 0
brim_separation = 0
brim_speed = 50%
brim_width = 0
brim_width_interior = 0
chamber_temperature = 50
clip_multipart_objects = 1
color_change_gcode = M600
colorprint_heights =
compatible_printers_condition_cummulative = "printer_notes=~/.*Onyx 0\\.4.*/";printer_notes=~/.*Onyx.*/
compatible_prints_condition_cummulative = notes=~/.*Onyx.*/
complete_objects = 0
complete_objects_one_brim = 0
complete_objects_one_skirt = 0
complete_objects_sort = object
cooling_tube_length = 5
cooling_tube_retraction = 91.5
curve_smoothing_angle_concave = 0
curve_smoothing_angle_convex = 0
curve_smoothing_cutoff_dist = 2
curve_smoothing_precision = 0
default_acceleration = 0
default_filament_profile = ""
default_print_profile =
default_speed = 100
deretract_speed = 0
disable_fan_first_layers = 1
dont_support_bridges = 1
draft_shield = disabled
duplicate_distance = 6
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
end_gcode = PRINT_END
enforce_full_fill_volume = 1
enforce_retract_first_layer = 1
ensure_vertical_shell_thickness = 1
exact_last_layer_height = 0
external_infill_margin = 4
external_perimeter_acceleration = 1000
external_perimeter_cut_corners = 0%
external_perimeter_extrusion_spacing =
external_perimeter_extrusion_width = 100%
external_perimeter_fan_speed = -1
external_perimeter_overlap = 100%
external_perimeter_speed = 80
external_perimeters_first = 0
external_perimeters_hole = 1
external_perimeters_nothole = 1
external_perimeters_vase = 0
extra_loading_move = -2
extra_perimeters = 0
extra_perimeters_odd_layers = 0
extra_perimeters_overhangs = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extruder_colour = ""
extruder_fan_offset = 0%
extruder_offset = 0x0
extruder_temperature_offset = 0
extrusion_axis = E
extrusion_multiplier = 0.9
extrusion_spacing =
extrusion_width = 115%
fan_always_on = 1
fan_below_layer_time = 0
fan_kickstart = 0
fan_percentage = 0
fan_speedup_overhangs = 1
fan_speedup_time = 1
feature_gcode =
filament_colour = #80FF08
filament_cooling_final_speed = 3.4
filament_cooling_initial_speed = 2.2
filament_cooling_moves = 4
filament_cooling_zone_pause = 0
filament_cost = 22
filament_custom_variables = ""
filament_density = 1.03
filament_deretract_speed = nil
filament_diameter = 1.75
filament_dip_extraction_speed = 70
filament_dip_insertion_speed = 33
filament_enable_toolchange_part_fan = 0
filament_enable_toolchange_temp = 0
filament_load_time = 0
filament_loading_speed = 28
filament_loading_speed_start = 3
filament_max_overlap = 100%
filament_max_speed = 0
filament_max_volumetric_speed = 0
filament_max_wipe_tower_speed = 0
filament_melt_zone_pause = 0
filament_minimal_purge_on_wipe_tower = 15
filament_notes = Onyx
filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
filament_retract_before_travel = nil
filament_retract_before_wipe = nil
filament_retract_layer_change = nil
filament_retract_length = nil
filament_retract_lift = nil
filament_retract_lift_above = nil
filament_retract_lift_below = nil
filament_retract_restart_extra = nil
filament_retract_speed = nil
filament_seam_gap = nil
filament_settings_id = "Onyx ABS"
filament_shrink = 100%
filament_skinnydip_distance = 31
filament_soluble = 0
filament_spool_weight = 0
filament_toolchange_delay = 0
filament_toolchange_part_fan_speed = 50
filament_toolchange_temp = 200
filament_type = ABS
filament_unload_time = 0
filament_unloading_speed = 90
filament_unloading_speed_start = 100
filament_use_fast_skinnydip = 0
filament_use_skinnydip = 0
filament_vendor = (Unknown)
filament_wipe = nil
filament_wipe_advanced_pigment = 0.5
filament_wipe_extra_perimeter = nil
filament_wipe_inside_depth = nil
filament_wipe_inside_end = nil
filament_wipe_inside_start = nil
filament_wipe_only_crossing = nil
filament_wipe_speed = nil
fill_angle = 45
fill_angle_increment = 0
fill_density = 41%
fill_pattern = cubic
fill_smooth_distribution = 10%
fill_smooth_width = 50%
fill_top_flow_ratio = 100%
first_layer_acceleration = 2000
first_layer_acceleration_over_raft = 0
first_layer_bed_temperature = 110
first_layer_extrusion_spacing =
first_layer_extrusion_width = 125%
first_layer_flow_ratio = 100%
first_layer_height = 0.25
first_layer_infill_speed = 60
first_layer_min_speed = 0
first_layer_size_compensation = -0.1
first_layer_size_compensation_layers = 3
first_layer_speed = 30
first_layer_speed_over_raft = 30
first_layer_temperature = 245
full_fan_speed_layer = 0
fuzzy_skin = none
fuzzy_skin_point_dist = 200%
fuzzy_skin_thickness = 150%
gap_fill_acceleration = 2000
gap_fill_enabled = 0
gap_fill_flow_match_perimeter = 0%
gap_fill_last = 1
gap_fill_min_area = 50%
gap_fill_overlap = 100%
gap_fill_speed = 60
gcode_comments = 0
gcode_filename_illegal_char = [<>:"/\\\\|?*]
gcode_flavor = reprapfirmware
gcode_label_objects = 1
gcode_precision_e = 5
gcode_precision_xyz = 3
gcode_resolution = 0
gcode_substitutions =
high_current_on_filament_swap = 0
hole_size_compensation = 0
hole_size_threshold = 100
hole_to_polyhole = 0
hole_to_polyhole_threshold = 0.01
hole_to_polyhole_twisted = 1
host_type = octoprint
infill_acceleration = 7000
infill_anchor = 600%
infill_anchor_max = 0
infill_connection = connected
infill_connection_bottom = connected
infill_connection_solid = connected
infill_connection_top = connected
infill_dense = 0
infill_dense_algo = autoenlarged
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_spacing =
infill_extrusion_width = 160%
infill_first = 0
infill_only_where_needed = 0
infill_overlap = 25%
infill_speed = 200
init_z_rotate = 0
interface_shells = 0
ironing = 0
ironing_acceleration = 2000
ironing_angle = -1
ironing_flowrate = 15%
ironing_spacing = 0.1
ironing_speed = 15
ironing_type = top
layer_gcode =
layer_height = 0.2
lift_min = 0
machine_limits_usage = time_estimate_only
machine_max_acceleration_e = 10000,5000
machine_max_acceleration_extruding = 10000,1250
machine_max_acceleration_retracting = 1500,1250
machine_max_acceleration_travel = 10000,1250
machine_max_acceleration_x = 10000,1000
machine_max_acceleration_y = 10000,1000
machine_max_acceleration_z = 300,200
machine_max_feedrate_e = 120,120
machine_max_feedrate_x = 450,200
machine_max_feedrate_y = 450,200
machine_max_feedrate_z = 30,12
machine_max_jerk_e = 2.5,2.5
machine_max_jerk_x = 10,10
machine_max_jerk_y = 10,10
machine_max_jerk_z = 0.2,0.4
machine_min_extruding_rate = 0,0
machine_min_travel_rate = 0,0
max_fan_speed = 100
max_gcode_per_second = 1500
max_layer_height = 75%
max_print_height = 103
max_print_speed = 300
max_speed_reduction = 90%
max_volumetric_speed = 11
milling_after_z = 200%
milling_diameter =
milling_extra_size = 150%
milling_post_process = 0
milling_speed = 30
milling_toolchange_end_gcode =
milling_toolchange_start_gcode =
milling_z_lift =
min_fan_speed = 75
min_layer_height = 0.08
min_length = 0
min_print_speed = 10
min_skirt_length = 20
min_width_top_surface = 200%
mmu_segmented_region_max_width = 0
model_precision = 0.0001
no_perimeter_unsupported_algo = none
notes = Onyx
nozzle_diameter = 0.4
only_one_perimeter_first_layer = 0
only_one_perimeter_top = 1
only_one_perimeter_top_other_algo = 0
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode
over_bridge_flow_ratio = 100%
overhangs_acceleration = 2000
overhangs_reverse = 0
overhangs_reverse_threshold = 250%
overhangs_speed = 100%
overhangs_width = 75%
overhangs_width_speed = 0
parking_pos_retraction = 92
pause_print_gcode = PAUSE
perimeter_acceleration = 2000
perimeter_bonding = 0%
perimeter_extruder = 1
perimeter_extrusion_spacing =
perimeter_extrusion_width = 0
perimeter_loop = 0
perimeter_loop_seam = rear
perimeter_overlap = 100%
perimeter_round_corners = 0
perimeter_speed = 150
perimeters = 3
physical_printer_settings_id = Ooza
post_process =
print_custom_variables =
print_extrusion_multiplier = 100%
print_host =
print_retract_length = -1
print_retract_lift = -1
print_settings_id = Onyx 11mm3 0.4
print_temperature = 0
printer_custom_variables =
printer_model =
printer_notes = Onyx 0.4
printer_settings_id = Ooza 0.4 nozzle
printer_technology = FFF
printer_variant =
printer_vendor =
printhost_apikey =
printhost_cafile =
printhost_port =
raft_contact_distance = 0.1
raft_expansion = 1.5
raft_first_layer_density = 90%
raft_first_layer_expansion = 3
raft_layers = 0
remaining_times = 1
remaining_times_type = m73
resolution = 0.0125
resolution_internal = 0.2
retract_before_travel = 2
retract_before_wipe = 0%
retract_layer_change = 0
retract_length = 2
retract_length_toolchange = 10
retract_lift = 0.5
retract_lift_above = 0.25
retract_lift_below = 0
retract_lift_first_layer = 0
retract_lift_top = "All surfaces"
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 40
seam_angle_cost = 100%
seam_gap = 0
seam_position = cost
seam_travel_cost = 0%
silent_mode = 0
single_extruder_multi_material = 0
single_extruder_multi_material_priming = 1
skirt_brim = 0
skirt_distance = 3
skirt_distance_from_brim = 1
skirt_extrusion_width = 0
skirt_height = 1
skirts = 1
slice_closing_radius = 0.049
slicing_mode = regular
slowdown_below_layer_time = 15
small_perimeter_max_length = 20
small_perimeter_min_length = 6
small_perimeter_speed = 60
solid_fill_pattern = monotonic
solid_infill_acceleration = 5000
solid_infill_below_area = 0
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_spacing =
solid_infill_extrusion_width = 140%
solid_infill_overlap = 100%
solid_infill_speed = 200
solid_over_perimeters = 1
spiral_vase = 0
standby_temperature_delta = -5
start_filament_gcode = "; Filament gcode\n\n; Macro syntax: https://help.prusa3d.com/article/macros_1775\n; The \"=~\" operator uses regex enlosed by forward slashes (=~/regex/).\n; The \"==\" operator can be used for an exact match instead if you wish (==\"string\").\n\n; The below logic says:\n; - IF printer settings profile name contains \"Voron\" (using regex)\n; - AND nozzle size equals <value>\n; - THEN insert the gcode (SET_ PRESSURE ADVANCE ADVANCE=<value>).\n; Uncomment all lines below (and modify appropriately) if you wish to use this.\n\n;{if printer_settings_id =~/.*Voron.*/ and nozzle_diameter[0]==0.4}SET_PRESSURE_ADVANCE ADVANCE=0.0495\n;{elsif printer_settings_id =~/.*Voron.*/ and nozzle_diameter[0]==0.6}SET_PRESSURE_ADVANCE ADVANCE=0.04\n;{endif}\n\n"
start_gcode = ; For use with stock macro, without passing variables\nprint_start EXTRUDER=[first_layer_temperature] BED=[first_layer_bed_temperature]\n\n;; If you are passing variables to PRINT_START, comment out above and use below start g-code instead.\n;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md\n;; Make sure the variable names match (e.g. if you use "EXTRUDER" instead of "HOTEND")\n;M104 S0 ; Stops PS/SS from sending temp waits separately\n;M140 S0\n;PRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]
start_gcode_manual = 1
support_material = 0
support_material_acceleration = 5000
support_material_angle = 0
support_material_auto = 1
support_material_bottom_contact_distance = 0
support_material_bottom_interface_layers = -1
support_material_buildplate_only = 0
support_material_closing_radius = 2
support_material_contact_distance = 0.1
support_material_contact_distance_type = filament
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_acceleration = 5000
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_fan_speed = -1
support_material_interface_layers = 3
support_material_interface_pattern = rectilinear
support_material_interface_spacing = 0.2
support_material_interface_speed = 100
support_material_pattern = rectilinear
support_material_spacing = 3
support_material_speed = 120
support_material_style = grid
support_material_synchronize_layers = 0
support_material_threshold = 30
support_material_with_sheath = 0
support_material_xy_spacing = 75%
temperature = 245
template_custom_gcode =
thin_perimeters = 80%
thin_perimeters_all = 20%
thin_walls = 1
thin_walls_acceleration = 2000
thin_walls_merge = 1
thin_walls_min_width = 33%
thin_walls_overlap = 50%
thin_walls_speed = 80
threads = 8
thumbnails = 32x32,400x300
thumbnails_color = #00FF00
thumbnails_custom_color = 1
thumbnails_end_file = 0
thumbnails_format = PNG
thumbnails_with_bed = 1
time_cost = 0
time_estimation_compensation = 100%
time_start_gcode = 20
time_toolchange = 30
tool_name = ""
toolchange_gcode =
top_fan_speed = -1
top_fill_pattern = monotonicgapfill
top_infill_extrusion_spacing =
top_infill_extrusion_width = 100%
top_solid_infill_acceleration = 2000
top_solid_infill_speed = 60
top_solid_layers = 3
top_solid_min_thickness = 1
travel_acceleration = 10000
travel_deceleration_use_target = 1
travel_speed = 450
travel_speed_z = 0
use_firmware_retraction = 0
use_relative_e_distances = 1
use_volumetric_e = 0
variable_layer_height = 1
wipe = 0
wipe_advanced = 0
wipe_advanced_algo = linear
wipe_advanced_multiplier = 60
wipe_advanced_nozzle_melted_volume = 120
wipe_extra_perimeter = 0
wipe_inside_depth = 50%
wipe_inside_end = 1
wipe_inside_start = 0
wipe_into_infill = 0
wipe_into_objects = 0
wipe_only_crossing = 1
wipe_speed = 0
wipe_tower = 0
wipe_tower_bridging = 10
wipe_tower_brim_width = 2
wipe_tower_no_sparse_layers = 0
wipe_tower_rotation_angle = 0
wipe_tower_width = 60
wipe_tower_x = 180
wipe_tower_y = 140
wiping_volumes_extruders = 70,70
wiping_volumes_matrix = 0
xy_inner_size_compensation = 0
xy_size_compensation = 0
z_offset = 0
z_step = 0.01

@ -0,0 +1,40 @@
import re
import sys
def get_xy(line):
xmatch = re.search(r"X(\d*)", line)
ymatch = re.search(r"Y(\d*)", line)
if xmatch is None or ymatch is None:
return None, None
xval = int(xmatch.group().strip("X"))
yval = int(ymatch.group().strip("Y"))
return xval, yval
def parse_file(fname):
with open(fname) as fp:
lines = fp.read().splitlines()
minx = float('inf')
miny = float('inf')
maxx = float('-inf')
maxy = float('-inf')
for line in lines:
x, y = get_xy(line)
if x is None or y is None:
continue
minx = min(x, minx)
maxx = max(x, maxx)
miny = min(y, miny)
maxy = max(y, maxy)
print(f"MinX={minx}, MinY={miny}, MaxX={maxx}, MaxY={maxy}")
if __name__ == '__main__':
parse_file(sys.argv[1])

@ -0,0 +1,43 @@
import re
import sys
XADD = 150
YADD = 300
def get_xy(line):
xmatch = re.search(r"X(\d*\.\d*)", line)
ymatch = re.search(r"Y(\d*\.\d*)", line)
if xmatch is None or ymatch is None:
return None, None
xval = float(xmatch.group().strip("X"))
yval = float(ymatch.group().strip("Y"))
return xval, yval
def rewrite_gcode(infile, outfile):
with open(infile) as fp:
lines = fp.read().splitlines()
fp = open(outfile, 'w')
# Home the board after bed is setup
fp.write("G28\n")
for line in lines:
x, y = get_xy(line)
prefix = line[:2]
if x is None or y is None:
if prefix != "M2":
fp.write(f"{line}\n")
continue
postfix = "" if prefix == "G0" else " F1500"
fp.write(f"{prefix} X{x+XADD} Y{y+YADD}{postfix}\n")
fp.close()
if __name__ == '__main__':
rewrite_gcode(sys.argv[1], sys.argv[2])
Loading…
Cancel
Save