Useful plugin idea, does this exist? (degree,span,points)

I have an idea for what I think would be an incredibly useful interface addition… which makes me fairly certain that there’s no way I’m the first to have the idea. Unfortunately, I can’t find anything that does this.

When working, I find myself frequently using the rebuild commands not to rebuild, but to simply see my degrees, spans, and/or point count. For example, say you’re going to use a pipe to make a trim line. The resulting curve has more points than expected and you start asking yourself what degree was that surface was and whether that many points makes sense. Or you’re working on something and just can’t remember if that surface was single span or whether you set it up for G1 or G2.

The Idea
On the bottom bar we have this handy coordinate system.
image
What if there was something similar but instead of coordinates you clicked on a curve/surface and it said something like:
“D:3 P:4 S:1” or “UD:2 UP:3 US:1 VD:3 VP:5 VS:2”

I think this would be really useful and time saving info to have readily available.

Side note:
I found this “Curve Parameter/UV coordinates” option on the status bar that could possibly be relevant. But the help docs don’t say much and I can’t figure out what it is supposed to do. It starts cycling through along with “minutes since last save” but never seems to show any data.

2 Likes

Hi Jason - for now, see if the What command does anything useful.

-Pascal

1 Like

Getting the information is easy with rebuild. The idea was to have it readily available (like coordinates are) when an item is selected.

image

1 Like

The What command has those details.

1 Like

Let me clarify. I’m asking about this as a user interface improvement plugin (or even wish list v8 item).

It’s not “how do I get” those numbers, that’s easy. They can come from rebuild, what, turning on points, etc. I want to know of it’s possible to continually display those details WITHOUT actively typing/clicking a command.

Much like coordinates are displayed on bottom, but when you select something you get that info automatically. For example, one of those status bar options I recently discovered is “relative coordinates”. So when you start moving something, this shows up:
image

So, that, except you got something like this when an item was selected:
“D:3 P:4 S:1” or “UD:2 UP:3 US:1 VD:3 VP:5 VS:2”

I understand it wouldn’t work on polysurfaces/polylines/etc.

1 Like

This is also something I do alot, to find out more about the data I’m working with.

I prefer the ‘rebuild’ GUI method instead.

The ‘what’ GUI would make more sense if it were actually ‘editable’ – fwiw.

This is an interesting idea. :beers:

Interesting thought!

I don’t immediately find any custom view upon selection type plugins except possibly BEZIERHELPER.

McNeel does give us a how-to for building them though:
discussion of updating displays during events at
Rhino - Event Watchers (rhino3d.com)
and examples of catching object selection events in their developer sample code.

I’d be surprised if individuals and companies don’t have lots of private custom displays; I already came across one I’d want- displaying the points defining a curve (answered by the list command).

@Jason_Kuehn For the degree part, is this along the lines of what you need?

Method of use:
Install plugin.

It’s a load-at-need plugin: it doesn’t load until you run a command.

Run a Rhino command and the details window pops up. It’s nonmodal but stays in front of the Rhino window and can be moved around. You can close the window and then rerun the command to reopen it. It handles new documents and closing old documents.

When you make a selection, the maximum degree of curves and surface elements is reported: a single degree for things like polylines and u, v, and u+v degree for nurbs surfaces and breps consisting of multople parts.

Examples:

A spiral, degree 3.

A polyline consisting of segments, max degree 1.

Selecting multiple objects

The maximum degree of selected objects is reported (circle and elipse are both degree 2).

A complex brep object defined by many surfaces and curves.

1 Like

That’s cool and definitely a step in the right direction. Did you make that? I’ve not seen it before.

I think what you show would be useful if it could show either the number of points and/or spans. Ideally it would work for both surfaces and curves. For me personally I’d use it mostly for cleaning up trim curves from pipe intersections which tend to make crazy degree 3 curves with like 50 points. I’m often doing weird blends in less than ideal circumstances.

I don’t think this info would ever be meaningful with multiple objects selected.

Everyone has their own workflow so I would be interested in hearing others opinions.

Did you make that? I’ve not seen it before.

