Merging of geometries does not seem to work?

Issue #99 resolved
Yiannis Mandravellos created an issue

I selected the three isolation passes (test_iso1, test_iso2 and test_iso3) and clicked on "Edit->Join geometry". This created a "Combo" object but it was empty (or so it looked). And these were printed in the terminal right after clicking "join":

[DEBUG][MainThread] new_object()
[DEBUG][MainThread] new_object --> OC.get_names()
[DEBUG][MainThread] Calling object constructor...
[DEBUG][MainThread] 0.000963 seconds before initialize().
[DEBUG][MainThread] 0.000409 seconds executing initialize().
[DEBUG][MainThread] 0.000097 seconds converting units.
[DEBUG][MainThread] Moving new object back to main thread.
[DEBUG][MainThread] on_object_created()
[DEBUG][MainThread] on_object_created --> OC.append()
[DEBUG][MainThread] FlatCAMGeometry.set_ui()
[DEBUG][MainThread] plot --> FlatCAMObj.plot()
[WARNING][MainThread] Did not plot:<class 'FlatCAMObj.FlatCAMGeometry'>
[WARNING][MainThread] Did not plot:<class 'FlatCAMObj.FlatCAMGeometry'>
[DEBUG][MainThread] on_zoom_fit--> OC.get_bounds()
[WARNING][MainThread] DEV WARNING: Tried to get bounds of empty geometry.
[DEBUG][MainThread] 0.265471 seconds adding object and plotting.

Comments (5)

  1. Juan Pablo Caram repo owner

    Confirmed bug.

    There is an inconsistent behavior. I tried 2 different gerbers, did 3 pass isolation, joined the 3 resulting geometries and then deleted them, having only the "Combo" geometry remaining. It worked with one and not the other. Results are shown in the attached screenshots FC81_ComboNOT_OK.PNG and FC81_ComboOK.PNG.

  2. Juan Pablo Caram repo owner

    The method FlatCAMGeometry.merge() handles 2 cases:

    try:  # Iterable
         for shape in geo.solid_geometry:
             geo_final.solid_geometry.append(shape)
    except TypeError:  # Non-iterable
         geo_final.solid_geometry.append(geo)
    

    The last line should say: geo_final.solid_geometry.append(geo.solid_geometry)

  3. Log in to comment