Rhino trouble with radius

It may be your logic, but to be honest, from a users point of view, he is asked to select 2 surfaces to create a fillet between them and nothing else. He is not asked to loop through other surfaces which are tangent and somehow end where the first created fillet ends. I understand why you need it though, especially when you are forced to use it as a replacement after FilletEdge failed.

I understand that, there is no need to repeat that over and over again. From a users point of view it would require some additional option in FilletSrf, eg. AutoChainTangent or something to be logical.

You really make me laugh. Where did i declare that ? If you see tasks from a non user view, with the available methods in mind (in this case python) it is often simple to foresee if it will work or not. It works with simple cases, but unfortunately not all i’ve tested so far. I’ve explained some of these cases already, maybe you missed that.

Hard to know. I only can run a function which is supposed to create a fillet with the required inputs. If i do not get a fillet created there is nothing i can proceed from to build another one. I asume it is because the “pick points” are exactly on the edges. Something which is probably not happening when you click with your mouse.

Unfortunately not.

No nothing is wrong. Surfaces have different methods than breps you can query information from. If it should work with both types at the same time it just adds some complexity to the overall problem.

_
c.

I avoid filletedge because it often makes surfaces that have poor tangent continuity. That means you can’t easily add more fillets that overlap without running into failure problems…

I will not repeat it if you stop saying it doesn’t work.

That’s a great name for the option

If the surfaces are tangent then its either that the topology doesn’t support the fillet or a bug in the code. I

That may be a bug in the FilletSrf code. Users have been complaining for many years that there is a bug in the filletSrf picker. If you got clear cut evidence that it does not produce a fillet when it should then post that geometry and hopefully the bug can finally be eradicated

Produce one example where that does not work.

B\reps are made of surfaces. Are you saying you can’t get the ID of a surface that us part if a brep?

Filletsrf can make fillet loops using joined or unjoined surfaces or mixtures of both . It doesn’t add any complexity.

I do agree with that, it is measurable. But the tool is hardly avoidable as long as there is no real alternative. Creating single fillets, then cleaning things up manually is often not as simple as you wrote above, even when i join the fillet loop and automatically duplicate the joined borders, i have to do the trimming often face by face as it fails trimming or splitting the whole polysurface in one step.

Sorry, it doesn’t work in all cases. Repeat what you want, i can only tell what i’ve encountered so far.

Surface (faces) in a brep object don’t have a seperate ID, but they have an index in the array of faces the brep is made from. Objects have Object IDs.

From your point of view this may be true.

_
c.

Yes, that’s true, of course. I guess you could say the same about buildings and architecture - perhaps not quite as complicated regulations, but anyway.

To me Tesla Model S is too conventional :wink: Why does it have a long hood? There’s no big engine there. The short front of the ID is much more logical - and looks more modern IMHO.

Well, the new Jaguar i-Pace looks almost the same as the concept did (they added door mirrors, though :slightly_smiling_face:)

I can understand that :slight_smile:

Philip

That’s nonsense I do it daily. Many times in a day

Edit: In the example that was posted at the top of the thread I can make the fillets with filletSrf and then join the fillet loop and use it to trim the polysurface with one click. Then join the result into a solid. If the fillets made by your script is not able to do that then there is something different (i.e. buggy) about the fillets that the scripted function makes.

Trimming with the fillet loop rarely fails when the underlying geometry is well constructed . What you are describing is what happen s when you have surfaces with poor continuity.

That indicates you don’t understand the conditions where it will work.

So post an example

The FilletSrf command excepts surfaces that are joined and/or unjoined. Any option within filletsrf to autochain fillets will need to do that also.

Highly effective crumple zone. You get the frunk for ‘free’… (Not including the common occurrence in that the car is likely totaled with any significant front end collision.)

Sure, just don’t conflate architecture and appearance options. The skateboard platform, a relatively tiny motor, no tank in back, is effectively a clean slate. Construct it to ‘look’ exactly like an ICE banger, or do something radical, or somewhere in between.

Options create dilemmas…

Which may explain why you’re having a hard time to chillout a bit.

Try yourself, the red fillets are made with Brep.CreateFilletSurface, tolerance was 0.001. The polyline was filleted with _FilletCorners command, then extruded. If i join the red fillets, _DupBorder the edges i can only trim or split the cap surfaces, the vertical ones do not trim or split as expected. Before you start blaming me for potential bad quality of the extruded brep or the polyline fillets (i think i did that OK), the edges have a maximum edge tolerance of 1e-12mm. All others are even smaller. The arcs in the polyline are all G1…

