2D plotting is a mechanical drawing technique for large scale printing and we can quite easily mod our 3D printers to do this, albeit the size will be pretty much dependent on your bed size so it may fall outside of the "large" in large scale printing.
First of all, we're going to need a mount to stick some form of drawing device (a pen basically, use a BIC if you want excellent longstanding quality.) to lay down the lines on our paper.
I knocked one up in fusion because I wanted to give myself a little challenge as CAD design is something I'm very loosely interested in learning. I also use something called a PetsFang as a blower for my 3D printer and there was only one on thingiverse which wouldn't fit my direct drive version. So onto the 3D drawing board! You can however, probably find one on thingiverse.com or some other STL site. Duck tape also seems to work.
My idea was... stick to the KISS principle (Keep It Simple Stupid) as that's about the only design principle I actually am aware of/have an understanding of... I mean, what's hard about that!? A lot probably if your not any sort of seasoned designer like me but heck, be nice, it's my first try at something like this. So, I tried to make my design modular as I knew I'd be changing some part of it in the future. Knowing the mount isn't changing at all I just designed a piece that I glued onto the side of the Petsfang's "fang". It was shaped to slide over the side of it with a blob of superglue to hold it in place.
The next part I made so it would easily screw into place on the modified mount to hold the pen. The initial design was one of your bog standard holes about 10mm thick to not allow the pen much wiggle room and then another hole, for a screw, which would keep the pen in place and not let it move.
To get a print going though we need to make some changes to the slicer and depending on your printer firmware that too. The printer firmware was quite simple as all you need to do is allow extrusion at any temperature. I had to do this because I didn't want to be removing my hotend every single time I wanted to use it as a plotter and I also didn't want to be using plugins/a work around like editing the starting gcode to remove the temperature stuff. Also because I use Klipper firmware on my CR10 I was unable to use the ARC gcodes G1,G2 which is used by the laser software plugin a lot of people use for this that's installed into Inkscape.
So with the firmware changed, I needed to make some changes to my slicer settings. If you've ever watched your printer print you will see it do some movements that aren't very useful for 3D plotting like wipe and coasting. Depending on your settings as well it won't always do a vertical lift on travel movements which unless you want to draw the travel movements they are best turned off. I've outlined the changes I made to my default profile below for Simplify3D and I've even included my .fff profile for you to download. Please be aware though, it's setup for my CR10's build volume which is 300x300x400mm.CR10 Plotter .fff
Retraction must be turned on, set as the following:
Retraction Distance: 0.1mm - Just to activate the feature
Extra Restart Distance: 0.00mm - Not Required
Retraction Verticle Lift: 5.00mm - Makes it raise the pen instead of dragging
Retraction Speed: 0.1mm - Needed to activate
Coast and Wipe nozzle both turned off.
Set your Nozzle Diameter and Extrusion Width to the pen tip width, so for my BIC it was 0.1mm
Set your layer height at 0.1mm with 100% in First Layer Height, Width and Speed. You can also turn on Print islands sequentially.
Turn off Skirt, Brim, Raft.
Hotend and Bed temperature set to 20°C and turn off the option that states: Wait for temperature controller to stabalize before beginning build.
Gcode you just need to set the offset of the pen from the nozzle. So mine was 60mm in the X axis, and 25mm in the Y axis. Depending on your setup you might need to raise the Z a little here too to stop the nozzle dragging.
Starting script was as follows:
G28 ; home all axes
G92 Z0 ; Set Z to 0
G1 Z15 F4800 ; Raise Z to clear pen
G1 X150 Y150 F4800 ; Center pen for adjustment.
G4 P10000 ; dwell for 10 seconds for pen adjustment
And ending script:
G28 X0 Y0; home the X-axis
M104 S0 ; turn off heaters
M140 S0 ; turn off bed
M84 ; disable motors
Speed I've got mine set at 250mm/s default printing speed, and my usual settings for modifiers. I also disabled Adjust printing speed for layers below xx seconds too.
In Advanced turn on "Stop printing at height" and set it to 0.1mm. The same as your layer height so we only print a single layer. You will also want to turn off all ooze control behavior and have "Only retract when crossing open spaces" turned on.
That's it! All I did then was set up my bed with a piece of paper held down by some masking tape on the sides. Homed the printer to make sure the pen was touching the build plate and then loaded up the print in the Octoprint and away it went. Easy!
One thing to note here, because you're using offsets to correctly line up your pen to the bed the Gcode preview will show it slightly askew. Don’t worry about this too much, just line the model up on the bed where you’ve got the paper before you slice it and you should be golden. Just make sure to check the gcode preview isn’t off the edge of your bed otherwise your printer (especially Klipper/Octoprint here) will display an out of bounds error and cancel the print.
Looking at my first attempt below you can see some glaring issues with it, mainly the lighter areas where my bed has dipped. Apart from that it came out beautifully with the settings on point and no errors in the output.
The bed however is quite an issue so that lead me onto designing version 2.0 which you can see depicted below. I mulled over a few different version in my head before settling on this design. The first was 2 large circles instead of the forks you see below but that came with some drawbacks. One been I have to make a new mount for differing pen sizes, and also mess about measuring the pen each time I wanted to change it to something else. To get around that I thought maybe an insert that would be quicker to print, and design each time but still as the first one requires measuring and swapping out parts. This design is a bit more universal and I can use good old elastic bands to secure the pen in place and the 45° prongs hold the pen and stop it moving from side to side whilst it still allows some up and down movement. If you check the banner image to this post, and also the example below you will see my little plan worked great, the new mount and elastic bands create enough pressure to keep the pen on the bed but allow it still to move up and down with it. Success!
You may be wondering though how I got the model. Well the easiest way I found was to convert and image in Inkscape to an SVG and then import that into tinkercad.com. Export the STL file and put this in your slicer. There's plenty of tutorials online for this but if anyone wants help then please leave a comment and I'll direct you to some instructions.
Update: Got asked, so here is my process for creating the required file for printing/plotting. Click Here to visit.
All in all it's been a fun little project and I'm already thinking of other great ideas to do with it. I'll be sure to write and update if I figure out anything a little cooler than what I've already detailed here, or follow me on my instagram where I post more frequently.