Dynamic Component: dynamic cutouts

It is certainly possible in principle, but will need careful use of IF statements to see which condition applies.

Can you be more specific? How do you locate a cutout in a dynamic component?

V good question. I was thinking about that while out on a walk this afternoon.

I don’t think I could do it with only one component inside the DC. I think you would have to make it out of three or five, with the dado created by a gap between them, and some hidden edges. And (if it matters) the result wouldn’t be a solid.

Why do you want a DC? Wouldn’t it be easier to have two ordinary ones - one with one slot, one with two? Then open for editing and move the end faces to size, and move the slot(s)? And resize the slots if necessary.

Unless you have hundreds of the things to draw, you’ll spend more time on debugging the DC than you’d spend drawing them natively in the first place.

1 Like

Doing a dynamic row or grid of holes with hole-cutting components is out. Dynamically created copies of hole-cutting components do not cut a hole. An old bug.

Anssi

Here’s the reason I would like to be able to create a DC for this:

I design furniture for clients. For a particular bench one client may order 72” another 48” another 52”, etc-

Each time I would like to be able to scale the model to the final dimensions and get all the miters, cuts and dados in place. I do not want the cuts necessarily to be scaled (e.g. the slats on one bench will be ¾” no matter how long or wide it is so need to plan the # of slats, distance between them, where to cut the dado, etc.

Is this doable?

T

2 Likes

It’s certainly doable without using Dynamic Components.

If the dados were represented by a solid component then the dado components could be positioned by the DC as you scale. Once the scaling is complete, you could use the Solid Tools to subtract the dado components from the slat. Not a complete answer, but gets you closer.

As Dave hints at, using SketchUp’s array/copy features of the Move tool would be almost as efficient.

Yes I know. I have done it three times so far and it took four hours tonrejigger the model manually. Is there a speedy way - that is the question.

Four hours to adjust the length of the bench model? Holey buckets! Yes! I would have to say there’s a speedier way. Perhaps you could share your SketchUp file of the bench. If you don’t want to make it public, send it via a private message. With your model in front of me, I’m sure I can help you sort out a much faster way to handle it.

It is not currently possible with Dynamic Components if you are thinking about the dado “cuts” as negative space. Why? Because Dynamic Components can’t generate new geometry! Everything about Dynamic Components revolves around manipulating existing, manually created geometry. You can control placement (posX, posY, and posZ attributes), size (X, Y and Z attributes), rotation (rotX, rotY, rotZ), appearance (Hidden, Material), behavior (onClick, ScaleTool). Even “Copies” relies on geometry original created by hand.

So if you approach the creation of dadoes by removing material dynamically from your board, it won’t work with Dynamic Components.

However, @john_mcclenahan is correct in that it could be done with judicious use of creating (through Copies, sizing, placement, and judicious use of IF statements) the appearance of dadoes from:

  • A subcomponent representing the parts of the original board that are never “cut” by a dado
  • A subcomponent representing the parts of the board between the dadoes - this would have 2 or 3 Copies based on an IF statement.

It actually wouldn’t be that hard, although I shudder to contemplate adding to the complexity by allowing dados on both sides of the board - the logic to insure that the dadoes on opposite side are sufficiently far apart won’t be simple.

The idea of a Dynamic Component being able to have a subcomponent (in your case the dadoes) that define a “negative space” is a topic currently under discussion in:

@tirandagan1,

Attached is a “Gaps” example. Scale the component to any reasonable size (scale included.) Open the model, not import it. Once scaled, you can use the Solid Tools “Outer Shell” to make it a single board.


dynamic-dadoes.skp (90.9 KB)

You could also hide the meeting edges between upper and lower elements so the result looks like a single piece of wood with a dado.

Correction: The gaps formula should look like this:

gaps: =if(LenX <= 36, 1, 2)

Edit:

I’ve learned this simple IF can fail under certain conditions. To reproduce:

  1. Scale the attached component along the X axis to some value larger than 36"
  2. Enter 36" Enter
  3. You must force a Redraw due to a bug in DC’s when entering an exact length after a Scale operation.

if-fail.skp (133.7 KB)

the file shows two methods

  1. a repetitive hole, this is achieved by creating a cutting component then embedding it within another cutting component, thus the hole can repeat within the outer cutter. Although one could add cutters and delete the end surfaces and hide the edges, the cutters do not cut an edge

2.Therefore, the second is the tradition part build to create the model. however in this case it is double wrapped so that one can select (via outliner) the inner shell, outershell this and expode via right click menu, then the parts will become one with just the data of the front component. If you right click and save this component before the shell and explode operation, you can swap an exploded one via the right click menu with the saved one and it will take on the new characteristics, the inserted updates to any changes. this is achieved by exposing the len(x,y,z) and using current and the nested groups.

  1. further ideas can be explored on my warehouse page under the same name

dado examples.skp (135.9 KB)

Folks - you have all provided great examples and I truly appreciate the thoughtfulness of your ideas. I am struggling a bit with the use of a cutting component but will try to play around with it (thank you pcmoor and jim_foltz).

I was thinking of a way to repay the community so I have created a cheat sheet for all the formulas used in SketchupPro dynamic components. Feel free to distribute this file or post it elsewhere.

Sketchup Dynamic Components Cheat Sheet.pdf (210.6 KB)

Slight update - noticed I missed a few math functions…Sketchup Dynamic Components Cheat Sheet.pdf (209.3 KB)

1 Like

Is this something that a plug in like Profile Builder can help with? It might be worth looking into…

Thank you - very useful!

Hello SketchUp friends! I am still struggling with this. Here is a file of what I am trying to do. I created two components - both have “cut opening” enabled and Glue to “Any”. I am unable to make this look like a true dado cut. The first one is a solid negative space. The second one I removed 3 walls, leaving the lines to frame the shape. SketchUp does something…sketchy (sorry I could not avoid the punn): It cuts out one hole, but as you can see from the image I am missing two more wall cutouts. Is this a bug, by design or am I doing something wrong?

Here is the source file:

MCM Dynamic Bench.skp (1.8 MB)

the “cut opening” can only cut one surface, you would have to add 2 more cutting groups or components. However you cannot cut the edges, as shown

MCM Dynamic Bench.skp (40.7 KB)

your best approach would be the build in parts with hidden connections

P.S, it is best to use window/model info/statistics and purge your sample before sharing to reduce file size