A pen holder attachment for the Creality Ender 3 that allows it to function as a plotter. Includes an adjustment screw to accommodate various pen diameters (8-13mm). Model can be installed as-is, no additional fasteners or springs required.
Installation
- Both the pen holder and adjustment screw are printed in PLA with a 0.16mm layer height without supportswithout supports. The pen holder is printed in the preset orientation and the hold screw is printed with the adjustment knob touching the buildplate.
- Thread the adjustment screw through the pen holder a few times to ensure they were printed correctly and to break them in. The threading should get easier after a few times.
- On the Ender 3, loosen the left pan-head screw above the fan shroud, while holding the nut on the other side with a wrench. Remove the screw completely and keep the collar, roller and nut somewhere safe.
- Place the pen holder in the correct position while threading the screw back into the plate. Then re-insert the collar, roller and nut and re-tighten the screw by holding the nut in place with a wrench.
- Verify that the pen holder sits flush against the fan shroud and has no wiggle room.
Configuring the plotter
For turning .svg files into plotter gcode, I recommend the vpype python commandline tool (https://vpype.readthedocs.io/en/latest/). Inkscape has also been moderately successful in converting .pdf files into .svg files for me. Here I'll show how to set it up to work with vpype.
- Clip a piece of paper to the printbed.
- Set the Z-axis of the printer to around 9mm and verify that at that height the pen can be correctly fastened by the adjustment screw such that the tip touches the paper without much wiggle room. Otherwise make small adjustments up or down.
- Move the Z-axis up such that the pen slightly above the paper. Now, move the X- and Y-axes to find the bottom-leftmost location where the pen won't collide with the clips with X- or Y-axis movements. Note this (x, y)-value, for me this was (44mm, 48mm).
- Do the same with the top-rightmost position, for me this was (235mm, 208mm). Now subtract the top-right values by the bottom-left values, this is your plotting space, note these values. For me this was (191mm, 160mm).
With these values, edit the contents of the configuration file below and save it as plotter_config.toml. The (x, y) value in step 3 should be the offset_x and offset_y. If you selected a different Z-axis value in step 2, replace all instances of Z9 with Z{chosen value} and all instances of Z11 with Z{chosen value + 2}.
[gwrite.ender3_plotter] unit = "mm" offset_x = 44 offset_y = 48 document_start = """G21 ; Units mm G28 ; Home all axes M107 ; start with the fan off G01 Z9 F4500 ; Move to Z=9 G01 X0.0000 Y11.0000 F4500 ; Move to offset home position M25 ; Wait for user """ layer_start = "(Start Layer)\n" line_start = "(Start Block)\n" segment_first = """G01 Z11 F4500 G01 X{x:.4f} Y{y:.4f} F6000 G01 Z9 F4500 """ segment = """G01 X{x:.4f} Y{y:.4f} Z9\n""" line_end = """G00 Z11 F4500\n""" document_end = """ G01 X0.0000 Y11.0000 F6000 M2""" invert_y = truePlotter usage
To see how a given .svg file will turn out on the plotter, I first open the file (e.g. the 2DBenchy.svg in the downloads), set the page size to the value I found in configuration step 4, apply some scaling and translation, and show the end result:
vpype read 2DBenchy.svg pagesize 191mmx160mm scale 0.85 0.85 translate -- -0.5cm 0cm showWhen I'm satisfied, I save the new .svg by replacing show with write 2DBenchy_plotted.svg:
vpype read 2DBenchy.svg pagesize 191mmx160mm scale 0.85 0.85 translate -- -0.5cm 0cm write 2DBenchy_plotted.svgThen, I convert the file to gcode using the command (using plotter_config.toml):
vpype -c plotter_config.toml read 2DBenchy_plotted.svg gwrite -p ender3_plotter 2DBenchy_plotted.gcodeThen I do a quick manual check of the generated gcode to see if it actually stays within the boundaries before I execute it on the Ender 3. When the execution starts, it is configured to first move to the home position set in configuration step 3 and wait. This is where you insert the pen into the holder such that the tip firmly touches the paper. Then press the control knob and the execution will continue.
タグ
モデルソース
