For Rhino V6 wishlist

Hi Dave- your example here is not a great one just because the three curves are so far from being tangent to one another - if you have curves this ‘bad’ then the simplest way to get a single surface is to Explode the extrusion and MergeSrf with Smooth=No. Rebuild with such severe kinks in the curve will require a lot of points to get even close, I do not see any way around that - Rebuild is not really designed for this situation unless you are really only interested in a loose approximation of the inputs.

-Pascal

Hi Pascal

I use extensively the script you wrote a while back called intersect plane. You made it at the beginning of V4. It is a primordial script, imo, to be able to surface anything you can imagine. I show it to my students as well.
I was surprised to see that script wasn’t included in Rhino V5 when it was officially released.
Maybe for V6 it should become a fully integrated function.
Also , similar to Catia, we should have a function button that creates planes. I usually draw rectangles and assign them as CPlanes.
Why not have planes represented as rectangles and when we zoom in and out they always remain the same size. Again I refer to Catia ( or Solidworks ). It would be useful I believe.

All the best

Alex

Hi Pascal,

Thanks for the insight. Your method (MergeSrf w/ Smooth=No) may do the trick!

~Dave

@pascal, Here’s a wish for a new feature (or help with an existing solution if there is one): SelChain (or another command) would locate one or more conditions where curve overlap occurs, but endpoints are not coincident thus preventing it from becoming a closed curve. (I realize there are other commands which select open curves, etc, but finding where to repair them seems manual only).

I was comparing notes with another Rhino user about SelChain (related to the thread Why does this fillet fail) and enclosed is an example of a problem we both frequently have when working on files created by other people (or imported from other programs): curves, or segments, will often be on top of each other and appear to be continuous. However, they may actually have overlapping conditions where the endpoints are not coincident; thus, the boundary won’t close.

In this situation, SelChain will highlight the whole set of curves, but finding the one (or more?) conditions that need to be repaired to create a closed curve is very time-consuming, requiring zooming in closely all around the boundary and various combinations of selecting, deleting, undoing, moving CVs, for each good segment until the bad one is found. What is desired is some kind of Select Non-Coincident Curves that would focus on the problem (sort of like the really nice Zoom option in ShowEdges)

Here’s an example image of the problem and the file. (The box highlights where the problem of overlap occurs in the curve).

Is there a solution to this problem currently? If not, and a solution is technically possible, some creative wizardry from your team would create a lot ear-splitting grins!

~Dave
SelChain_Fail.3dm (53.8 KB)

Hi Dave- would a display analogous to ShowEdges (naked) for curves be a solution, or does this need to work with curves that could be but are not, joined? (say a red dot at the curve end point and a green one at the start or something)

-Pascal

Hi Pascal—either method would be very much welcomed, since this is a common problem faced by those doing 3D architectural modeling from 2D plans (and for reference, the image above is a floor plate, with 18 segments that began its life in AutoCAD).

Sounds like you understand the issue: the goal is to easily find the location(s) where overlaps occur, then manually repair them—assuming a solution can’t be automated, which would be REALLY amazing, if possible—so a planar surface and/or solid can be created.

In the example above, I’ve drawn a box to indicate the area that needs to be repaired (after hunting it down manually). Any of the following would be helpful:

A) something like a pink dot at the location of any overlaps (either joined or unjoined), akin to the exist analyze edges routine.

B) beginning and end locators for all curves (joined and unjoined) in different colors might be nice, but this might just be information overload? Maybe these are shapes (like Maya). Whatever it would be, the identifiers would have to be detailed enough that conditions which are “close” but not coincident could be easily recognized somehow.

C) What if endpoints which were not coincident in a chain (which I assume means they are beyond the drawing tolerance) might be the only color used. Alternatively, this type of condition could be a third color if, as you suggest, beginning and end points got their own colors.

If both joined and unjoined identification is not possible, the joined state would be more essential, since the goal is to make a closed curve, then make surfaces and/or solids. It sounds like you’ve got a pretty good handle on the issue. How to solve it—if it can be solved!?!?—is one of those tasty challenges I know you folks (and the makers of caffeinated beverages) relish!

~Dave

Hi Dave- for now, in case you have not used it, locating overlaps or gaps on joined curves is easier if you run CrvEnd and CrvStart on the curve you’re checking- it is not quite the same as a display, but it will mark the two locations with point objects.

-Pascal

If the object has overlaps but no gaps, CurveBoolean DeleteInput=All will almost always form a good, closed planar curve which can generate a planar surface or hatch. I usually SimplifyCrv afterward as well. If the curve is open, CrvStart/End will show you the open spots.

As far as detection goes, attached is a script which will mark overlaps - but not resolve them, of course…

HTH, --Mitch

DetectOverlaps.rvb (1.1 KB)

3D Max has a good display solution. where you have an option to show first vertice and then each vertice is numbered. so you can easily track the termination or overlap. similar approach would be very welcomed.

Thanks Folks!

@Helvetosaur: Never thought CurveBoolean would resolve overlaps, but it’s pure MAGIC—even eliminating the need for manual repair! Once the curve segments are selected, one does not even need to join them. Very nice. Worth noting is that this only works if the set of curves (with overlaps) appear to describe a closed boundary but will not create a closed curve without repair. If the set of curves is visually open, it does not work. I presume that repair is more manual in this case. Thanks for the script, also!

@Pascal: CrvEnd and CrvStart is a big help. It get’s users to the problem in four steps (SelChain w/ Position, Join, CrvEnd, CrvStart). Then manual repair. Since the solution is already technologically available, I suppose my “wish” is making it easier to find/implement. Perhaps a new command called something like “CurveRepairOverlaps”, would be helpful? This could also be an option in SelChain. The benefit here would be that an open set of curves could also be repaired.

