Arraying an object along a path, creating multiple instances where the object changes shape along the path

Hello! New to SkectchUp and am playing with Make. I am in need to a way to do something I can’t do in AutoCad. I need to take a beginning and ending 3-D object and create an array of 108 of these items along a path. As the object instances move along the array, each one is changed from the previous one such that the beginning profile “morphs” into the ending profile. Think of it as creating a curved stud wall 16’ tall where the last 3’ of each stud is curved. The first stud has barely any curve in the top 3’ and the last stud is extremely curved in the top 3’. I need to create 108 instances of this stud along a semi-circular path. No two studs will be identical as the top 3’ of curve is changing with each instance.I need to create 108 separate objects (literally like a stud wall) - not a lofted skin.

Is this something SketchUp can do?

Thanks!

Steve

I have no doubt that SketchUp can do this, the question is which features to use and how difficult it will be.

My first thought is to split each “stud” into two pieces - the unchanging 13’ below the top 3’ and the top 3’ which is curved on an a progressively smaller radius - anchored at the bottom to be vertical and of constant (3’) arc length. Each piece becomes a component, further enclosed in an outer “full stud” component.

My next thought is to use Dynamic Components, with the “Copies” attribute in the outer component to set the number of copies (107 - the original doesn’t count!), then, in the curving subcomponent, calculate the geometry using the read-only attribute “Copy”. But I don’t see any way to change the curvature dynamically. DC’s can move geometry, rotate geometry, set size in each of 3 dimensions, and a few other things, but they can’t (so far as I’m aware) alter the radius of a curve! So scratch that thought.

The place I’m sure it’s possible is by using Ruby - which CAN both draw and alter geometry in ways unavailable to DCs. But I can’t take you any farther down this path as, while I understand some of what can be done with Ruby, I’ve never actually done it myself!

The other question - unrelated to the creation of the differently curved stud tops - is placing them along a path. I think (and I trust experts to confirm) that once you have your 108 studs arrayed in a straight line, there are plugins that will rearrange them to conform along a path.

Not a full answer, but I hope this nudges you in the right direction!

do you mean curved or angled, having each individually angled is far easier than progressive curves…

john

I agree with @sjdorst that this is feasible but will require programming of one sort or another. I don’t think you can do it using built-in SketchUp tools without an unreasonable amount of work.

Doing it with dynamic components might also be extremely difficult.

Doing it with a custom Ruby extension would be feasible though not necessarily trivial. The main source of complexity would be the nature of the change needed from one location to the next, which must be expressed by some parametric formula that Ruby can evaluate.

Curved. Think of a wall stud going up to a curved cove ceiling and the stud curving along the narrow (1 1/2") end of the stud to conform to the curve of the ceiling (even though in reality curved ceilings wouldn’t be built this way).

I was going to attach a PDF of what I could do in AutoCad to give a sense, but I don’t see in this forum how to attach to a post.

If the file is 3MB or less, you can either drag-n-drop it onto a post while you are writing, or click the upload symbol at the top of the reply window. If it is too large, you can save it to a file sharing site and provide a link here.

Ah - didn’t recognize that as an upload button. We’ll see if it shows up now.

Quickie.pdf (136.5 KB)

From your .pdf, it looks to me like the curved portion of the “studs” all have the same curve! It’s the vertical portion that changes length as you go from one “stud” to the next.

Is this a correct interpretation of what you’re trying to do?

Nope. This is as close as I can do in Autocad - decrease the length of the portion below the curve and keep the curve the same. The curve shown at the “high” end is the FINAL curve and the lowest curve is actually more vertical (you can see how in this quick model the low one cuts into the back of the bench - I need the lowest curve to be less extreme and the curve to start ABOVE the bench back). The smaller curved wall is fine as the “studs” keep the same curvature throughout and just get shorter.

Hence needing to make this section outside of Autocad.

OK. So you do need to change the inner (and outer) radius as you move from one stud to another. Darn. I’m now 99% sure you need to do this in Ruby. And I’m not the one to help you with that :disappointed:

If it was me, I would create the shape as a straight solid in any method you are comfortable with, then slice it into your 108 pieces using Tig’s slicer5, then curve it using Chris Fullmer’s Shapebender, then give your slices thickness with Fredo’s Joint Pushpull.
Here is a simple version for the process, not in any way accurate to what you’ll need.

4 Likes

Brilliant approach, @Box! Starting with a whole shape and then slicing and bending it. I wouldn’t have thought of that.

Cheers Steve, it was just one possibility that hit me as I read the post before I ran out the door for work. When I have the time I would love to redo the gif as you can see the thinking going on.

I GREATLY appreciate the help. The trick for me is that I am pretty much brand new to SketchUp. I’m mainly an AutoCad person - but I can’t seem to get AutoCad to handle the “morphing” of the top curves (I have other folks on the AutoDesk forums giving e feedback on that). I can get AutoCad to do everything else. So I’m having to pick up learning about SketchUp by doing something fairly difficult rather than starting easy and working my way up.

If you have the first curve and the last curve and a preference ‘path’ of the morph, it’s a simple structure.