← Back to team overview

kicad-developers team mailing list archive

Re: Module editor branch merged


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

> From: Dick Hollenbeck <dick@xxxxxxxxxxx>
> To: kicad-developers@xxxxxxxxxxxxxxxxxxx
> Cc: 
> Sent: Friday, July 18, 2014 11:49 AM
> Subject: Re: [Kicad-developers] Module editor branch merged
> On 07/17/2014 05:20 PM, Cirilo Bernardo wrote:
>>  ----- Original Message -----
>>>  From: Lorenzo Marcantonio <l.marcantonio@xxxxxxxxxxxx>
>>>  To: Kicad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>  Cc: 
>>>  Sent: Thursday, July 17, 2014 4:27 PM
>>>  Subject: Re: [Kicad-developers] Module editor branch merged
>>>  On Wed, Jul 16, 2014 at 03:27:44PM -0700, Cirilo Bernardo wrote:
>>>>   How do these PCB edge modules interact with the PCB board edges?
>>>>   Will they be solids or cutouts? What happens when a module with
>>>>   a drawing on the Edges.Cut layer hangs over the edge of a PCB?
>>>  Just think about merging the edges in the module with these drawn.
>>>  The resulting behaviour would be the same.
>>>  What happens when you draw a new edge hanging over the edge of the pcb?
>>  I suspect we will need a separate cutout layer then. For me modules
>>  are more useful with cutouts rather than solid outlines. A card edge
>>  connector for example can have a cutout to ensure that the board edge
>>  has the correct shape. This way there will be no confusion about whether
>>  a draw segment is a cutout or a solid. At the moment this is inferred
>>  by assuming there is a single solid whose outline has a feature with the
>>  lowest X value; other segments are then checked for contiguity with this
>>  feature and that forms the solid outline - everything else is a cutout.
>>  With that logic, a module with a solid outline that hangs off the left
>>  edge of the board becomes the board outline and the genuine board
>>  outline becomes a cutout. A module extending over any other edge becomes
>>  a cutout of the board outline. Or am I confused about how the edges
>>  are treated?
>>  - Cirilo
> The day we first talked about this was more than a year ago.  On the very same 
> day, 20
> minutes later, I spent 20 minutes and added support for it to the specctra 
> export.  The
> Collector class was very convenient for that.  I simply gathered up all the
> segments/graphics on the Edge.Cuts layer, aggregating them into a Collector, and 
> then
> output them as a specctra board perimeter.
> My thinking was that it was incumbent on the board perimeter to have gaps in it, 
> which
> would be filled in by segments from the module on the edge of the board.  This 
> would be
> like for castle-ations.  Or an edge connector with notch(es).
> I don't think you have to make this too complicated.  You do not have an 
> ambiguous board
> perimeter.  Your actual *board level* Edge.Cuts graphics would be open.  Then 
> entire
> polygon would then be closed with the addition of the module which closes the 
> gap.  You'd
> have to butt the ends of the graphics.
> The Edge.Cuts graphics in the module know what their relationship to the 
> accompanying Cu
> should be.

 Thanks Dick, I see the logic now, but for me that's pushing a lot of
unnecessary work onto the board designer. Let's say a board outline
already exists in a DXF or even an IDF file. The user then has to
delete and redraw lines to suit the location of the inserted module(s).
Having a cutout layer separate from the outline pushes the job of polygon
merging onto the software, but I understand that's not a trivial change
to the code. I'm not saying we should make such a change, just that there
are good reasons to do it. In my particular case I'll just adapt as needed
for the task, using modules with outlines where convenient and avoiding them
when doing so will make life easier. The upshot to not changing anything is
that the VRML and IDF export code won't be broken so I won't have to touch
that code.

- Cirilo

Follow ups