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:
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     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to