Dodgy looking looking curve


I keep on having problems with naked edges and the more I look at it I am convinced the problem is with my initial curve but not sure what I am doing wrong. To explain what I am doing:

  • I copy the curves, using the Interpolate option, using a reference diagram to give me the rough shape I want
  • Then I Project these curves to the C Plan to make sure all curves are aligned
  • I then Rebuild manually, as it helps me keep the shape I want

Now normally I would then Project the resulting curve to a Sphere to get my surface but still I am getting naked edges where there shouldn’t be, even when I avoid the seams on the Sphere. Tonight I have been running through a few other tutorials on curves to see what I could learn and came across one on CurvatureGraph and Fair so thought I would give them a go and I got this which looks far from correct…

Dodgy Curve.3dm (221.3 KB) - Edit: The file doesn’t automatically show the graph so will need to be added manually with display scale between 115 & 120, sorry don’t know how to save this so it shows you instantly.

Using the information on the tutorial I played about with the points to see if I could improve the CurvatureGraph, and did sort of. Then I tried Fair, again it improved the diagram but not much… Did look through the other posts but couldn’t see one with this basic problem hence this request now. So my questions are:

  1. Is this normal for a curve or is this just plain wrong? I am assuming the later but as a newbie thought I should check just in case I was being overly paranoid, which could always be the case. :blush:
  2. Since these are not complex curves what can I do differently from my initial steps to stop this happening?
  3. When using CurvatureGraph is it normal where there are dips for the graph to display on the other side of the curve to where the rises are?


Hi Laura- I am not sure I undetstand what you are doing - the curves in the file are planar, so these are not the ones projected to a sphere, correct? How were these made? They are degree 3 but the graph clearly shows they are only tangent continuous - are these run through Fair? In any case, for planar curves of this shape, your graph and shape would be much cleaner with far fewer control points and possibly a higher degree. (degree five in my example image)


1 Like


You are right these are not projected onto the Sphere these are just normal basic curves. Your last suggested worked but when I came to loft the inner & outer frames it started going horribly wrong again so went back to the beginning as knew my error was more fundamental than I had originally thought.

All I usually do is import a Reference Illustration using PictureFrame then in the Front view port draw the curves, I use interpolate so I follow the illustration. From here I ProjectToCPlane to make sure the curve is flat and that is it. Although in this case the I have used Fair to try & tidy up the curve but it didn’t make much difference.

You mention degrees in your response but this is not something I set, use or check; but I am guessing I should be. Can you explain how degrees impact Curves (for better & worse), when I should use them and how I can adjust them? Also what is exactly meant by Tangent Continuous? I have run through a number of tutorials but these have not been mentioned, or if they have it was a fleeting comment. Happy if you know of a tutorial I could use, as keen to stop making silly mistakes.

Thanks (again).

Hi Laura

So, Loft is one of the commands in Rhino that prefers that the structure of the input curves be the same- my guess is this was not the case and it looked ugly. But, rather than guess, why don’t you try to explain a bit more about what you are trying to do overall, rather then just let it out one step at a time- that way I, or someone, can maybe suggest a more useful approach.


Fair point.

I am trying to design my own pair of glasses, which I plan to 3D print. I have a number of vintage frames that I love but you can’t get anything similar any more so I am using one of the frames as my reference illustration. In addition, I am completely new to 3D design, so have been using a number of online tutorials to learn as I go, in particular I have using Digital Tutors one on eye wear so I run through the key steps. So to summarise these are the steps I am going through:

  1. I pull in my reference illustration & draw the curves for the (see above problem) for the front/inner of the frame & lens
  2. I then create the lens using the lens curve. So far this has worked ok but I do have problems when I come to BooleanDifference the lens from the frame but I think this is due to problems with the frame…
  3. Then I take the lens and extract the front surface, Untrim the Sphere, offiset it then Project the front curve onto it before triming to create my surface. I am supposed to be angling this surface to adjust to the face but haven’t been doing this because of the other problems I am having… I follow pretty much the same process for the inner frame. For information the front & inner frame are slightly different although will admit for a beginner I should probably keep them the same until I improve.
  4. I then Sweep 1, 2 or loft the front and inner frames together. I have called out all three examples as I have tried them all to see if it reduces my NakedEdges problems and Loft is a little better but I think that is more luck than anything else. :slight_smile:
  5. If all has worked I should then BooleanDifference the lens from the frame.
  6. When carrying out this work I only produce one side of the frame and at this point I should mirror then join the two sides. But as of yet, and I have tried many times, I cannot get them to join.
  7. I have created the hinge for the glasses and temples/legs, although I have had “teething problems” I have managed to get there.

