Skip to content
This repository

A 2D CAD with rudimentary support for 2.5D GCode generation.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 builds
Octocat-spinner-32 critcl
Octocat-spinner-32 examples
Octocat-spinner-32 resources
Octocat-spinner-32 scripts
Octocat-spinner-32 tksrc
Octocat-spinner-32 .gitignore
Octocat-spinner-32 BUGS.txt
Octocat-spinner-32 LICENSE.txt
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.txt
Octocat-spinner-32 TODO.txt
Octocat-spinner-32 changes.txt
README.txt
Around June of 2007 I got offended at how much CAD/CAM programs cost for
generating GCode toolpath files for CNC mills.  So I did what any insane idiot
coder would do.  I started writing my own.  Most coders would get a ways into
it and give it up, but I kept working on it.  The result is TkCAD, written in
42,000+ lines of TCL code and just a few hundred lines of C extensions.

It's currently for OS X only, almost completely due to the extensions it uses:
  fontdata        Gets font glyph curves. (Critcl, Carbon only, simple)
  mlcnc_critcl    Speeds up geometry calculations. (Critcl, portable)
  enhimgcopy      Allows scaling and rotation of images.  (Critcl, portable)
  Img             Allows loading of JPEG images and such.  (TEA, portable)
  MacCarbonPrint  Allows printing under OS X.  (TEA, Carbon only, complex)

If you ported the extensions, you could port TkCAD to other platforms easily,
other than printing.  The mlcnc extension actually has TCL equivalents
of its calls as a fallback, but they're much slower.  I used to use the
tkpath extension, as it makes much cleaner beziers, but it has occasional
crashes with complex files.  Sadly, MacCarbonPrint and tkpath are both
orphaned works, due to the death of the developer.

If running under Wish 8.6, TkCAD supports canvas font rotation.  If the
tkpath extension is loaded, that is used instead.  Finally, as a fallback,
the font glyph curves are extracted by the fontdata extension and they
are displayed as beziers.


Something went wrong with that request. Please try again.