Pen holder for P1S to make P1S a 3d plotter

I have the project to print a 3D topographic map and paint it. The idea is to print the mountain terrain model in white PLA and leaving the model on the plate draw lines on the model (roads, paths, POI, etc.). It would be necessary to have a clever pen holder attached to the head in a way that it would not collide with the filament deposition and then at the end of the print execute a GCode to plot the surface. The pen would need to have a spring to better follow the surface. The Gcode should use the XY defined by the lines I want to draw (for example a road) and Z defined by the external surface of the model.

Welcome to the community.

However, was this a question or a description of a project you are working on? The post appears to have no clear objective. :man_shrugging:

It is a project, but so far I am missing many elements to make the project real. So, in a sense, is a question: has anybody been working on something similar? If so, what solutions have been found?
The clear objective is to print a 3D topo map painted with different colours. The elements I have so far are the 3D terrain model (I have already printed it in PLA just to see the result) and the 2D vectors that I would like to paint on the upper surface of the model. I can easily transform the 2D vectors in 3D vectors, I am quite familiar with tools like QGis.

I’m still unclear as to what the “ask” is. So far you’re describing a topographic map printed on a 3D printer that you will later paint. This is nothing particularly new so what is it that you are asking? Are you asking how to do it? Is the model one you created or are you looking for a DEM file to STL conversion tool? It would help if you could specifically articulate what you are requesting.

The idea is far easier to propose than it would be to implement. Unless you have a lot of technical knowledge of how 3D printers work, significant coding skills for the G-Code generation, and the mechanical engineering skills to make the parts, you’re never going to get out of the concept stage.

1 Like

Olias, thank you for you interest in the subject. I already have the STL file representing the map. Yes, I used a DEM model to generate it. I also have the vectors I would like to paint on the model (actually as a 2D file but it takes me few minutes to make them 3D so that they lay on the upper surface of the 3D model.

I know it’s not easy to implement. As far as knowledge/skills, I am quite new with 3D printing (300 hours printing so far), good coding skills (been in software development for +40 years), zero GCode experience, good mechanical engineering skills (I have a PhD in advanced machine design).

Here the suggestions I got from ChatGPT:

Yes, it’s absolutely possible! The idea of turning a 3D printer into a kind of “3D plotter” with a pen mounted on the printhead is feasible with some hardware and software adjustments. Here are the main steps:

  1. Hardware: Mounting the pen on the printer
  • Pen holder: You need to create an adapter to attach a pen to the printer’s printhead. This adapter could be 3D printed and include a spring mechanism to compensate for height variations in the 3D model.
  • Pressure control: To ensure the pen writes with the right pressure, you might use a spring-based system or a servo motor to raise and lower the pen.
  • Printer compatibility: If your printer has a removable toolhead (like some modular models), mounting the adapter can be easier.
  1. Software: Generating the pen’s path
  • Image-to-path conversion: You’ll need to convert the 2D image you want to apply into a toolpath that follows the 3D surface.
    One way is to use slicer software like PrusaSlicer or Cura with custom scripts.
    Alternatively, programs like Inkscape with G-code plugins can turn image contours into movement commands.
  • Adapting to the 3D surface:** The G-code must be modified to follow the surface’s topology.
    One method is to use “mesh probing” with the printer’s sensor to map the surface, then apply a transformation to the G-code.
    *Another option is using software like “MeshCAM” or “Fusion 360” to generate surface-following toolpaths.
  1. Firmware and printer control
  • G-code editing: You’ll need to adjust the printer’s G-code to use a pen instead of the extruder. For example:
    Disable extrusion (no “E” commands).
    Adjust speed and acceleration to prevent smudging.
    Use Z-lift commands to raise the pen when moving without drawing.
  • Compatible firmware: If needed, you can tweak the printer firmware (Marlin, Klipper, etc.) to accommodate the new setup.
  1. Testing and calibration

Test on flat surfaces to calibrate pen pressure.
Test on surfaces with height variations to verify correct Z compensation.
Optimize G-code** to reduce vibrations and improve writing quality.

Conclusion

Yes, it can be done! The main challenge is accurately mapping the image onto the 3D surface, but with a solid workflow for surface mapping and G-code transformation, you can achieve precise results.

Another option I am contemplating is to see the development of H2D. They offer a Pen Holder, but apparently at the moment it can work only on 2D surfaces. If they would implement the software to use the pen to draw 3D, in conjunction with printing 3D models, I would consider upgrading my P1S to a H2D.

I think you’re going to find, once you think about it, that the models you print and then plot will have to have very specific geometry criteria. It’s a problem similar to the “print one object at a time” option. What’s already printed will constrain where the mechanics can move. There will be places a pen won’t be able to reach, and there may be areas you can’t “route” through because the print and the mechanics will interfere.

As a general tool, it’d have very limited usefulness, for very specific use cases. I think it’d be unlikely that BBL would invest in creating the capability you’re looking for, and since the printer firmware isn’t open source I don’t think you’ll be able to make the modifications you’ll need to be able to make. It’s unlikely to be a problem you can solve with G-Code alone…

I would model-in the topographical features, make them like shallow “U” shaped channels so they’ll hold paint, and then paint them by hand.

1 Like

I’m not really sure what the plotter part of this idea is for… Why not just print the colors? This is a video of something that seems very similar to what you want to do.

1 Like