Shapewise selection

edited July 2017 in General
Hi Mathias,

Thank you very much for your outstanding tool.

Is there a way to automatically select objects (both shapes and instances) within a given layer that are overlapped (fully or partially) by objects in another given layer?

For example, a large (resolved) array of instances is required to be cut-off in few places.
This is easily achieved by using the Boolean "difference" option between the layer containing the instances array and the layer containing the cut-off shapes, but then the result becomes a huge set of shapes.
Instead, a much smaller file is achieved, when only those instances which overlap the cut-off shapes are selected, then flattened, then moved to another layer and only then being subtracted by the cut-off shapes. This way, non-overlapped instances are kept intact, leading to a much smaller file.
The problem with the second approach, is that it requires me to select and flatten the instances to be cut-off manually, sometimes one by one (depending on the complexity of the cut-off shapes).
I think an additional "mode" in the "Boolean operation setup" window, to perform just "selection" (and no further operation) could be handy in other scenario too. Perhaps this could be alternatively achieved by a script, but unfortunately I have no knowledge in that.

Best regards,
Eyal

Comments

  • edited July 2017

    Hi Eyal,

    right now, there is no such option. There is a "cell variant formation" feature http://www.klayout.de/doc/manual/create_variants.html#k_1. Maybe that leads you somewhat further.

    Apart from that of course scripting is an option. There is a toolbox project https://sourceforge.net/projects/theredtoolbox which you might want to check too.

    In a more general sense you're asking for an (approximately) hierarchy-preserving boolean algorithm. That's a whole class of algorithms and the domain of some heavy commercial tools. It hasn't been my goal to replace this class of applications, so I'm not supplying leading-edge algorithms here. That would be a task for many more night shifts.

    Matthias

  • edited November -1
    Hi Mathias,

    Indeed, to fully automate the exampled task, a hierarchy-preserving boolean algorithm is required.
    But that was just an example.
    In general, what I look for is a simpler script to support just the functionality of “shapewise selection”.
    Furthermore, in order to keep it useful for other types of tasks, no further actions should be included (or else it will become restricted).

    Best regards,
    Eyal
    P.S> thank you for the useful link to “theredtoolbox”.
Sign In or Register to comment.