Giter VIP home page Giter VIP logo

3dwriter's Introduction

3DWriter

Use your 3D Printer with a pen to write letters, birthday cards etc

Try the new (still free) version https://3dwriter.io

I couldn't find any small programs that i could use to write letters using my 3D Printer as a plotter so i wrote one. After mucking about with different fonts i found a fontset called the Hershey fonts. These are the only fonts used in this application since they are primarily stroke based fonts rather than outline fonts that every other program i tried had.

Video demo over on youtube https://youtu.be/yK_YGwMRR40

Windows executable is in 3DWriter/bin/Release/3DWriter.exe
Note: Windows10 users may get a security warning, this is normal because i do not sign my applications, click "more info" then "run anyay".
Feel free to check and compile your own :)

How to use it

There are 3 main columns.

  • Text entry
  • Preview
  • GCode settings

Once you have selected the font from the toolstrip at the top, you can click right next to it on the "Preview" button to see a rendered character set of the font. There is a check button beside that "Simple fonts" which will alternate between the full set of fonts and a simple list. Fonts in other languages will most likely not map to the english character set. Appologies, i only know english.

Type some text in to the Text input. Choose your scale (0.2 is pretty close to handwriting) then click the Preview button to see your text rendered in the preview window.
There are options for scaling up the preview render to make it easier to see what it might look like.

If your GCode settings are complete, just click "Generate GCode" and save the file for your printer.

alt text

GCode settings

Pay close attention here

Bed X/Bed Y - Set the size of your printers bed here.
Offset X/Offset Y - My pen is strapped to the side of my extruder so there is an offset.
Pen up/Pen down - This is the height of the extruder/pen head from your build plate. Test this manually on your printer to get these.
Travel / Draw speed - The speed at which the printer will move at. Slower is better.

Line Spacing - The gap between the lines measured in 'units'.
Letter Spacing - The gap between the letters measured in 'units'. Letters already have individual spacing but sometimes more is required.

Home X/Y/Z - Before and after the printer does the writing you probably want to home all your axis. Untick those you don't.
Dry run - Doesn't put the pen down, ever. This is so you can put your paper/card in place and see if it will go where you want it.

Preview magnification makes no difference to the GCode.
The GCode output is higher resolution than the preview window.

What is a 'unit' ?

The fonts are described in multiple x/y points as integers. Each font has a height around 37. This isn't mm or pixels, it's just what was used to describe the strokes so i call them units. This height is multiplied by the scale to render the fonts. Line and letter spacing is also multiplied by scale so the end result is proportional.

Setting up your printer as a plotter

At first i just used a rubber band to hold the pen on but it wiggled around too much so i printed a custom holder that attached firmly to my extruder. Then i printed mating piece and glued it to my pen (4 colour Bic pen).
I made it so when the pen tip is retracted it is higher than my nozzle so i can keep the pen there all the time.
Using a program like Pronterface you can manually move your extruder around to find the correct height for pen up & down, also the X and Y offset so you don't write off the edge of the page.

Laser

I equipped my 3D Printer with a cheap 1W UV laser from ebay which work quite well on a variety of materials. I was using Marlin firmware but found there is no support for controlling a laser other than to connect the laser to the cooling fan and use M106/M107 to turn the laser on and off.

Repetier firmware has full laser support so after a bit of mucking about i managed to get it loaded on my GT2560 controller.

Since my printer has only 1 extruder, i decided to use the mosfet output normally used for a second extruder as a 12v power source for my laser. Repetier has a great online configuration tool for setting things like which output to use for laser control.It made this process quite simple.

I used a LM7805 to regulate the 12v supply to 5v that the laser uses. I also connected a simple switch on the laser so i can be sure it's only going to work when i want it too :)

REPETIER USERS... Please remove the laser on/off commands in 3DWriter. The commands required to activate the laser are put in to the GCode file automatically.

MARLIN USERS... You don't have support for the laser GCode's so you need to specify your commands for laser ON and OFF in the program. If you haven't already connected a laser, you can add a switch to the wires going to your part cooling fan so you can switch between cooling or laser. If you do this, your commands will be... Laser ON: M106 Laser Off: M107

ALL USERS... Your cheap sub $25 1W laser from ebay will likely require 5v. Use an appropriate power supply for it, such as an LM7805 which are cheap and very very simple to wire in.

