Rhino WIP Feature: Knife

In the Rhino WIP, we’ve added the Knife command to cut through SubD and Mesh objects.

What is this Feature?

Knife is a tool for quickly adding topology to your SubD or Mesh models by drawing polylines on it. It works like a cutter that allows you to create accurate face layouts in a few simple clicks. You can:

  • Draw straight through the model to create straight cuts, or
  • Draw segmented polylines that will snap to the closest edge.

Rhino’s traditional InsertPoint only affects front faces, while Knife can cut thru a whole model or only front facing faces.

Why this Feature?

Adding topology to a model simply by adding and dragging existing edges can be tedious, requiring additional edits, positioning of edges and point locations. Knife quickly “draws” locations for topology, that can be used to add details quickly.

Notes

This feature is still in the early stages.

Current limitations:

  • Crashes may occur when drawing all the way through a model in parallel view with ortho on. Fixes for this are underway.

Download the Rhino WIP and Try It Out!

36 Likes

How does “knife” relate to “insertPoint” ?

1 Like

insert point only affects local faces, knife can go thru a whole model or only front facing faces.

on a flat subd plane they behave similarly, but on a 3d model they are quite different.

1 Like

ok. so after 10 years of subD in Rhino one of the most basic tools finally emerged, impressive. but alright, better late than never.

5 Likes

On top of what Kyle said, Knife lets you draw any arbitrary polyline, not just one with points on vertices and edges of the mesh or SubD like InsertPoint does.

Also, InsertPoint is not a very discoverable name for folks coming from mesh modelers, Knife should be better :slight_smile:

Finally!

1 Like

Would you consider a built-in split option?

3 Likes

Yes:
RH-92647 Knife: Support a quick way to split SubD at newly created edge loop

I’d like to keep the complexity and number of options of Knife down to a minimum. Would it work for you if instead of an option in Knife, I make Knife return with the new edge loop selected, and Split work immediately when a SubD edge loop is preselected? This way instead of selecting the “end with a split” option in Knife, you return from Knife, run Split immediately after, and get the result you wanted.

3 Likes

I like the idea of the new edge loop returning selected regardless of a split option. With the new edge loop selected I could set up a micro to run split immediately after. With that said, I’d still prefer it to be an option of Knife. :slight_smile:

1 Like

:+1: from my side.
and i like that you choose “support a quick way…” without nailing how.

there is already a lot of commands that - from a user point of view - target similar things - some love and polishing is needed here:

_unjoinEdge (for Polysurfaces)
_unweldEdge (even a closed loop will not produce 2 separate subds, additional explode is needed)
_split
_explode (splitdisjoint for subd)
_splitdisJointMesh (does not work for subd - but would be nice / correct / consistent)

split has an ugly UI-Bug, it keeps (at least v8, mac, intel) the object to split highlighted, - so selecting sub-objects for splitting is a real pain (no feedback of selection) and somehow namedSelections fail here for sub-object.

i completely agree that commands should have a small amount of options, and if its more like a workflow, the co-working of multiple commands is the way to go. (and hopefully can be solved by a simple macro for users that dreamed of a personal option…)

i think keeping the new edges selected is nice. But not consistent. What about other commands like _bevel _inset _insertPoint …

we really need more consistency across object types / commands / …
(and why should some functions can not adapt to object type or selection: weld, join, stich, … )

and currently:
_knife
→ select new edges
_namedSelection … add those
_split → the subd → the new named Selection
does not work.

the main topic would be a nicer accessibility of command - results, like (not only) _selLast
this would allow the creativity of the user to decide what to workflow / macro to integrate the (new) command.

it would be great to have something like a _selLast with more options (sub-Objects in this case) , or a namedSelection (temporary ..) that remembers the results of the last 20 commands.

then this feature - instead of a split option - would be:
_knife _pause _selLastNewSubDEdges _split
or maybe
_knife _pause _selLastNewSubObjects _split
or optional
_knife _pause _selLastNewSubDEdges _unweldEdge

my vote for an additonal:
_selLastSubDEdges
_selLastSubDVertices
_selLastSubDFaces
or
_selLastSubDSubObject


my 2 cents - kind regards -tom

1 Like

:kitchen_knife:this looks useful

great function, hope a long time :+1:

please add cut form curve :folded_hands:

Is development and maturing of SubD tools a bit slow? Yup. But I’m glad it’s at least moving forward. I’m trying to integrate subd into more product design when the opportunity arises and the sooner these tools are more robust and complete the better it will be. Here’s hoping they get a lot more love in RH9.

in its current implementation i dont see much difference to InsertPoint indeed.

that is quite wrong.

you can pull through multiple faces at once you dont even have to click several times it will cut through to the end. it is also view dependent so in perspective you can swivel the camera and cut from different angles into an object.

so how is that different to the current knife? besides a minor difference in that knife can start outside the model where in InsertPoint you have to start from the edge which creates the exact same result. the only improvement here is that you can cut front and backside at the same time, but since its not available to download yet (at least not for mac it seems) i can only say more when i have tested it.

from the example @theoutside provided the result is the exact same as InsertPoint, while i see him drawing a Polyline it still only inserts points at the edge intersections. if that could create new edges either with the polyline then we are talking.

perhaps you simply misunderstood this tool.

For a 3d object, you cannot draw a line completely thru a model with insert point. It is true You can click your way around a model if you so choose changing views as you go, but you cannot do it one go like you can with knife. This is the key difference.

It is true that for 2d models insert point and knife behave similarly- (knife is a bit simpler and less finicky IMO) but on a 3d model, knife can do what insert point cannot, which is a thru cut.

There is a possibility knife replaces insert point- since they do have overlapping capabilities.

3 Likes

you might have to reread what i wrote.

can you spot the difference between Knife and InsertPoint?
thats right, me neither.

both needed 2 clicks to accomplish the exact same.

right now the “overlapping capabilities” are almost exclusively the only ones not sure how to explain that anyhow different.

@encephalon in that screenshot of yours there is no difference, but in the video that Kyle posted, he is cutting through the whole model in one go.

1 Like

maybe that is difference in the mac version then? here i use InserPoint and click on the starting edge then on the lower edge, it will create all the other intersections. with Knife, i do the same, the only subtle difference is here i can start outside of the model, but the result is the exact same. now besides the subtle difference in how it feels now the tool performs basically identical.

so after rereading the entire topic i understand now that we have been talking past each other.

the wording “local faces” is practically wrong. you should not use “local” here at all but only front facing or whatever term you usually use.

while you guys referred to this all the time.

ok knife offers additional ActiveFaces Feature and behaves different from _insertPoint when this option is set to ActiveFaces = all.

i think _insertPoint still need s some love to get mature. it s one of the few tools that allows to freely add edges and optimise typology.
It s somehow painful if you need multiple edges to insert from point to point.
something like cleaning up the left disk to get the right disk s typology.

the fast approach with little brainwork is to triangulate and delete unneeded edges.
but adding many diagonal edges is quite painful.

so my 2 cents:

make _knife a fast and accessible cutting tool.
Evaluate new Typology immediately

keep _insertPoint and make it mature:
see this topic:(papercut/wish) InsertPoint (SubD)
allow picking points on the faces, allow multiple unconnected new edges / point-point / point-edge / point-ponitOnFace connections. Judge the new Typology at the end of the command.

kind regards -tom

2 Likes