Hello,I was trying to model a stent (biomedical device) centerline using NURBS with 8 control points as shown in the figure.But,as I try to do this in Rhino using Curve->Free form->Control points, the curve also passes through control points 2 and 5 too(apart from the start and end points 0 and 7 ,respectively) .I tried to change the weights of the control points 2 and 5 ,but it still passes from those 2 points .Since,I am a newbie to the use of these nurbs ,so would be really helpful if anyone can guide me regarding the problem.
not sure if i understand correctly, but assuming the curve starts from 0, and has to pass through the mid point - then you can make half the curve with 4 control points, and move middle two points to get the shape you need, and the mirror it (twice). Is this what you are trying to do?:
Usually itâs best to move control points rather than change the weights to modify a shape. raja has shown a good example of how to make the curve. Any particular reason for the control point arrangement in the first post?
Basically ,Iâm following a research paper and trying to understand the way they have parametrized the stent center line. The image that I had posted is the one from that particular literature. In short ,they have fixed the control points,the knot vector, and the degree and only used the weights of the three control points ( the other part being the reflection of the first part ) as decision variables,for the design optimization problem in hand .The below is the para from the said literature:
âThe centerline of a single stent segment is represented
as a NURBS curve. A control polygon with eight nodes is
developed from the stent dimensions detailed above (Fig.).
Further exploitation of the anti-symmetry of an individual
stent segment means that control points 4â7 may be generated
by reflecting nodes 3â0 through the central reflection
point. Furthermore, the weights associated with the control
nodes 0â4 are numerically equal to weights 7â4, thereby
reducing the number of weights to be specified for a given
curve to four.â
Now, it seems like the curve does pass through the mid-point (229,458) .So,if we first draw the lower half n reflect it than we will have to make (229,458) as an end point(i.e control point)
The article talks about using the weights as a mean of controlling the shape.
Attached is a simple RhinoScript that will generate the shape. You can change the weights, in the script, and re-run the script to see how they effect the shape.
Thanks!
Earlier, I was not paying heed to the degree which was causing the problem,need to learn about NURBS more.
Further, on researching more about the topic ,I came to know about Isogeometric analysis (IGA) which has been used in the paper. IGA is a new trend which combines design and analysis,i.e .CAD AND FEA ,thereby saving a lot of time.
âNormals are extended from the centerline at a specified
thickness, which may vary along the stentâ .
Two parameters, tmid and tend, control thickness variation along the segmentâs longitudinal direction according to the kinematically admissible Hermitian
curve:
t (d) = tend + t(3d2 â 2d3) 0 ⤠d ⤠1
t = tmid â tend (3)
where d is the normalized distance along the segmentâs NURBS curve between its endpoint and midpoint. This form ensures there are no discontinuities in thickness at the segment midpoint or at the interface of segments in the overall stent.
So, what I can infer is ,after the centerline is generated ,then normals are drawn a variable thickness from the centerline curve .Thickness being defined by a specific hermite function
Can anyone suggest the simplest way of doing this using Rhino or any other software suggestions are welcome too
Well, at the basic Rhino tools level, you can do this with a simple centerline curve, 3 circles (ends and middle) and a Sweep1Rail. If you have History enabled, you can then edit the curve and the circle diameters and see the stent tube update.
I had more fun creating a parametric definition of this procedure with Grasshopper - see quick video. You can then play with the parameters in real-time. Itâs certainly also possible to hook up some other stuff to actually measure the result, such as volume, curve smoothness, etc.
I have no idea how this corresponds mathematically with your formulas - although itâs also certainly possible to program the curves with the math parameters you want - this was more of a visual experiment. I got the smoothest results with a degree 5 curve and 7 control points.
Hi,
Actually,the cross section isnât circular .First a 2-D section is developed
as I had posted earlier and then it is extruded to get the 3d stent i.e a
tapered extrusion of the section shown in my previous comment.
Mitch is right to let grasshopper do all the parametric stuff. since its a biomedical stuff I assume you will need to extract its mathematical data to carry a simulation or analysis ? Rhino+GH is a good choice but I have no idea about this medical field whether GH have all the necessary component to suit your need⌠I think this situation is more than just building a model⌠perhaps more about building model for analysis purpose.
by the way, abit off topic, im curious what kind of software is used for medical research? is Rhino also a common software for surgeon and doctor?
The cross section can be anything you want, I just used circles as an example, because I didnât see any references to anything other than a 2D plan view in your posts - maybe I missed something. (no I didnât read the research papers) . Also the terminology of âextrusionâ as you are using it with âtapered extrusionâ I am assuming translates to a Sweep of varying cross-section. In a (Rhino) Extrusion, the section curve remains in a constant orientation throughout the object, whereas a Sweep will try to keep the cross-section profile oriented to the rail curve as it moves along the curve. A Sweep can also have multiple profiles, an extrusion cannot.
Anyway, looks like youâre looking for an parametric equation-driven solution to this rather than a geometric one, perhaps best solved with a Python or C# script inside a Grasshopper component if you want real-time updates, the math there is out of my realm.
Yes, you are right,there are several complicated steps in FEM analysis ,not
sure if it can be done in Abaqus.In the research work that I am
following,they have used Strand7 software which has a fully functional
programming API. For this
work, all the programming was carried out in C#. I am a Mechanical guy ,so
donâe have previous experience of Biomedical field either,rather, more
interested in learning Iso-geometrical analysis procedure ,and may even
change the biomedical device later if analysis becomes an issue. I was
avoiding coding would be better to generate the given shape. Thanks for
your suggestion.
They have used Strand7 software which has a fully functional programming
API and all the programming was carried out in C# .I was trying to draw
the shape using GUI approach ,but I guess coding would be easier for
drawing the normals from the centerline and generate the required curve
and then extrude it. Thanks for your suggestion Mitch.
I believe then Grasshopper is the right tool for you, you can go to this website www.grasshopper3d.com
grasshopper was created by David Rutten and he is very active in that forum to help anybody. also you can find tons of PDF tutorial and useful videos.
and some master spend their time developing add on for grasshopper. who knows you might find some that suits your need.
you seem to have a very good understanding about algoritm and Math so learning grasshopper will be no problem
also, Grasshopper is made so that normal people like me can use it without having to learn computer language.