FOCUS... All lasers need to be focused, i found that mine is 68mm from the build plate but that's because of where i mounted my laser. This will be different for ALL users. I suggest using thick cardboard on your buildplate so you don't damage it. Make some simple/quick text, load it up in repetier host or pronterface etc, print it, raise your z-height, repeat until you get good results.

USE AT YOUR OWN RISK

The only 3D Printer i own is a RepRap i3 clone and i can confirm it has been tested and works well on that style of printer. I know from other software made for the ultimaker that sometimes the Z move is the wrong direction, i would advise that you simulate the gcode files prior to printing just to be sure you know what is going to happen. And as always when trying new software with your 3D Printer, keep one hand on the off switch :)

Final notes

I don't claim to be the worlds best programmer, nor am i a self professed 3D Printer expert but i have many years of experience with both and i'm pretty confident that this software works.

I have included the C# 2015 project that you can compile yourself along with a binary build for MS Windows (see 3DWriter/bin/Release).

I would love to hear your feedback :)

13/04/2018 - Blocky text

Some users have described a blocky / 8-bit look on some printers, comma's found in gcode file instead of periods (for decimal numbers). language localization issue, fixed.

13/04/2018 - Update checking

Added a more reliable method of update checking.

12/01/2017 v1.1 released

Added real line height to status bar.

21/01/2017 v1.2 released

Updated path seperators with Path.DirectorySeparatorChar.
Work has begun on the font editor which is included in this version but disabled in the menu since it's no where near complete.

24/01/2017 V1.3 released

Fixed GCode offset issue with Y axis.
Fixed incorrect index of character array causing erroneous moves.
Added version checking.
Changed ui font scale to font size in mm.
(sorry for the multiple commits, has been a long day)

3dwriter's People

Contributors

boy1dr avatar g3gg0 avatar marxlance avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

3dwriter's Issues

Can't select 7.4 mm font size for some fonts, no precise font sizing allowed?

Only select fonts have specific font sizes, and this is a problem for me, I tested extensively and found that with a Font Size of 7.4 and a Line Spacing of 6.6 "units" (what is a unit in mms btw?) the words line up on lined paper perfectly, I wanted to write using a different font and sadly found that I cannot select the 7.4 mm font size with other fonts, meaning I'll need to figure out the perfect line spacing for EVERY font that I want to use with lined paper, if you know of a way to convert my line spacing to work with other font sizes, or for the other fonts to have a 7.4 mm option I'd be ever thankful.

Thanks in advance!

Same process but revert

Hi @boy1dr !

Thanks sharing so much,
Do you know if it is possible to revert this process, as in :

  • I write using a pen attached to a mechanical arm,
  • the system detects the pen movements
  • it saves them dynamically
  • it interprets them into digital characters

This is not an issue I just would like to spark an open conversation,
Please let me know if you'd rather move this to another channel.

Great program! Wondering if how I might be able to add a font?

I know this is not necessarily an issue but was wondering if you could help at all.

I just printed my first test piece, blown away by how simple everything is. Thank you! I made my handwriting into a font using https://www.calligraphr.com/en/ for a project and was wondering if there is a way to import this into the program. I see the font files in \3DWriter-master\3DWriter-master\3DWriter\bin\Release\fonts. The file that calligraphr spits out is a .ttf file. Is there a way to integrate that into the program or is this crazy talk? Please be easy on me, the extend of my programming knowledge is from one class in Java 10 years ago and some windows powershell :).

Thank you, stay safe!
Jared

Continuously going up and down

Hi there! First of all, thank you for this amazing piece of software!
I have a strange problem.

My first writing went perfect, absolutely beautiful. But when i made my second writing (Gcode), the printer seems to go up-and-down between every point it makes, just keeps going up and down, he is writing tho but not in the smooth way my first print did go.

Now, i opened the 2 different Gcode files in Notepad++, just because i was curious, and i found that my second file has continuously up and down commands for the G0... the first file doesn't...

Screenshot:

image

In the screenshot you can see the difference. I played a lot with the settings in the 3dWriter program but can't seem to find the solution.. :-(

Do you have any idea how i can solve this? The settings i currently use in the program are as following:

image

p.s. I know i changed the pen up and pen down values.. :)

O update 11:32 - i noticed that, when i close the program, reopen it and change nothing and then click on Generate G code, it is perfect. Only when i make changes, or generate multiple codes, the problem occurs.. maybe this can help. :)