Yes. I don’t really understand your workflow yet so I’ll explain why I’m interested.

Short version: I’ve written some tools, independent of Rhino, for engineering analysis. I want to use Rhino as my UI because it avoids reinventing a lot of CAD type features which they, as specialists, have already done better and in much more depth than I would.
.
I’m an experienced engineer and dev but not a draftsman and new to Rhino and Rhino plugins. A smaller project which runs from start of plugin creation up through related issues like tying into Cloud Zoo would be ideal to help me get a handle on both.

Along came your post suggesting a plugin with a well-defined objective and reasonable scope.

So, if you’re interested, can you explain the workflow in detail?

I’ve poked around the forums and it seemed like ‘span’ in this context was equivalent to the number of surfaces in a brep. Is that incorrect? And the point count you’re looking for is control points?

Do you have a sample 3DM? It sounds like you’re cutting something with a cylinder… is that to weld a pipe to something, or the representation of machining a hole into something? Once the cut is made, is the cut edge you want to look at a separate rhino entity or are we looking at a brep only of the piece that was cut by the cylinder?

Sorta like VSR had, integrated into the front line tool that is used not just to see the structure of a surface but to also edit it directly to your hearts content?

1 Like

I don’t know what VSR is. Basically a “Rebuild” window that never closes, but just stays open and lets you select things to edit?

It would be easy enough to provide a UI for the internal Rebuild command which gives you a quick preview similar to what they have now. I don’t think they’ve exposed the ‘SubD Friendly’ checkbox.

I\m not sure if that’s what Jason is asking for as well.

Ah, interesting to hear your background coming into this. I am good with CAD but not coding. I understand the basics and can usually figure out or modify simple code when necessary, but would never try to do a plugin from scratch. One of the many reasons I love Rhino is that you can customize just about anything and the developers are outstanding people who are always on the forums trying to help out. Rhino has so much history that one could use it for many years and still learn new things daily.

Anyway, regarding workflow and surfacing basics I’d recommend this guys videos. He’s quite verbose and his videos could be half the length that they are, but I think his “primary surfacing” episodes are by far the best I’ve seen for learning the basics. This one talks about “spans” and he has some others about trimming, matching, etc.

Regarding my workflow, I doubt it’s very unique and pretty much matches that video series. Very briefly, “primary” surfaces get roughed out, then get blended. Trimming the corners to be blended can be done various ways but with a complex surface the easiest way is often making a pipe down the corner, intersect to get trim lines on the surfaces, then tweak and clean up the trim lines as necessary. Once cut, start blending. First choice is usually blendsrf followed by xnurbs (a plugin) for the messy bits. No reason you have to have xnurbs, it’s just faster and easier than doing everything manually. Problem is, it makes “messy” surfaces compared to the manual way which can be a problem later.

One of those “later” problems is trimming and blending some of those messy surfaces and that’s where I often have the issues described in the original question.

In my particular case, I’m dealing with these issues far more frequently than someone just doing the original model because after the part is done it then has to be turned into a mold. That means parting lines, big flat perimeter flanges, etc all of which have to blend nicely into the actual part. It’s not really necessary for the discussion here, but if you want to know the big picture version of what I’m doing it’s this:

Next time I run into a good example I’ll save it for you as a 3dm.

1 Like

Ok, I added span (easy enough):
Screenshot (154)

I\ll take a look at those videos and use cases.

Making a dynamic update plugin shouldn’t be hard if it’s ‘only’ something like slider bars for the degree of the curves/surfaces (need to research what that does to the boundary conditions with other components), but making one that’s useful in the context of your processes needs domain knowledge.

I’m thinking along the lines of a pair of quality metrics:

  1. ability to actually produce the part : 2nd order curve good, 5th order bad, intersections with corners narrower than (60 deg? 45 deg?) bad
  2. How closely the simplified surface matches the original one

Both of these seem to be more than a bit use case dependent:

  1. whether you’re casting plastic, bending steel, or building up with a 3D printer
  2. which difficult portions matter and which are just aeesthetic
2 Likes