So that is what I am up to… I have spent so many hours trying to fix problems but I always seem to get stuck which is why I think my problem starts from the very beginning at the curves, although I doubt that is not the only thing I am doing wrong. Make more sense? Any help is much appreciated.

Hi Laura - I think this seems reasonable enough - can you post the file you are working on?



Thanks for the quick response and offer, see attached file (hopefully it is not too big).

Cat Eyes_v0.2l.3dm (2.5 MB)

I have tidied the file up a bit so you only need to look at a couple of examples - see Mock up layers a & b. Sorry the mock ups don’t come from the same original curves but I think whatever I am doing wrong will probably wrong on them both anyway.

Hi Laura- I don’t know how close this comes to what you want but, in case it helps, here’s what I did:

  • duplicated edges to get the shape of the frame.

  • flattened these curves and traced them with clean new curves that have better curvature - they stray slightly from yours- I went for nice as distinct from strictly accurate where yours looked a little lumpy to me. My curves are on the ‘Cutters’ layer as well as extrusions from them.

  • untrimmed your front and back spheres and rotated them s the seam was away from the cuts.

  • split the spheres and the cutters with one another .

  • the edges of the glasses are slices of the cutters and the front and back faces are from the spheres. Delete the bits you do not want.

  • Join, and FilletEdge, or whatever, to taste.

Cat Eyes_v0.2l_PG.3dm (400.6 KB)


1 Like

I make eyeglasses in Rhino for a living. I can’t do a full tutorial because it’s essentially taken me eight years to get to the skill level I have now, and every pair still has challenges where I learn something new. Also, there’s a lot of IP that my company might take offense if I shared.

BUT here’s how I always start a pair. You’re starting with the frame, I always start with the lens. It’s probably a good practice.

  1. Establish a pupil-to-pupil distance, and make the center of that line your origin.

  2. Make a sphere at the proper base curvature of the lens. I don’t reverse-engineer vintage frames, so I’m given that base curvature by the designer, but there’s a tool to measure it and I’m guessing most optical shops have one. If not, a set of radius gauges would probably do it. (I don’t know if such a thing is sold.)

  3. Move the front of that sphere to one of the ends of your pupil point.

  4. Rotate the lens sphere about that point to your rake and panto angles. There’s a lot to this if you want to get it exact, but you could also use some Pictureframe’d photos (include a ruler in your picture so you can scale it easily) to get close enough.

5.Clean up your lens shape curve. Most lenses are essentially
4-cornered shapes, so use low-point-count curves to approxmate the
top/bottom/side shapes, and then blend them at the corners to match the shape in your pictureframe.

6.Move the lens curve vertically to where it should be in relation to the pupil, and project the lens curve onto the lens.

7.Offset the projected curve on the lens surface (OffsetCrvOnSrf) by some amount to establish your lens groove depth. Use that to trim the lens surface to size.

8.Offset the lens surface rearward (solid option) by your desired lens groove width. This will be your lens blank, they can use your 3d print of this to cut your lens to size.

9.Now duplicate the lens, this will be the start of your frame surfaces.

10.Pull the first projected lens curve to the back of the lens, and trim using those curves to create the lens groove.

11.Fin a surface off the front of the lens, and another off the back. Now you have something to start creating your eyewire off of, or you can position your (or Pascal’s) eyewire surface in relation to these surfaces, and trim out the lens area.

12.Now just make the bridge, the nose flanges, and seal it all up. Easy-peasy, right @pascal.

13.The temples will be super simple compared to the eyewire. I recommend designing them flat, and then using FlowAlongCurve to establish your headcurve and ear bends.

1 Like

@pascal Yep that is pretty much what I was looking for. :grin:

