Rhino WIP Feature: Constraints

@Joshua_Kennedy
Two more absent features that I am always painstakingly reminded of are the in-canvas preview for chamfer and fillet commands for curves. There should be a live preview, click to confirm for their radii for fillets and edge1 and edge2 distances, equidistant or distance and angle for chamfer.

Currently offset has an input value that has no preview, but it also has a through mode with a preview and click to confirm. The same should be added for fillets and chamfers for V8.

See: Feature request: Real time (curve) filleting preview mode

3 Likes

I added a note to RH-2777 and opened RH-73087.

1 Like

Thanks @Joshua_Kennedy! Really looking forward to this one.

Regarding your gif in RH-2777, is it possible to activate the command > pick two curves > have the fillet radius attached to the cursor?
Fillet_Preview.gif
It appears to me that you are moving the arc centre point instead. The advantage of using the mouse cursor position is that you have to move the mouse less, because you can just hover a tiny bit off the second curve you picked earlier. Now, it looks like you have to first move to the arc centre. Where the command line reads ā€œsecond distance pointā€.

More like so:
Live fillet

An additional QoL improvement would be to set value rounding on the preview fillet (e.g. set rounding to 1 decimal or to 5 units, 10 units, ā€¦, 500 units, etc. That way, you can get away with the least amount of value typing.

7 Likes

I guess I should have a look at V8 WIP.

1 Like

Another request that has been bugging me for a while is that I cannot get snapping & SmartTrack working for Blendcurves:
snap blend curve

7 Likes

What do you want to snap to what?

How would you use SmartTrack with BlendCrv?

In BlendCrv with Tangency continuity selected the interior control point is constrained to move in the direction tangent to the input curve. That is required for the blend curve to be tangent. With Curvature continuity the first interior control point is constrained to move in the direction tangent to the input curve to maintain tangency, while the second interior control point is constrained to move along a line which maintains curvature continuity and is determined by the position of the first control point. Similar for G3 and G4 continuity.

@davidcockey Yeah I know, but if you have a line as input, the CVā€™s are tangent to the line, so I use that as reference. I like G2 Blend curves to connect straight lines (as opposed to filleting) in which case snapping makes sense, because it helps prevent the curve from inflecting (the intersection point of two lines is the boundary point).

For tangency, the same applies if you have a straight line as one of the inputs.

1 Like

It would also be neat if you could move the start/ end point (1 or 2) to the apparent extension of a curve/ line. Oftentimes when I adjust the blendcrv, I notice the start geometry being to short on one end or the other, so I have to exit the tool, extend the curve and redo the blendcrv. Without a query edit like command, history enabled extensions usually wonā€™t get a sufficient result (i.e. I would want to tweak it somewhat).

I usually extend planar curves until they intersect together, than split them via a circle whose center is at the intersection point. That gives me a pretty much equal distance to build a blend curve in-between. :slight_smile: However, when I have to split non-planar curves or surfaces, I use a sphere instead of circle (I either use the sphere to split the object or make intersection between the sphere and the objects, then extract isocurves at the meeting point).

MouseOverHighlightSubObjects Can be a great addition if polished.
I really like how you can toggle between selection options in Revit. You donā€™t need to hold any key combo, instead, you only hover the cursor and tap Tab to toggle to the next possibly desired selection.

Selecting&deselecting wrong SubObjects in Rhino quickly becomes fatiguing and frustrating, even several edges can be a problem. Using a selection filter is too much hassle most of the time.

Itā€™s not working flawlessly all the time, but itā€™s good, and you can do better :wink:

1 Like

I agree, one of the few things Revit does right. You can always use selection filters for more control in Rhino, this also applies more complex cases where there are more things overlapping/ coming together. But selection toggling already gets you a direct and intuitive solution, moreso than the pop-up window, because you have to look both at the pop-up and the viewport selection to see what you are selecting, rather than mindlessly tabbing through a few times till you see the object highlighted you wanted to pick.

@wim
@Joshua_Kennedy
for me, constraints would have been a very important feature of V8.

Just wanted to say - we had a big discussion in one of the design schools where i am teaching CAD / 3d (currently Rhino) weather to switch to Fusion 360 or to OnShape (maybe Solidworks)
To have Sketches combined with Boolean history was one of my big arguments to stay with rhinoā€¦
(we ā€™ ll be able to do similar workflows with V8 - was my hopeā€¦)
To be able to show some workflows that make it more easy to eventually switch to parametric / solid modellers with feature-tree.

And because of this - I follow this topic - but it is a big pity, that now the discussion is quite off topic - it s always hard to follow those very long topics - if the get off track it s even worseā€¦

regarding filleting - which was criticised somewhere above - i started a new topic (sadly with less attentionā€¦)

6 Likes

Constraints arenā€™t completely canned. I plan on picking them up again. One of the reasons for pivoting to other work was use cases failing to materialize for this project. It felt a little like a solution hunting for a problem. What would be helpful for kickstarting this when work resumes is real use cases and problem examples that would benefit from constraints.

1 Like

Does this have to do with the lack of an envisioned workflow (e.g. just mechanical CAD, furniture making, urban plans or architectural floor plan work)? I mean, constraints are some form of drafting aids after all. They can be employed in so many different ways ranging from just 2D to 3D model framework sketches. Could you be more specific in what you would like to know and where you feel thereā€™s a lack of guidance (a concrete problem)? Is it too broad?

And what would benefit you in reaching an understanding of use cases? Forum discussions or something resembling an online round table discussion?

2 Likes

For furniture design this constraints thing will be gold.

1 Like

Are you thinking of us showing an example of a specific part (perhaps attaching a .3dm of a static version) and a text description of exactly what constraint features would be applied? Perhaps marked up notations on the .3dm?

If this isnā€™t quite what you had in mind could you be a bit more descriptive?

1 Like

A use case for me as an architect would be ā€œsmart blocksā€. So blocks, where certain constraints could be a changable parameters (BlockAttributeTexts).

For example a door frame, where width and height are changable parameters that can be different in each block instance.

2 Likes

@Joshua_Kennedy
a nice collection of samples would be the yearly ā€œModel ManiaĀ®ā€ by solidworks:


all drawings can be found here
some challenges use very impressive drafting tools from solidworks (far beyond extrudeCrvTapered)

for most exercises, there is a phase 1 / phase 2 drawings showing some changes - simple one is 2002 with different distances / angles shown as a table:

a feedback i often get in class:
students want to draw the typology first without exact dimensions (ā€œsketchā€), then define the dimensions (ā€œdrivingā€) in a second step.
so this is more an approach then a workflow that depends on multiple refinements / versions.

does this help ? I will post more examples as soon is I find timeā€¦ kind regards -tom

10 Likes

This workflow of tweaking sketches without fully constraining is also what I usually do. I noticed Inventor has a relax mode, which could be seen as a temporary unconstrain mode when dragging geometry. You can for instance move an endpoint of a line, even though it has a length constraint applied. Depending on which constraints you have checked/ unchecked to relax (temporarily ignore/ remove if necessary) you can change the sketch as you would if it were unconstrained. I could imagine this mode helps speed up the solver, because you are more likely to fully constrain a sketch without it being a number typing game.

Also, think of drafting where you could modify dimensions with sliders like in Grasshopper.

1 Like

wait what! constraints! I been wanting this for 18+ yrs! :hushed: :open_mouth: :astonished: :dizzy_face: :exploding_head: :scream:

1 Like