kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #14533
Re: Edge.Cuts layer in the module editor
----- Original Message -----
> From: jp charras <jp.charras@xxxxxxxxxx>
> To: kicad-developers@xxxxxxxxxxxxxxxxxxx
> Cc:
> Sent: Wednesday, September 3, 2014 4:04 AM
> Subject: Re: [Kicad-developers] Edge.Cuts layer in the module editor
>
> Le 02/09/2014 18:57, Wayne Stambaugh a écrit :
>> On 9/1/2014 5:48 AM, Maciej Sumiński wrote:
>>> It has been already a few weeks since the GAL module editor has been
>>> merged. Among the introduced changes, there is support for Edge.Cuts
>>> layer in modules.
>>> As I have not received any bug reports related to the feature, does
>>> anyone mind if I remove the error message ("This item has an
> illegal
>>> layer id.") that appears when one tries to edit properties of a
> line
>>> located on the Edges.Cuts layer?
>>> There was also Lorenzo's proposal to add a toolbar button for
> changing
>>> width settings in the module editor.
>>> If noone opposes the changes, I will take care of both.
>>>
>>> Regards,
>>> Orson
>>>
>>
>> I fine with it. I think have board edges in footprints makes sense.
>>
>> Wayne
>
> Orson,
> Be careful with Edge.Cuts layer in modules.
> If they are not currently allowed, this is because I have a good reason.
>
> In specctra export, and therefore in 3d viewer, we *need* a closed
> polygon for board outline.
>
> Currently, yo build this outline, when searching for a Edge.Cuts segment
> end near a given segment end, the max distance allowed to find this
> segment is very small (currently 2 microns).
>
> It means if you create the board outline and the footprint outline
> (and/or place it) using 2 different grids, I am pretty sure you'll have
> an issue when searching "connected" segments to build the board
> outline).
>
> You may have to enhance this search (for instance the max distance could
> be related to segments thickness).
> see SPECCTRA_DB::fillBOUNDARY().
>
> Otherwise, just allowing Edge.Cuts segments in footprints is just a bug.
> This is the only one reason they are not currently allowed.
>
> --
> Jean-Pierre CHARRAS
>
I have suggested a solution for this before, but my proposal does break
previous behavior and will require changes in many parts of the source.
My idea was that since we now have enough technical layers we can have a
layer for solid polygons and a layer for cutouts. Taking the case of an
edge connector, a polygon can be placed on the cutout layer so that
placing the footprint on the edge of the board will automatically cut out
the correct profile. This scheme will also support the somewhat rare
case of cutouts for mechanical features of an electronic component
and will also solve the generic case of producing the correct board shape
when a cutout extends beyond the edge of a board (as in the specific
case of a card edge connector).
With the current behavior, placing edges on a module's Edge.Cutout layer
does not have a well-defined behavior. If the graphic is a closed loop
then it will become a cutout if it is entirely inside the board outline,
and if it extends to the left of the board outline then it becomes part
of the solid board - another problem specific to that case is that if the
cutout is circular and extends to the left then it becomes the entire
board. Because the behavior is not well defined, we may get different
results in different features of KiCad such as the 3D viewer, VRML export,
and IDF export. The poorly defined behavior will obviously extend to the
handling of KeepOut zones because we're not really sure whether something
is a cutout or not.
- Cirilo
Follow ups
References