However as much as I am tempted to take that and just use your frame template I would really like to improve. So can I still ask:

  1. How did you make the clean curves? I know I am doing something wrong and think your description that mine are lump is spot on just didn’t realise until too late, so keen to understand what I am doing wrong & what I need to do to fix it.
  2. Is there an easy way to spot lumpy curves or is this more based on experience? The only way I know of is CurvatureGraph.
  3. Why are curve degrees important? In an earlier reply you mention my curves were at 3 degree but 5 would have been better?
  4. What do you mean by Tangent Continuous, from an earlier reply? Sorry this is not a term I have seen before. Edit - I have found a tutorial on tangents online but it is for Rhino Python, I am assuming the basics are the same as Rhino 3D so will watch that tonight.
  5. In relation to your last response, you mention that the edges are slices of the cutters but I am not sure what you mean? I assuming this is the polysurface that connects the front and back faces but what do you to create these slices? At this point (if all things work well) I would use Sweep1,2 or Loft.

Sorry for additional questions. Thank you again.

PS. Hope you don’t mind but an going to use your model to create my first 3D printed prototype as keen to check sizing etc. Let me know if this isn’t ok as won’t.

@hanscad Fantastic information, thanks. & the way I am going I think it is going to take me about 8 years to get this pair! :wink:

Will definitely look up the rake & panto angle information as angles are mentioned in the tuturorial I am following but only briefly. I am attending an basic eye wear course over the next five weekends, and was planning on raising it there so now I have specifics to ask them,

Great advice re: lens, never thought about doing it this way and will give it a shot very soon. Also not used FlowAlongCrv so have found a few online tutorials that I am going to look up tonight when I get back from work.

I am laughing at your comment about “easy peasy”, as a newbie I thought this process would be hard but nowhere hard as it is. Rhino is great but it doesn’t take much for it to go wrong. :confused:

Rake is just the angle of the lens, edge-to-edge, as viewed from the top.

Panto has to do with the angle of the lens from the side, but also takes into account the width and angle of the temple. So it’s kind of a weird one.

For your purposes, just take pictures from top, front, and side, scale them and carefully line them up, and then match those. Since you’re using a sphere, you can just move it around until it lines up with the photos, you don’t really have to rotate it at all.

If you know someone with a 3-d scanner, even a cheap, low-resolution one, that can also be a great starting point.

You’ll soon become very familiar with the Rebuild command, that’s one of the main keys to making everything smooth.

Knowing how the originals were made may help you with your process, watch some youtube videos on acetate frame manufacture and you’ll see that they start out as flat stock that gets cut and formed, so you’re usually dealing with something that (before hand work, at least) has a constant thickness.

You’ll get it, Pascal and the other power users always have good advice and I’ve learned a lot from lurking on this forum.

1 Like

I used a control point curve to trace the curves you had (edges of your surfaces) - ideally I’d have used a more primary source of course, but that is what was available. When I trace curves, I generally just try to place about the right number of points in about the right places - areas of high curvature tend to get more points that areas of low curvature - then I adjust the points, adding or removing, if it looks like it’s needed (InsertControlPoint/RemoveControlPoint).

Both - the graph is indispensable for fine tuning.

Higher degree curves are internally smoother - I tend to use degree 5 pretty often (note you need to place a minimum of at least degree + 1 points to actually get that degree) if it looks like at least 6 points will be used.

I would look at the Level 2 exercises here - that discuss curve and surface continuity - it is pretty well laid out there I think. Shout if not.

I split the spheres with the cutters and the cutters with the spheres - the result if the latter includes narrow slices of the cutters between the inner and outer spheres - these become the edges of the glasses when Joined to thew frond and back faces split out from the sphere.

You are more than welcome to do whatever you want with my example- however, the half I worked on does not mirror cleanly - there is a hard edge there in the center of the nose piece that I did not deal with - this is because the sphere that is the outer part of the frame does not hit the center plane at a diameter. You’ll probably want to change what happens there.


1 Like

Just wanted to say thank you @pascal @hanscad as tonight I finally managed to create a joined up frame, ok it is not the prettiest but massive step forward for me. Your advice was spot on and reading through Level 2 training guide really helped. Cheers. :relaxed:

OK, good deal - check back with questions…


Great! A closed solid?

Yep, closed solid with no naked edges. Woo hoo! Must also get down with Rhino lingo. :wink:

1 Like