← Back to team overview

kicad-developers team mailing list archive

Re: Development of IDFv3 export

 

----- Original Message -----

> From: Lorenzo Marcantonio <l.marcantonio@xxxxxxxxxxxx>
> To: Kicad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Cc: 
> Sent: Wednesday, December 4, 2013 8:46 PM
> Subject: Re: [Kicad-developers] Development of IDFv3 export
> 
> On Wed, Dec 04, 2013 at 01:02:27AM -0800, Cirilo Bernardo wrote:
>>  1. exports a rectangular board based on the board bounding box; the board 
> is reduced in size to compensate for a 0.1mm line width.  The intention is to 
> eventually create an outline from the information in the edge layer; however, 
> the information in the edge layer will require some processing to present it in 
> an IDF compliant form.
> 
> Why the reduction? The mill is supposed to be the centerline of
> the edge (in every standard I've seen), so no reduction should be
> done... it's the fabricator that has to adjust his mill for tool
> diameter when cutting/scoring. Ideally PCB edges are 0 width (but for
> obvious reasons need to be shown with >0 width:D)
> 

Hi Lorenzo,  thanks for all the comments.

The outline is reduced by 0.1mm since the ComputeBoundingBox() seems to include the line width in the calculation. I was too lazy to retrieve the actual line width so I just removed 0.05mm from all sides.

>>  2. exports a DRILLED_HOLES section; currently only pad holes are exported 
> but if anyone has some need to export via holes I can do that as well. Since IDF 
> does not have slotted holes, slots are currently represented as round holes 
> using the minor diameter. The intention is to represent slots as part of the 
> board cutout.
> 
> A flag would be useful (in pcbnew) to tag a 'mechanically significant'
> hole. That would be both for IDF and other exporters (like VRML): why
> export all the component pad holes? only the fixturing and some
> significant holes are desired. The pin in a TO220 are not:P
> 


This is needless work in KiCad; let the MCAD worry about the board complexity. Having pad holes helps to find problems with the location of holes or the sizing of the component; for example, a certain manufacturer provides a STEP model which is a good representation of the actual product but the documentation recommended a thru-hole which is too small. I'm not a big fan of interference fitting of leads on a PCB. Anyway, in this one instance my MCAD was telling me something was wrong.

>>  1. If modules may contain cutouts, it should be trivial to support module 
> cutouts once the board outline code has been sorted out.
> 
> Just sort the subpolys to keep the winding correct. In fact, collect all
> the edges from the board AND the modules and reconstruct the outlines.
> SPECCTRA code already (should) do that, at least for the winding and
> polygon building part. But AFAIK pcb edges are not yet enabled in the
> module editor.
> 


Thanks for the tip; I'll have a look at the specctra code.

>>  2. Even after implementation of the library output and proper 
> implementation of the edge outline, the work will only implement a small 
> fraction of IDFv3; if people have a genuine need for other IDF features it may 
> be possibly to implement them.
> 
> Vital question (for the fundamental usage of IDF3): where do you get the
> heights from? Other for that IIRC IDF3 uses the same representation for
> components and board edges (wound polygons). The issue is that you don't
> have any guarantee about stuff on the silk layer (like... closeness or
> being polygonal at all). Of course the 'right' solution would be
> a (pair of?) layer(s) for taking the IDF data from.
> 


Ah, component heights in IDF3. Basically, IDF3 components are crude placeholders and are nothing more than extrusions of an outline. While working with IDF3 in the past I've always substituted good models for any critical components so that I can check the fit. The only reason I bother with IDF3 is that I haven't got around to working with FreeCAD to do better modeling, and since I have SolidWorks anyway, IDF3 meets one of my most important requirements: creating a good model of the PCB.

> 
>>  3. IDFv3 import of a board outline is actually fairly trivial (sadly, 
> conversion from Edge layer to IDF is not trivial). If anyone wants an IDF 
> importer simply for the board outline, cutouts, and mounting holes, let me know 
> and I'll put it on my list of things to do.
> 
> Never heard of someone actually doing that :D
> 


This does happen sometimes, for example if a board is being designed to replace an old component. The mechanical guys might make a model of the old board's shape and create an IDF file or even use an existing IDF file for the obsolete part. My own boards tend to be very simple so the KiCad tools are convenient to use, but for those few people who like to create strange shapes, it's not all that difficult to craft an IDF outline using graphing paper, a pen, and a calculator.

- Cirilo



References