Menu

Tree [r149] /
 History

HTTPS access


File Date Author Commit
 example 2009-02-04 lifekidyeaa [r143] added an example board, fixed up the readme.
 scripts 2009-02-13 lifekidyeaa [r149] fixed some timeout errors in the weborder submi...
 Makefile 2009-02-12 lifekidyeaa [r147] wrote a script that takes a CSV file (e.g. from...
 README 2009-02-04 lifekidyeaa [r145] added in a note that opengl is required.
 align.ml 2009-01-05 lifekidyeaa [r112] fixed severeal UI bugs:
 blockrotate.ml 2009-01-05 lifekidyeaa [r114] fixed grid-drawing bug when depth buffer (z-sor...
 comm.ml 2009-02-10 lifekidyeaa [r146] added in support for oval pads! (not yet in DR...
 doarray.ml 2008-12-28 lifekidyeaa [r104] added delta feedback when left-mouse button cli...
 drc.ml 2009-02-04 lifekidyeaa [r141] cleaned up the code a bit, got rid of crusty ol...
 glwindow.ml 2009-01-26 lifekidyeaa [r134] progress! I now understand the issues of numer...
 grfonte.ml 2008-04-23 lifekidyeaa [r1] Initial import
 grfx.ml 2009-02-10 lifekidyeaa [r146] added in support for oval pads! (not yet in DR...
 grid.ml 2009-01-06 lifekidyeaa [r115] bugfixes!!! (is anyone listening?)
 kicadocaml.ml 2009-02-10 lifekidyeaa [r146] added in support for oval pads! (not yet in DR...
 mesh.ml 2009-02-10 lifekidyeaa [r146] added in support for oval pads! (not yet in DR...
 mod.ml 2009-02-10 lifekidyeaa [r146] added in support for oval pads! (not yet in DR...
 modtext.ml 2009-01-05 lifekidyeaa [r114] fixed grid-drawing bug when depth buffer (z-sor...
 mouse.ml 2009-01-05 lifekidyeaa [r112] fixed severeal UI bugs:
 pad.ml 2009-02-12 lifekidyeaa [r147] wrote a script that takes a CSV file (e.g. from...
 poly.ml 2009-02-04 lifekidyeaa [r141] cleaned up the code a bit, got rid of crusty ol...
 propagate.ml 2009-01-01 lifekidyeaa [r110] more little tweaks to the interface; yet it sti...
 pts2.ml 2009-01-26 lifekidyeaa [r135] triangularization works (slowly, but correctly,...
 ratnest.ml 2008-11-21 lifekidyeaa [r96] fixed dumb grfx bug - made the bounding box def...
 schematic.ml 2008-12-30 lifekidyeaa [r107] added some alignment & distribute modules funct...
 shape.ml 2008-05-04 lifekidyeaa [r33] added in track dragging. not really working we...
 track.ml 2009-01-19 lifekidyeaa [r127] fixed dumb bug in meshing (adding multiples of ...
 zone.ml 2009-02-10 lifekidyeaa [r146] added in support for oval pads! (not yet in DR...

Read Me

OVERVIEW: 

Kicadocaml is a PCB layout tool that reads and writes Kicad's pcbnew *.brd
files. It is unique in that it reads in BOTH the schematic and board, so you 
can select and filter components & associated tracks based on schematic
hierarchy.  Furthermore, it allows you to array duplicated sub-sheets of the 
schematic, thereby saving time.  

It was/is written by Tim Hanson, sideskate@gmail.com

NETLIST & STARTING A NEW BOARD:

Currently kicadocaml does not do netlist import, nor can it read kicad's footprint
libraries; hence, to start a board, *you must use pcbnew*.  also, if you update
the netlist, you must also use pcbnew.  sorry. Write me an email to complain 
and maybe I'll fix it ;-)

ISSUES:

Kicadocaml requires OpenGL - e.g. an Nvidia video card (they seem to 
work better than ATI products with Linux).  It works on my laptop, which has 
an Intel 945GM graphics accelerator, but not nearly as awesomely as on my desktop
(Nvidia 8800 GTX). 

Note: pcbnew does not always save the net # in the tracks - therefore, when 
opening a board that was previously saved in pcbnew yuo may want to 
"Propagate netcodes to all tracks" (in the options menu) if kicadocaml
does not automatically realize that it was prev. saved in pcbnew. 

Kicadocaml features a novel triangle-based zone filling algorithm; if
zone fill fails in pcbnew, you can fill it in kicadocaml.  However, you cannot 
set the zone edges in the program - more missing features! 

Preference support is severly lacking; kicadocaml should remember the 
state of all options, as well as the grid resolution.

Most all dimensions and measurements are in inches, with some display/
entry support for milimeters. 

BUILDING:

To build from source, install (with apt-get or another manager):
# apt-get install ocaml liblablgl-ocaml-dev libpcre-ocaml-dev ocaml-findlib

The liblablgl package in Debian Etch is broken, unfortunately, 
so you must rebuild it from source.  To do this, run
# apt-get -b source liblablgl-ocaml-dev
in some directory, (and install any required dependencies) and then 
# dpkg -i liblablgl-ocaml_1.02-2_i386.deb
# dpkg -i liblablgl-ocaml-dev_1.02-2_i386.deb

Then you can run 
$ make opt
(or just 'make' if you want the bytecode executable)
and everything should work!
Once you have started the program, be sure to look at 'about'
hidden (for now) in the 'options' menu for the keyboard commands. 

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.