Back to Mirrakoi.com

6-Sided opening


(Mark_Landsaat) #1

Hi guys,

Here’s a file that is a common situation for me. It represents a transition between a top tube and a seat tube on a carbon bicycle frame. It is very challenging for me to build a smooth transition in here. As you can see from the pictures I have solved this with a large transition surface and two side surfaces on either side. I believe the XirusPatch could be a useful solution in cases like this, but for some reason I can’t make this work. Would you be willing to look at it and see what you can come up with? Thanks.

TT_ST_TEST_V4.3dm (446.2 KB)


(Mark_Landsaat) #2

So, I ended up experimenting a little more this afternoon. I used a different topology where I ended up with a smaller 6-sided fairly regularly shaped 6 sided polygon opening and I was able to fill that with the Xirus Patch command. This isn’t perfect, but I have to say it’s pretty good in my opinion. :+1: And this is with me trying to figure out how all of this works.

Here’s a few screenshots of the final NURBS result, as well as the Xirus Object. .3dm included as well for people that are interested.

TT_ST_GS_V1.3dm (2.3 MB)


(Daniilbravi) #3

Ottimo esempio, metodo alternativo a xnurbs.

Good example, alternative method to xnurbs.


(Pablo Garcia Amorena) #4

Hi @Mark_Landsaat,

Here’s what I came up with. I basically cleared the main hexapatch that you have in green, then extracted the surrounding edges/edge loops to apply the Patch command. The horizontal cylinder has three small curves that I join into one using XirusJoinCurves. As this curve is defined by more than two points, I use XirusRebuild to represent it with two points instead, then manually adjust: that’s why you see in the model a slight mismatch with the horizontal cylinder.

TT_ST_TEST_VPablo.3dm (1.0 MB)

I noticed why you couldn’t do it like this: some internal tolerances were set too strictly and I relaxed them a bit. In next update this will be fixed. Your second attempt with Xirus looks also quite impressive, good job!

Pablo


(Pablo Garcia Amorena) #5

@Mark_Landsaat As a means of feedback, I’d like to ask: as you already know, Patch needs 2-point input curves, which means simplest geometry input. Hence, you need to rebuild or modify geometry of surrounding patches to infer continuity and closedness.
To what extent does this affect your workflow? Are you often bound to rigid constraints in your design leading to surfaces with high amount of control points and degree?

Thanks,
Pablo


(Mark_Landsaat) #6

That looks really good :metal: I’m not at my desk right now, but plan to explore more stuff later this weekend. Thanks for putting this together I’ll check it out for sure


(Mark_Landsaat) #7

@pablogarciaamorena_mirrakoi. Hi Pablo, I have realized that I need to rebuild input curves to 2-point curves, but I don’t quite understand this workflow. If I extract a Xirus edge that has more than 2 points and I rebuild it to have 2 points, I believe this changes the geometry which would make it no longer match the edge it was extracted from and as a result you would also loose continuity. Right?

The other part I don’t understand is when to select G1 or G2. I understand that G0 breaks it down to a polyline with straight segments, but I’m not sure when to use G1 or G2.

I have converted a simple Rhino degree 3-4 control point curve to a Xirus object and rebuild that to a 2 point curve. After this I converted them back to Nurbs to see the difference. Having three control points inline with each other for G1 makes sense, but I have no idea when to use G1 over G2.

My workflow is typically a mix of rigid constraints and loose constraints. I do a lot of work in the bicycle industry and the shape definition of the tubing main surfaces is usually quite flexible and this can be done with few control points, often times single span where possible. However, the primary surfaces need to be connected to rigidly defined analytic geometry. Seat tubes need to be round/straight and in precise locations. Dropouts need flat connection surfaces in precise locations, bottom brackets need round flat faces in precise locations etc, etc. And yes, this often times leads to secondary/tertiary surfaces that have a high number of control points and great difficulty maintaining continuity/surface quality.


(Mark_Landsaat) #8

Here’s a screenshot of a project with the Iso curves turned on. You can see the main surfaces are very light surfaces but the connecting surfaces usually end up being very dense. The area under the fork crown is particularly difficult in my opinion, and you can see the surfaces are very dense. I created these with a bunch of helper surfaces and Rhino NetworksSrf


(Pablo Garcia Amorena) #9

Hi @Mark_Landsaat, thank you for your feedback.

Yes. Rebuild changes the geometry as it is an approximation with a different number of control points. It is exact only when the new amount of points is at least the input one.
For the specific problem of Patch we are working to provide it for any kind of curve input, as well as the possibility of adjusting the edge continuity up to some tolerance.

The reasoning of G0/G1/G2 is this: with G0 you control interpolation, with G1 you control interpolation + tangents and with G2 you control interpolation + tangents + curvatures. Curvatures are second-order shape properties, which amounts for more difficult/indirect control over them than tangents which are first-order properties. Though, they can be suitable to create higher-quality shapes and better target post-design physical properties.

Here there’s a 3-point curve (top) that has been rebuilt with G0, G1, G2 and 2 points (bottom). In the following image tangents are displayed in green, and in the third one curvatures are displayed in blue. You can control theses quantities with XirusCurveTangents/XirusCurveCurvatures respectively.
G2 curvature rebuild better approximates the input curve, though if you want to keep deforming it you’d rather use G1 reconstruction as curvatures are not specially more intuitive to handle than tangents.

Pablo


(Mark_Landsaat) #10

This is helpful, thanks :+1: