kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #11898
Re: bugs 1261583 and 1236583
----- Original Message -----
> From: jp charras <jp.charras@xxxxxxxxxx>
> To: kicad-developers@xxxxxxxxxxxxxxxxxxx
> Cc:
> Sent: Thursday, December 19, 2013 6:27 AM
> Subject: Re: [Kicad-developers] bugs 1261583 and 1236583
>
> Le 18/12/2013 19:36, Wayne Stambaugh a écrit :
>> On 12/18/2013 1:29 PM, jp charras wrote:
>>> Le 18/12/2013 06:02, Cirilo Bernardo a écrit :
>>>> These bugs are identical and concern the 3D viewer (rectangular
>>>> outline used because adjacent segments fail the exact endpoint
>>>> test).
>>>>
>>>> The line causing this is in specctra_export.cpp, line 1011:
>>>>
>>>> prox = Mils2iu( 0 );
>>>>
>>>>
>>>> I did not submit a patch because I believe some discussion is
>>>> necessary about the limit imposed for the closeness of points and
> the
>>>> routine (fillBOUNDARY) is also used by the specctra exporter. In
> bug
>>>> 1236583 the user has points which differ by 500nm. In bug 1261583
>>>> the difference in the DXF file is less than 10nm.
>>>>
>>>> Is it possible to change the limit without adversely affecting the
>>>> specctra export, and if so, what limit would people consider
>>>> reasonable? From my point of view, the worst case which isn't
> in the
>>>> domain of the plain ridiculous would be that someone uses a 32-bit
>>>> float representation of a board which is about 1000mm across - that
>>>> would give a worst case expectation of about 1 micron. I would
>>>> imagine even 10 microns should be acceptable given modern
>>>> manufacturing techniques and limitations of reality.
>>>>
>>>> - Cirilo
>>>
>>> You can try:
>>> prox = Mils2iu( 1 );
>>>
>>> One mil is certainly acceptable, and should be enough for rounding
>>> issues when arcs are converted from dxf files.
>>>
>>
>> This may solve the 3D drawing issue but is it acceptable to export to
>> specctra with an unclosed board outline? I seem to remember there being
>> some debate as to whether or not that is valid. The other option is
>> attempt to close any gaps in the board outline only for 3D rendering
>> purposes and enforce a closed board outline for specctra export.
>
> You are right.
> I'll make more tests soon with exported dsn files.
>
> However 3D drawing needs valid polygons to display the board outlines
> and holes.
> And specctra export uses prox = Mils2iu( 10 ); to find holes inside the
> board.
> This is the reasons I proposed prox = Mils2iu( 1 ); in main outlines
> calculations.
>
> --
> Jean-Pierre CHARRAS
>
>
MCAD software can also be very strict with the IDF outline; what I did for IDF was to force the end segments to be the same by writing only 1 point from each segment except for the first point (2 points) and the last point (none). fillBOUNDARY() also does this; if we patch line 1101 (test for closed polygon) to replace the last point with the first point then there will be no problem for specctra either.
- Cirilo
Follow ups
References