Open Collective
Open Collective
Back to conversations

Creating a single part from a multi-part dynamic component.

Jeff Day

Posted on March 25, 2023

Hello! New to OpenCutList but happy with what I'm seeing so far! I have a dynamic component for the side of a cabinet. The component contains multiple parts, including the main panel of the cabinet and a plinth that is 3" narrower to create a toe kick area. I use formulas to resize the parts to keep the toe kick area consistently size.

My goal is to create a single part for the entire side panel of the cabinet and have OCL ignore the internal parts within the panel. Any ideas on how I might do this?

Jeff Day

Posted on March 26, 2023

Ok, I wanted a solution that would work this weekend, so I grabbed the OpenCutList source code and tweaked a single line that, together with some changes in my model, gives me a solution.

I made a 2 minute video explaining why I need this solution and how I went about creating it: https://youtu.be/MlnRIQxDo4Y

Quick summary: I have a dynamic component for a cabinet side panel. It is set up to create a toe kick of a configurable size regardless of you resize it. Making this work requires that the panel be made up of three nested objects, and the component resizes these objects to account for the toe kick. OpenCutList was creating a separate part for each of the three nested object, but what I need is to create a single part that is the union of the three sub-parts. My solution was to create a single  hidden part of the right size, and to resize it so that it's always the correct size for the actual part I need.

The next step is to tweak OpenCutList to use my hidden part and ignore the visible but unwanted "sub-parts" that make up the component. I did that by changing a single line in the OpenCutList extension to always use parts (even if hidden) that are tagged as "OpenCutList: IsPart" and to ignore parts that are tagged as "OpenCutList: IsNotPart"

```
if (entity.visible? && _layer_visible?(entity.layer, path.empty?) && entity.layer.name != "OpenCutList: IsNotPart" || entity.layer.name == "OpenCutList: IsPart") 
```

I acknowledge this is an incomplete hack, but I do see value in having a more general version of this capability where OpenCutList defines a part for an entire component rather than all of the sub--components. This would really help anyone who needs to machine parts down from their initial cuts (e.g. my situtation with multiple adjacent parts, a turned part, etc.)

Boris Beaulant

Posted on March 26, 2023

Maybe 2 easier "tweaks" are :

1. Convert sub-component into groups. (OCL ignore groups) - the standard solution that is not a tweak 😛
 

2. Or set the cut opening attribute to true to your sub components. (OCL ignore cut opening components) - the tweak solution that works without modifying OpenCutList sources.

👍️  2

Jeff Day

Posted on March 31, 2023

Thx Boris! Did not know about the grouping behavior, and that solves half the problem, which is making OCL ignore the sub-components.

Do you know how to make OCL create a part for the full component?

Boris Beaulant

Posted on March 31, 2023

Hi Jeff,

In the above screenshot you can see that 2 sub-components create only 1 part in OCL.

Jeff Day

Posted on March 31, 2023

OK! This works, Boris, though I found that OCL chokes if a component contains a single group.

Is the behavior you've shared with me documented?

Boris Beaulant

Posted on March 31, 2023

 I found that OCL chokes if a component contains a single group.

Really, how did you obtain this ?

If I try it works :

Is the behavior you've shared with me documented?

Do you talk about using the "cut opening" attribute ?

No, it's more a tweak than a real feature :)

Elvis Meiado

Posted on April 22, 2023

Uso aqui criando grupos internos,  e por último crio o componente, com as configurações. 
Assim os grupos conseguem receber os atributos das configurações,  e o Opencutlist lê apenas o componente externo para a relação de peças. 

Uso isso para fitas de borda mais largas, aplicadas em MDF engrossado (junção de algumas peças menores).

Funciona de forma correta.

Conversation followers