Flexure Pen Plotter
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
A mount for sharpie or other pen that allows the printer to be used as a pen plotter.
- Ocena
- 0 / 5
- Polubienia
- 4
- Pobrania
- 5
- Wydruki
- 1
- Wyświetlenia
- 53
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Prusa Parts & Upgrades
- Licencja
- Creative Commons — Attribution — Noncommercial
Prusa Core One Pen Plotter: Compliant Flexure Mount
Turn a Prusa Core One into a pen plotter for thank-you cards and envelopes.
This is a remix of the [Core One Pen Plotter v1.1](https://www.printables.com/model/1451615).
The rubber band is replaced with a printed parallelogram flexure, so the spring, the guide and the hard stops are one PLA part. A small clamp jaw holds the pen.
The Core One's load cell finds the pen tip at the start of every job, so there is no manual Z calibration. A small Python tool turns text into G-code.


What's in this folder
Folder | Contents |
|---|---|
stl/ |
|
step/ | STEP files of the same parts |
cad/ | Parametric build123d source file |
penplot/ |
|
Hardware
2 × M3×20 socket head screws. These replace the two fan-shroud screws that hold the mount. The counterbores are sized so M3×20 gives the same thread engagement as the stock M3×18.
2 × M3×16 socket head screws for the pen clamp. They thread into self-forming holes in the jaw.
9 × K&J D42DIA magnets (1/4" dia × 1/8" thick) for the paper guide. Press them into the pockets; they pull themselves flat against the floor. This is just what I had on hand and you can modify to fit what you have.
A pen with a 9.5–11 mm barrel. Tested with Sharpie Ultra Fine.
Printing
Material: PLA (Prusament PLA tested), 0.4 mm nozzle, 0.2 mm layers, no supports.
Pen mount: prints face-down on its flat mounting face. Its two flexure blades are 1.2 mm thick (3 perimeters). Keep them solid: the default 2 perimeters plus 15% infill leave a void, so use ≥3 perimeters or 100% infill.
Jaw: prints flat.
Paper guide: prints upside down (top face on the bed), so the registration lips point up and the magnet pockets open onto the bed.
Flexure
Setup
1. Mount. Remove the two fan-shroud screws and fit the mount with 2 × M3×20 screws. Clamp the pen in the V-groove with the jaw and 2 × M3×16 screws.
2. Guide. Put the paper guide on the front-left corner of the sheet, with both lips against the sheet's edges. The card's front-left corner sits in the inside corner of the guide's L. That corner is the origin for everything below.
3. Set the pen height.
1. Home the printer and lower the bed to Z = 5 by manually jogging it.
2. Loosen the clamp and slide the pen down until its tip just touches the sheet.
3. Tighten the clamp.
4. Leave the touch-off spot clear. Every job touches off at nozzle X240 Y40, which puts the pen at roughly X200 Y37. That spot must be bare sheet, not the card. With the guide in place, any card narrower than about 190 mm keeps it clear, and the tool refuses jobs that would cover it.
5. Avoid the left belt. The holder hits the left belt when the nozzle is below X ≈ 40. The tool keeps the nozzle at X ≥ 45 and rejects anything outside that limit.
> No heating. Plotting runs at room temperature. The tool never emits heater commands, and it rejects any G-code that contains them.
penplot.py
Modify the script to meet your requirements, provided as an example only.
pip install -r penplot/requirements.txt # numpy, Hershey-Fonts, matplotlib (preview only)cd penplot
a card: text centred, 20 pt, true-scale preview PNG next to the G-code
python penplot.py text "Thank you\nfor everything!" --card a2 --size 20 --preview
text from a file, left aligned, block top-left 10 mm from the card's top-left corner
python penplot.py text @message.txt --align left --at 10,10 --card 5x7in --size 12
an envelope: recipient centred, return address top-left
python penplot.py envelope --card 5.75x4.4in --thickness 0.4 --lift 2.5 --speed 1.5 \
--to "Jane Doe\n123 Main St\nSpringfield, IL 62701" \
--from "J. Smith\n2 Oak Ave\nTown, CA 90000" --preview
Copy the .gcode to the printer by USB, PrusaLink or Prusa Connect, then start it from the printer. Or ask your favorite AI agent to send it to the printer automatically with PrusaLink.
Options:
--card:* card size, as127x89(mm),5.5x4.25in, or a preset:a2,a6,a7,postcard,index. Cards lie landscape with the bottom edge along X.--font:* any Hershey font.futuralis plain and the default;scriptsis cursive; there is alsotimesrand others.--thickness:* card or envelope thickness in mm. Default 0.3.--lift:* pen-up height in mm. Use 2.5 for envelopes, which don't lie flat.--speed:* scales feedrates and acceleration. 1.5 works well.
Each job runs in this order:
1. G28 P: a normal homing, except that the Z touch-off lands on the pen tip. The load cell triggers once the flexure reaches its hard stop.
2. A climb to a safe height before any XY move.
3. The text, drawn left to right and top to bottom like a person writes. Where a stroke starts on ink that is already drawn (for example the arc of a small "r"), the pen retraces along the line instead of lifting.
4. A park, then motors off.
Every move is checked against the printer's travel limits and the card's edges.
Z touch-off position (M206)
Stock firmware touches off Z at nozzle Y10. That puts the pen at Y7, on the guide or the sheet edge.
To move it, each job wraps the G28 in a temporary home offset: M206 Y-30, then G28 P, then M206 Y0. The offset is never saved (no M500) and is cleared again at the end of the job. This was verified on Core One firmware 6.5.7.
Before you rely on it, run python penplot.py calibrate m206check once. That test homes XY only; the head should step toward the front at the end. If it steps toward the back, set "z_home_y": null in your config.
Calibration
Run these once after mounting. They use a sheet of plain paper.
Command | What it does | What to look for |
|---|---|---|
| Pen touch-off, then hovers the pen mid-bed | Firmware accepts the touch-off; pen tip about 3 mm above the sheet |
| 5 lines at press −1.0 to +1.0 mm, on loose paper mid-bed | The lightest clean, continuous line. Set |
| Crosses at card (10,10), (60,10), (10,60) plus 50 mm rulers, paper in the guide | Measure the crosses from the paper's corner. Adjust |
To save your values, run python penplot.py init-config. It writes penplot.json next to the script; edit it and every job uses it.
Main keys:
Calibration:
press,sheet_corner_x/y,pen_offset_x/y.Limits:
x_min(keeps the holder off the belt),z_home_y.Motion:
f_draw,f_travel,f_z,accel.Retrace:
retrace_mm(0 turns it off).
Defaults are the values measured on the printer this was developed on.
Modifying the parts
bash
pip install -r cad/requirements.txt
python cad/pen_mount.py # -> cad/out/*.step, *.stl in print orientation
python cad/paper_guide.pyTo fit a different pen, edit Params in pen_mount.py:
pen_d_min/pen_d_max: the pen barrel range.blade_t/blade_L: flexure stiffness.stop_up/stop_down: hard-stop travel.
If you change stop_up, set delta_trigger and stop_up in penplot.json to the same value. The load cell triggers at the hard stop, so the tool needs that number for the touch-off.
To fit a different sheet or card, edit GuideParams in paper_guide.py: arm length, lip depth, and magnet size or pitch.
Credits and license
Remix of [Core One Pen Plotter v1.1 (Printables 1451615)](https://www.printables.com/model/1451615), licensed CC BY-NC 4.0. The fan-screw mounting plate in
cad/mount_plate.stepcomes from that model.
