← Back to team overview

kicad-developers team mailing list archive

Re: Experiments and considerations for more layer



On Mon, 02 Sep 2013, Cirilo Bernardo wrote:

> Hi Brian,
>  It looks like an awful lot of work you've done there.  Has any of
> it made its way back into the main tree?

None.  I hear you guys might have got internal units done after three

>  I'm also interested in knowing the extent of the work you did with
> IDF. A number of people on the users' list have said that they need
> IDFv3 import since their clients send them IDF files. I'm convinced
> now that IDF export is also essential; some of my clients have sent me
> PCB mechanical data as IDFv3 which I then import into SolidWorks and
> tweak.  Although I still plan to use FreeCAD to create actual
> mechanical assemblies which can be sent to mechanical people in STEP
> format, IDF is far more compact even though no fine details are
> possible and a number of people have told me they only want IDF and
> nothing more.

I roughed out IDF2, IDF3 and even the oft-unused IDF4.  The major
problem was with representation within kicad.  The BoardOutline,
RouteOutline and even PlaceOutline was easy enough, but the
RouteKeepout, ViaKeepout, PlaceKeepout, PlaceRegion, Electrical,
Mechanical, DrilledHoles, Notes and Placement sections were
unrepresentable given than kicad considers all these things in 2
dimensions and on two layers silk-front and silk-back.  I considered
getting some of the 3D shapes from the VRML files for each module,
but with no model for 3D keepouts and keepins they could not be
tested for proper placement.  kicad could not even represent a
simple non-plated mechanical hole, far less the way what IDF needs
it.  I don't even want to talk about the thermal (see section

Parsing and generating the file format is easy enough.  The problem
was that when your look into kicad for where to store or retrieve
the data for the format, it simply isn't there and the internal
model is insufficient for simply adding it in the baby-steps
incrementation fashion that its maintainers prefer.

Even where the data is there, it is usable.  If you have 5000 1pF
0402 ceramic capacitors, IDF describes these 5000 capacitors once
and refers to the description 5000 times with placement data.  Kicad
repeats the data for each an every instance of a board item in its
file and internally, there are 5000 full module descriptions for
each capacity resplendent with comingled placement data.  Matching
5000 module descriptions to extract the 5000 pieces of placement
data is the horror of kicad's internal representation.

The biggest deal?--in kicad components have no height, all fit
within their silk, never overlap or protrude, never pass through or
into the board, generate no heat, an, as above, are all considered

Basically anything that IDF supports that SPEECTRA DSN doesn't
support is unrepresentable.  Most of what SPEECTRA DSN does support
is still unrepresentable in kicad.

Read section 5.6 on keep-out layers for some notes on my trials and

I really wish gEDA wasn't such an emacs clone.


Brian F. G. Bidulock    � The reasonable man adapts himself to the �
bidulock@xxxxxxxxxxx    � world; the unreasonable one persists in  �
http://www.openss7.org/ � trying  to adapt the  world  to himself. �
                        � Therefore  all  progress  depends on the �
                        � unreasonable man. -- George Bernard Shaw �

Follow ups