@Jim, it really seems to be a tolerance issue, i will try another loop then upload the created fillets again. New file, fillets generated with 0.001, now they trim using the border curves, but it does not join without naked edges with a tolerance of 0.01:

FilletLoop.3dm (2.5 MB)

_
c.

Ok, second one seems to work better now, i get a brep edge tolerance of 0.0004 after _Trim and _Join, that is the same which i get using _FilletEdge for this model.

_
c.

Tried in SolidWorks/Fusion. Quick jobette. No hagglin’ with wisenheimers of all sorts. Mo’ time for the after work beer(s)!

; )

1 Like

@Lagom, did you try with the first file or the second one ?

I’ve found that if i set the unit tolerance to 0.001 the scripted version does not create a single fillet. If i set it slightly larger eg. 0.005 it works OK.

_
c.

I have no reason to start blaming you for anything you are doing great.

You need to understand that modeling in Rhino is like navigating a minefield. If you know how to avoid the mines you do well - if not it gets ugly. So here is what I would suggest to avoid the pitfalls in the filleting that you are doing.

Set your document tolerance tighter. The tolerance you are using would be OK if your smallest fillet was say 8-10 mm. If your smallest fillet is going to be 1 mm then tighten the tolerance to .001 or maybe .002. I think that will take care of the trimming problem.

The other thing I would do is after making the fillets is I would just delete the top and bottom planar surface then after joining the loop I would trim the sides and then join and then cap.
I do that because the only problems I have had trimming with fillet loops is when trimming planar surfaces and cap wont screw up.

BTW I would not have a problem using filletEdge on your example. This is nothing more than a variation on rounding the corners of a box. I just don’t have much occasion to make fillets that are all 90 degrees.

I only saw one file named “filletloop.3dm”

Avoid trimming with curves if possible. Use the loop itself as the trimming object. When you get that working you can rest assured that both the technique and your model are sound.

Hi Jim, the first file posted was by mistake. I have not fully setup RH6 and was using one of the templates for Millimeters, i guess the large one. In my V5 template i work with 0.001mm (unit) and 0.01mm (angle) , but i cannot script that in V5, the fillet function used is part of V6 only.

I am currently investigating why fillets fail completely at 0.001mm using the Brep.CreateFilletSurface method in RhinoCommon. There are two different flavours, one with splitting / trimming feature and one without. I will try the latter next if it makes something different.

I am passing the tolerance to the fillet myself and do not get this from the document, this is possible for the tangent deviation check too which i have at 1 degree atm.

_
c.

Ok it looks like the function without trimming feature does the job better. It starts to bail out at 0.000001mm on a simple box, everything above looks ok.

FilletTolerance.3dm (413.1 KB)

_
c.

The only file I have found is one with .01 tolerance.
I don’t have much experience filleting with V6 so I can’t tell if the issues you are seeing are caused by V6 or something else.

When I was looking at the SDK documentation earlier I read that the tolerance setting was used for the offseting and intersection used to compute the center line curve of the fillet. In your example you have just cylinders and planes the center of the fillet should be arcs and lines and computed exactly.

have you compared the result of one of the scripted curved fillets to a manually made one? I would expect the straight fillets would be exact regardless of tolerance.

All of those trim and join fine using the loop as cutter Even the one made to .01 tolerance produces a solid well wiythin tolerance

Yes i just did. The scriptable version which does not trim or split creates a surface which selects using _SelDup when i do a manual _FilletSrf using the document absolute unit tolerance. So i asume it is the same for now.

…still surfaces only and no idea yet how to make it with mixed types.

_
c.

@pascal, could you investigate attached case ? Using _FilletSrf with a radius of 3mm it hangs RH6 for a while. RH5 does this too but it can be canceled immediately. _ShrinkTrimmedSrf the curved surface helps…

FilletSrf3mmHang.3dm (61.9 KB)

thanks,
c.

I completely missed that one. And your comment is actually very close to a solution
to the statement “Rhino trouble with radius” :
So let us make a final conclusion based on what you have said :face_with_monocle::

A.) You can’t drink your after-work-beer when using Rhino
B.) You need to drink alcohol after using Solidworks/Fusion
C.) Swedish beer is awesome
D.) Only drink beer after work
E.) Prefer beer over Wisenheimers
F.) If there’s no argument left, drink a beer…
G.) Ask yourself how you ended up in filleting something… Life sucks

:wink:

Which one? Maybe Mariestads, still far from any British Ales.