Arc joints makes an edge on extrusion

So I know it is possible to get a smooths extrusion without these lines at the joints. I joined the arcs using the “Match” command. In a previous thread, I was advised to use Match when there was no gap, and blend curve if there was. That does not seem to be working out for me. I’ve since used BlendCrv, and it fixed some. However, nothing seems to get rid of the line where the flat bit at the bottom joins the curve.

NEW_ALLEN_TOOL_CASE_02_Test_02.3dm (65.9 KB)

The joint between the lower flat parts and the arc segments in your input curves is not tangent:

image

I fixed that, below is the result:

NEW_ALLEN_TOOL_CASE_02_Test_02-msh.3dm (2.2 MB)

However, I do not recommend doing this… Single surfaces with internal G1 joints can cause trouble with meshing or downstream exports. I always recomend splitting surfaces at tangent joints (SplitAtTangents=Yes).

Another question I have is why are you working in such a tiny absolute tolerance (1/1000 of a micron) and a relatively huge angle tolerance (1°)?

I would also, in general, recommend laying off the joining of curves and surfaces, the dreaded boolean and FilletEdge, rather surface modelling only the primary domain, filleting with jim’s rock-solid FilletSrf script, mirroring, and then only joining the final result for CNC or 3DP.


Whoever gave you that advise doesn’t have a clue how to make tangent curves composed of arcs and lines. That is horrible advice.

It looks like your goal is to make your construction curves tangent arcs. If that is true then never ever ever use Match or Blendcrv. Its like mixing oil and water. Match will just turn your arcs into garbage and there is no reason to ever need Blendcrv when your arc construction methods are sound.

Here is a file showing how to model this so that the construction curves have good tangent continuity.
Arc_construction.3dm (2.5 MB)

Thanks guys. Tangency on joined curves has always been a problem for me. I’ll look and learn.

Actually, I never change tolerances. Is it possible these came with an imported/downloaded model? I always start with a Rhino template. In this case, small millimeters.

Well, the default Small-Millimeters template is OK concerning the absolute tolerance, but not at all for angle tolerance IMO. All the stock Rhino templates have 1° as a default angle tolerance. That means you consider anything that’s out of tangent by up to 1° to still be considered tangent by Rhino. A 1° tangent difference is huge, clearly visible to the naked eye. I suggest to anyone that cares to change that value in their templates to 0.1°

Thanks, Jim.

For my cyan arc. I drew a line from the magenta arc to perpendicular on the Green, used that as a diameter for a two-point circle, then trimmed all three. Obviously, something wasn’t right.

Creating the Red arc. I did not have a known radius, and was guessing at how to get what looked right joined to the green that I also created by offset. I again made a 2point circle that looked right and moved it to touch the green. Trimmed there, and as mentioned matched or blendcrv. I then add a rectangle (blue) at the lower quad of the green circle, trimmed them all and joined. Again. I did not get what you did.

Can you guys point me to a tutorial showing arc/circle joining with tangency? I have struggled with this since I began using Rhino. It had not been a problem in my previous work, which was mostly in large architecture scale, and my model curve joints would be way better than the actual construction.

Do you think this is something I should apply to other templates?

IMO, any that you use regularly, yes.

Arrrg! So I’m back to trying to create this myself. Still no go. After trimming, one of the resulting cyan arcs would not join. Then it did for no reason. I still don’t know how to create an arc between the two red line points that will have tangency. Thanks all. I’m going to walk away from this for a bit today.

Arc Test_02.3dm (48.5 KB)

@jim I gave that advice, and I’m not clueless. Perhaps you should understand the context before declaring it to be “horrible advice”. That context was CalypsoArt was using BlendCrv instead of Match to match two curves even when the curves coincided or almost coincided. The result of using BlendCrv was a very short curve which could have very high curvature. My recommendation was to use Match, not BlendCrv, in such situations. In the same thread I also recommended not using Match with arcs.

You are over constraining the arc. This is a limitation of geometry, not the Rhino algorithms.

Alternatives (assuming co-planar curve):

  1. Specify two curves the arc is to be tangent to, and the radius of the arc. The points of tangency are then determined while solving for the arc. This what the Fillet does in Rhino. The arc may or may not exist.

  2. Specify two curves the arc is to be tangent to, and a point of tangency on one curve. The radius of the arc and point of tangency on the other curve are then determined while solving for the arc. The arc may or may not exist.

In theory that probably should work, but nobody at McNeel has ever cared enough to make that work accurately. In general trimming arcs or circles with tangent curves produces inaccurate results.
Since you had a line perpendicular to the red and green ( that’s a line that would pass thru the center point of both arcs). You can accurately trim the red and green with that line and make the cyan as an 180 degree arc using the point half way between the endpoints of red and green ( Tween Osnap) as the center of the cyan arc.
Again in theory, trimming a full circle with the line should produce the same result but in practice in Rhino it may not.

What you did is fine for finding an arc that looks about right, but again trimming is not going to be accurate. Once you have found a radius you want then use the curve fillet tool.

The tool you should become familiar with is the curve Fillet tool. It will produce accurate results. The only situation that it will not work is the case of concentric arcs or parallel lines. In that case construct a 180 degree arc.

Its easy enough to make the arc but it won’t be tangent. It looks like 5.83 radius arc will fit those two points so run the Fillet command and enter 5.83 for the radius. Fillet is much quicker and a million times more accurate than what you’ve been doing.

Be aware that if you 3d print the object you are making you will never be able to find where the end of that arc is to any degree of accuracy.

As I stated the context is for someone who is trying make tangent curves composed of arcs and lines. In that context its horrible advice. If that does not describe the context in which you gave advice then obviously it does not apply to you.

In my search to solve this, I came across this video by Bobbi, https://www.youtube.com/watch?v=11IWFkfqiqA which uses the circle-tangent-to-3-curves tool. (ever these additional circle tools existed)

circle_tantantan

After a half hour of trying, I still couldn’t get it to work for me. After trimming the curves, when I run the Gcon command I get this, not the “G1” that he does.

Post a file with the three curves you used and the circle result.

As you may know, I detest fileting in Rhino, and don’t trust the tool to ever do what think it should. I always assign the problem to my own ignorance, but…..sometimes. e.g. Here is a simple 10mm x 10mm rectangle. Filleting the 4 corners at 5mm fails. That doesn’t make sense to me? It should give me 4 arcs of 5mm radius. No? I just tried this.

_Rectangle @ 10,10

_fillet Radius=5

The last corner will not fillet.

In Bobbi’s 1 minute video, he clicks at the end of the A, the mid of D and then moves into space, and the circle is made. After the two points, the tool says, “Press enter to draw circle from the firs two points (Point Radius)” I just tried entering a radius and it has given me a viable circle. We’ll see how trimming and joining will work out.