Rhino BETA Feature: ArrayCrvAdvanced

RH-92235 is fixed in Rhino WIP

RH-92358 is also fixed this Rhino WIP.

Maybe most users don’t bother to use them or even know that they exist, but blocks have the ultimate importance in a lot advanced user workflows. Blocks with dynamic properties, multiple levels, etc, a lot of effort goes into building them sometimes. I really want to emphasize their importance to advanced users, and my wish for all tools, new and existing to be compatible and optimed for them. The new array looks very useful, and Rhino as a whole should move in the direction of more poewrful tools that are not constrained by the 90’s era command line like that. Congrats @Matt_Bennett !

THANK YOU!!!

Us jewellery CAD guys really like to array gems along curves. Using ArrayCrv was never a solution, we’d always need a 3rd party plugin to do so. Expanding/replacing ArrayCrv is a massive step forward, and is greatly appreciated.

One comment I’d make is with scaling - gemstones will often have discreet dimensions. So I might want to graduate 5 diamonds from 2mm to 4.5mm.

A true graduation would give measurements of (2mm, 2.62mm, 3.25mm, 3.88mm, 4.5mm). The ability to specify the scaling of individual elements would help in this situation and would allow a graduation of (2mm, 2.5mm, 3.3mm, 3.9mm, 4.5mm) - all readily available gem sizes.

This would be especially helpful when we are forced to use specific sized gems - which is often the case. I should note that my gems are 1mm block instances - so the scaling factor also gives me the desired dimension (1mm scaled 1.5x results in a 1.5mm gem)

I hope this feedback doesn’t detract from my gratitude and with how impressed I am with what you’ve built (especially with implementing History!), again, thank you!

@aaron4 You could try combining it with this command for scaling during the development phase: first apply gradual scaling, and then use ArrayCrv before mapping it onto the surface.
I’m not sure if it’s possible to assign precise values like 1, 1.5, 2, etc., since I haven’t tested it yet, but if it is, you could suggest it with a few examples.

Yeah for sure, I do think we could eventually introduce some sort of list of sizes on the curve. I don’t see this happening for v9’s new ArrayCrv revamp but could certainly happen going forward. I’ve made a ticket so that we don’t forget about the request.

The Array Curve Plus plugin (from Jarek? I think?) allows for per-item scaling as well as start/end scaling. Works very well, would love to see the same functionality in the new Array Curve tool.

I’ve been waiting for this for years!!! Thank you!!!

When using history, editing the curve works only 1x:

That would be great!

Would you then use a “Round” such as Floor/Ceiling/Neutral (similar to GH) to select which value to use from the list?

Late to this discussion, tried to read everything to catch up but I apologize if I’ve missed an explanation here. I’m trying to use ArrayCrv for the legacy behavior and can’t figure it out… Do I need more coffee or is this actually difficult?

ArrayCrv Simple.3dm (57.7 KB)

The initial alignment is by objects bounding center and world orientation, not the objects location in the world. ArrayCrvOld still supports the older method. Best practice is to create array objects around the origin for maximum positioning options and control during layout.

Fair enough. I see what you’re doing. For a moment I thought maybe I could set a CPlane aligned to my object and then use that to orient but that’s not an option either. I see why this is more powerful. I’ll keep ArrayCrvOld in my pocket until I get over the muscle memory of building my objects directly on the curve. Interesting tool and cool UI. It’s obvious from this thread that the jewelry folks should dictate functionality.

It definitely is a shift from the “from here” alignment of the old tool. That method worked but got limited quickly and didn’t do a good job of supporting a list of blocks that you might want to sit and noodle with and a few other weird alignment scenarios. However, we don’t have any plans of removing the older version of the tool, it still has its use cases.

Hi

The panel is very long on laptop screens—why doesn’t it include Expand/Collapse arrows, like the Print panel?

Noted, well take a look. https://mcneel.myjetbrains.com/youtrack/issue/RH-95170/ArrayCurve-Dialog-support-expanders

Arrows to expand/collapse the options are better than a vertical scroll slider. The latter should appear only if the user reduces the size of the pop-up window way too much.

When History is on and _ArrayCrv is finished, we can edit the curve afterwards.
Good, just as expected.
When History if off, then of course that is not possible.
Also as expected.

The next time I start ArrayCrv it doesn’t know about the former situation.
BUT
When I select one of the distributed objects and then start ArryCrv, I can edit the existing thing.
This is nice, but I only found out by accident.
Would be good to have this feature communicated.

Or, even better, a double click without command to make this happen.

Hi @Charles , Yeah history is a mess atm but the plan is to get it playing by more traditional rules and not fall apart when the object count goes up after a curve edit. RH-91295 we’ll likely have to make some edits to history itself to support some of that.

And you’re right, double click is on the todo list as well RH-95207. We’ll also get some notes in the help file about the ability to edit. @KelvinC

Id also like to see it get a secondary “between” orientation version where you could select an existing layout of objects and array objects between those objects. EG, fence posts between panel sections, prongs between gems, etc.