← Back to team overview

kicad-developers team mailing list archive

Re: Module editor branch merged


On 07/18/2014 05:30 AM, Cirilo Bernardo wrote:
----- Original Message -----

From: Dick Hollenbeck <dick@xxxxxxxxxxx>
To: kicad-developers@xxxxxxxxxxxxxxxxxxx
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>
  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
output them as a specctra board perimeter.

My thinking was that it was incumbent on the board perimeter to have gaps in it,
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
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

Hi Cirilo,

The reason why we wanted to add Edge.Cuts drawings to modules is to make it easier to use edge connectors. Often they are supposed to be located in a specific distance from an edge. Now you can store the distance in a module file by adding an edge inside. You can still prepare your boards in the way you have suggested - insert a DXF outline and align connectors by hand. There is no reason to move the Edge.Cuts lines to modules if you are not going to reuse them. On the other hand, if you know that you will have to align them more than once, then there is a good reason to draw Edge.Cuts in the module editor. I have seen that similar effect may be achieved by drawing edges on F.SilkS layer (check demos/video/video.kicad_pcb), but then you have to redraw them in the layout editor. I have also read about cases when users draw edges on the silkscreen layer in the module editor and then moved the drawing to Edge.Cuts layer with a text editor.