Thanks in advance, best regards, Joey

Font format

Hi! Great Project!
We are experimenting a lot with old pen plotters, which were made for this purpose. For them we try to build own single stroke fonts, which we would like to test with 3DWriter but the fileformat cmf seems quite exotic. Do you have any information on how the included font files were generated?
thanks and all the best,
Felix

Font

Hi. Very nice project, thank you. How do I add new fonts?

Problem with directory

Hello!, I speack Spanish, but... I will try with English :D

I use this program in Linux, and as you know Linux has a different directory separator.

Backslash " \ " in Windows and Unix based use Slash " / " and for this reason I have a little error.

image

I can't install visual studio in Linux xD! but maybe you can put " Path.DirectorySeparatorChar " :D

Thanks and Regards!!

Modify text input window

Is it possible to modify the program to be able to enter text in columns? Each column would have its coordinates as well as offset. A good idea would be the ability to format text (align left, right, center, justify, etc.).
Currently I am entering text, setting coordinates, generating gcode, entering new text again with the appropriate offset, generating new gcode, I manually link the two codes together. It is a bit of a nuisance.

"Hardware Setup" Menu on 3dwriter.io

Having made an online version is AMAZING. Though, at the risk of sounding like a complete idiot, I want to report that it took me 3 days to figure out that on the online version you have to click on "Hardware Setup" to actually access the 3d printer options. I would suggest either making it open by default or making it look like a clickable button. Before figuring out that it was a clickable text, I simply thought that you had discontinued the 3D printer options on the online version.

Thanks for this project!

Feature Request: Sequential Numbering

I often have to engrave sequential numbered serial numbers on to circuit boards using a laser equipped 3d printer. It's a long shot but is it possible to add this as an option to 3dWriter? Currently I use an old VB6 program (Link Here) that generates serialized gcode that I can modify to work with a heavy amount of copy paste and find and replace. Not sure if this is in the scope of this project but I figured it can't hurt to ask. Thank you for such a neat application. It has really expanded what my 3d printer can do.

Are punctuation marks possible?

Hello, very neat software, thank you. I'm just noticing punctuation marks aren't showing in preview or during the actual print, is that something that could possibly be fixed? Thanks again.

German letters

Hi! Could you please add the three german letters „ä“, „ö“ and „ü“?

This would make life a lot easier. :)
Thank you!

Turkish font

Hi. Thank you for this nice app. How to add or make new fonts, specially Turkish fonts.

Installation guide

Hi,

the README.md is missing a chapter about "Installation" or "How to get started". I assume this is a VisualStudio project, but I have never used it and as far as I know VS is a Windows-Only software. Is there a way to get 3DWriter running without VS?

Best,
Felix

Font Editor?

Any updates on the progress of the font editor? It'd be really neat if you were able to create your own font from your personal hand writing. How exactly are the fonts stored anyway?

Print Over USB

When using octoprint or Cura printing over usb does not work. It stops in the middle of it. I think its an issue with the way the gcode is written

Feature suggestion: option to manually set offset

It is quite cumbersome to measure exactly where I want my text to go on a sheet of paper.
To make it easy, I've written a small portion of GCode that allows me to prepare text in 3DWriter without any offsets, then while printing it prompts user to position the head in a desired origin (in my case, bottom left corner of a small piece of paper that I use to label things) and continues print from there.

M18 ;Disable Steppers
M300 S440 P200 ;Beep
M0 Set offset and click
M17 ;Enable Steppers
M428 ;Offset HERE
G92 X0 Y0 Z0 ;Set temporary Workspace Offset
;Code HERE

;CODE ABOVE ^^^^
G92.1 ;Restore Workspace Offset

I only set lowered pen position to -0.1mm so I get some pressure (my pen holder has a spring so it won't damage anything).

I wanted to do a PR and add a toggle on the website, but this is not HTML version and I can't find a repository for it. Are you @boy1dr open to contributions to the .io page version of the program? I really like it and would love to add more features.

STL File for the pen holder

Hi,
that's a great job that you did.
Could you please share the STL file of the pen holder that you plugged close to the extruder, please?
Thanks.
Keep up the good work.

crash when text contains more complex characters

Great program - Kids love it. I am getting a crash however if i paste text from a website into the input box and press preview. I assume it is special characters related (like long dash - vs –). Attached are some screen shots and crash logs

Thanks

image

crashlog.txt
crash

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.