Le 12/10/2016 à 14:53, Tomasz Wlostowski a écrit :
> On 12.10.2016 14:49, jp charras wrote:
>> Hi Orson and Tomasz,
>>
>> A few days ago I had a look at this issue, previously reported to the Kicad
>> forum.
>> Although it happens on 4.04 and not in the current version, I am thinking it
>> is not fixed (it does
>> not happen just because there are a few changes which generate a slightly
>> different zone shape).
>>
>> It happens because in SHAPE_POLY_SET::fractureSingle( POLYGON& paths ) this
>> code:
>>
>> // keep connecting holes to the main outline, until there's no holes
>> left...
>> while( num_unconnected > 0 )
>> {
>> <skipped>
>> num_unconnected -= processEdge( edges, smallestX );
>> }
>> hangs if processEdge returns 0.
>>
>> processEdge can return 0, and this is the case with the minimal board I
>> attached.
>>
>> May I ask you to have a look into this suspicious code (I am not familiar
>> with it)?
>>
>> Thanks.
>>
> Hi JP,
>
> Does the file outline created by 4.0.4 contain duplicate vertices?
>
> Tom
>
I don't know (not really easy to say).
Have a look at (in zones_convert_brd_items_to_polygons_with_Boost.cpp, kicad
4.04), line 456:
fractured.Fracture();
It does not use the fast mode, and therefore the polygons are made strictly
simple before fracturing
(unless I missed something).
and it hangs.
If modified like this
fractured.Fracture( true );
It uses the fast mode, and therefore the polygons are not made strictly simple
before fracturing,
but Fracture does not hang (perhaps just because the geometry has just changed
a bit).
Note also the current code (in master) uses always the fast mode.
--
Jean-Pierre CHARRAS
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help : https://help.launchpad.net/ListHelp