~Dave

Yes, that’s what I tried (unsuccessfully) to explain above…

Agreed, numbering vertices is often helpful.

Can’t remember the program now (MODO?) but I recall a CV and EP display method which uses gradients. This is a nice and intuitive method. The start point is darkest, then the points get lighter as they go to the end point of the curve. If coincident points are involved for multiple segments of a larger set of curves, you simply see a series of dark to light vertices that repeat for all curve segments.

Possibly improving on this—and to help identify the problems we’re discussing—what if an alternate (and obviously different) color could be used for vertices (or drawn as a curve segment overlaid on the curve?) for problem areas, such as overlaps, or where the start and end points for segments were in close proximity, but not actually coincident?

~Dave

HI Alexandre- I’m glad you like that script- I use it all the time as well. Make sure you get the last posted update, I added some stuff after the initial one was posted. There is more ‘plane’ related stuff going into V6, I am not sure it will be exactly like the script though… I’ll see what I can find.

-Pascal

My suggestion is a bit rudimentary compared to the others in this thread. Could trim and extend be the same command? I mean the “TrimExtend” command would either trim a line back, or extend a line to, another line. I still miss this ability (it was on Generic Cad back in 1990).

Talking of Generic Cad, it had two digit aliases which were really useful and I used them extensively (I never use Rhino’s) because after you’d typed two digits there was no need to hit return. The fact that they were all two digits implied that after hitting two keys the alias was complete. Simple and very effective, (particulalry the zoom aliases beginning with Z, right by your left hand).

HISTORY & LIVE MODIFICATION

I’d like to see Rhino V6 focus on history, and allow designers to modify anything, and also get real-time feedback. Mcneel should take a look at Meshfusion for Modo, which allows for live-boolean modifying (see 2:20 of video below). A similar concept could be done in a much simpler way than Meshfusion’s current implementation. These are invaluable features for design.

  1. World coordinates. Would be nice to change those for my current project or object I am working on in order to have “front view”, “top view” and other would work for it. Instead of creating number of Named CPlanes and switch between them each time.

  2. Dimensions size. When showing small dimensions on the same drawing as larger ones – small dimension number is placed right between the dimension lines and arrows which makes it hard to see actually what the number is. I suppose the way of getting it solved is when the dimension does not fit between dimension lines – it should automatically pop for one of two sides of dimension lines (as well as dimension arrows) – depending on where you place your cursor.

  3. Dimension tolerance. I work with clients who want me to make drawings in inches dimension system. I am not good at it because all my life I am living in metrical world. That’s why I am trusting Rhino for replacing mm for inches. But what my clients wants is more simple tolerance for inches then Rhino does have. It have 1/2, 1/4 and 1/8 of an inch etc. But regular people who are not engineers and want to check some dimensions of product, they don’t want to see numbers like 3/8 of an inch, - it is much easier for them to see and understand 2/3 of an inch. I don’t know if it’s common. But maybe it’s possible to have this option for tolerance. Otherwise I have to recalculate every dimension in my drawing on calculator and overwrite it.

  4. Working time duration with file. Would be nice to see how much actual time I spent working with file (counting only time when using commands). Also general time from the creating of file.

  5. Zooming. Sometimes it gets so crazy when I zoom in and out a lot while preparing for instance a surface blend on a very long complex edge. I have to pick every edge and for that reason I should zoom in and out but in some moment zooming in doesn’t actually zoom anymore. No matter how much you scroll (while command blend or other is running).

World coordinates cannot change, they are (thankfully) completely static. What is sounds like you are interested in is Universal CPlanes, which can be enabled under Rhino Options → Modeling Aids → Construction Planes. What this will do is when you set a CPlane in one viewport, it will update the CPlanes in the other viewports to match.

It would be nice if pulling out a dimension was a bit more streamlined (and made a leader), but you can achieve something similar by turning the points on for the dimension and grabbing the dimension text control point and moving that.

To someone familiar with imperial dimensions, 3/8" is much more intuitive than 2/3". If you want to round that, you could set Rhino to round to the nearest 1/4", or even nearest 1/2". If you would rather deal with tenths of on inch, it would be better to use decimal inches rather than fractional (which should always be some doubling of denominator: 1/2", 1/4", 1/8", 1/16", 1/32", etc.)

There is a plug-in or script for this, I’ll have to track it down.

This is due to the camera running into the target. If you are in the middle of a command , you can use 'Zoom Target to zoom in while resetting the target and not interrupting your command (the ’ makes zoom transparent)

SamPage, thank you for reply.

No, this is not what I am interested in. Because it is still switches to World views when you choose Front or Top etc view…

Working all day with dimensions and pulling dozens of them manually is not actually a joy. Feature which I describe was always in AutoCAD package.

SamPage, I am working for a very capricious client. And I do what they ask me to. Of course I explained them that there are some standards and ISO in the world but they want listen.
But I understand them because they are also working for the good and comfort of other customers.

This is not a very comfortable way to work… Personally, it is much intuitive when camera zooming and rotating around a cursor (depending on where are you holding it on a display).

@alexandre_galin, when V6 eventually emerges, check out the IPlane feature (“InfinitePlane”) - this is availble any time a planar surface is needed- inside Trim, Intersect, etc etc. and works very much like IntersectPlane except that no special command is run, just the IPlane tool can be used within many commands.

-Pascal

there’s another thread going on here which address what you’re talking about…

http://discourse.mcneel.com/t/rotate-around-world-axis-doesnt-rotate-around-world-axis/6988/33

i pretty much made a mess of the thread with too many words but the video at the end should sum up the desired behavior…

maybe you know of a better way to describe it which will be more effective in communicating it with the developers? :wink:

2/3" ?? what’s that :wink:

engineer or not, nobody thinks 2/3" in imperial.