ddd-0.0 by Trenton Henry


This is basically the work in progress pre-release prototype. I am striving to get it up to the point of "useable".


Command summary


It's basically: ddd command args


ddd bfm2ddf - generates .ddf fonts in several sizes using json files from bitfontmaker2.com

    srcpath -- the source .bfm font path containing the json exported from bitfontmaker2

    dstpath -- the destination path of the generated dd font


To use this, you need to visit http://www.pentacom.jp/pentacom/bitfontmaker2/ and edit a font. When you export the data as jsob, save it into a .bfm file, then use it as the srcpath.


ddd mgk2ddf - generates some .ddf fonts in several sizes using imagemagick

    srcpath -- the source ttf font path or imagemagick font name

    dstpath -- the destination path of the generated dd font


This is experimental, to see if I could use ImageMagick to render antialiased fonts for me. It does work, but they look terrible as fat bits. When used on not-fat-bit window they look tolerable. I used an earlier variation in the pel based sqrsperiment and peldraw apps.


ddd demo bfmfonts - demonstrates the fonts created by bfm2bmf


Shows the bfmfonts. Use arrow keys to move through them, cmd-q to exit.


ddd demo mgkfonts - demonstrates the fonts created by mgk2bmf

    ptsz -- the point size to demo


Shows the mgkfonts. Use arrow keys to move through them, cmd-q to exit.


ddd view - view a .ddd file

    <fname> -- the name of the ddd file to view

    [-metal] -- view with metal (default is dddre on GLFW on OpenGL)


Experimental. Currently using it to debug my software renderer, dddre, which renders using ddpe.


ddd stencil - edit a .ddt (2D template) stencil file

    <fname> -- the name of the ddd stencil file to view


Edit a stencil, where a stencil is a 2D shape used as a template for radial sweeps (lathes), linear sweeps (lofts), and hull sweeps (like ships, model plane fuselages, ...). Stencils can also be converted to gcode for use with a CNC milling machine, via the ddt2g command.


Editing a stencil takes place on a 2D grid. It is 10 inches by 10 inches, which is more than twide s big as the envelope of my milling machine. The cursor snals to the nearest inch, tenth inch, hundredth inch, or thousandths inch depending on how you set the 'resolution'.


Mouse controls:


+------+------+------+------+------+

|      | shft | ctrl | optn | cmnd |

+------+------+------+------+------+

| lft  |      |      |      |      | select - dn, drag, up

+------+------+------+------+------+

| rgt  |      |      |      |      | plot - dn, drag, up

+------+------+------+------+------+

| mid  |      |      |      |      |

+------+------+------+------+------+

| mid  |      |      |      |      |

+------+------+------+------+------+

| mid  |      |      |      |      |

+------+------+------+------+------+

| whl  |      |      |      |      | vscroll

+------+------+------+------+------+

| whl  |  x   |      |      |      | hscroll

+------+------+------+------+------+

| whl  |      |      |      |  x   | zoom

+------+------+------+------+------+


Keyboard controls:


cmd-a  select all

cmd-c  copy

cmd-x  cut

cmd-v  paste

ctl-h  dup mirror horiz

ctl-v  dup mirror vert

ctl-d  dup mirror diag

m      move (treats m key like mouse button. hold and move mouse)

cmd-z  undo

CMD-z  redo

r      lower resolution

R      higher resolution

y      set axes of symmetry

delete delete


Yes, I am aware that this is crude and somewhat difficult to use well. It is a work in progress. Basically I am getting it to the point of making a thing I want to make with my mill. And, along the way, I identify the most tedious aspect of getting from here to there. And the I go focus on that next. So a lot of the UI is admittedly simplistic, but it will get better over time.

Devlog


02/05/22


I decided that it probably makes more sense to combine cnc into ddd and just manage one tool for now. So I added:


ddd ddcad - edit a .ddc (2D cad) stencil file

    <fname> -- the name of the ddcad stencil file to view


Now I have basic support for outlining polygons to create offset toolpaths. This allows me to position the cutting bit outside (or inside) of the shape perimeter one tool radius away so that the bit will cut around the part, not on the edge of the part, shich would make the resulting part too small.


Now ddcad will replace stencil. I wrots a quick hack to convert the existing .ddt files ito .ddc files because I was too lazy to redraw them.


In the images below the green line is the shape to be cut out, and the red line is the toolpath offset by the radius of the bit.