CSG modelling in Rhino5 for capturing internal control points of 3d solids

Hello every one.
Concisely, how can I obtain internal control points and knot vectors of 3D NURBS models?
Although the B-Rep parameterizations could be gained and exported from Rhino, the Constructive solid Geometry models could not be modeled. How can I overcome this task?

Hi Mohamad,

The method depends on what development tool are you using. Are you writing a plug-in? Are you using C++ or C#?

Rhino is a freeform model and does not maintain a CSG tree, history, etc. like a traditional solid modeler.

Perhaps you can share with us the specific problem you are trying to solve, and why?

Thanks,

– Dale

Thank you very much dear Dale
Currently, I am a phd student of structural engineering who is new user of Rhino. And I does not utilize any specific plugin, etc related to 3d control points/parametrization. Actually, I am working on 3d Isogeometric Analysis which requires 3d NURBS parametrization, ie. degrees of NURBS, 3d control points and 3d knot vectors. How can I overcome this issue?
Thanks a lot for your time in advance

I have used .obj format to obtain the untrimmed 2d control points and open knot vectors and there is not any problem. However, when I model the trimmed 2d surfaces and 3d solids, using this format will not yield to the actual EN BLOC geometries.

What issue? I understand you want the definition of NURBS curves and surfaces, which Rhino can provide. But how to you want these definitions delivered? That is, in what form do you want this information, and how do you expect to get it?

Sorry for the questions. I’m sure we can help you - just now sure how. :wink:

– Dale

1 Like

I have used .obj format to obtain the untrimmed 2d control points and open knot vectors and there is not any problem. However, when I model the trimmed 2d surfaces and 3d solids, using this format will not yield to the actual 3d solid EN BLOC geometries. That is, Is there any way to capture internal control points of solids?

The basic question is not about format which I want to get. I want the definition of NURBS volume for IGA/FEA purposes.

It is your politeness dear Dale. Thank you for your attention.:smiley:

Since this is the “Rhino Development” category, I’m assuming you are a developer. But you have not answered my initial questions of: Are you writing a plug-in? Are you using C++ or C#? So I’m not sure what kind of help to provide you.

But I will throw this out and see if it sticks.

We have an open source C++ toolkit that allows you to read and write our 3dm file format. With this toolkit you can can read files and obtains the definitions of NURBS curves and surfaces. You can find the toolkit here:

https://www.rhino3d.com/opennurbs

If this isn’t helpful, then please define, in precise details, what you are looking for.

– Dale

You can’t get the internal control points for a NURBS volume because Rhino is a surface modeler that uses bivariate NURBS and your solid IGA requires a trivariate representation found in solid modelers. You will either have to limit your IGA to surfaces or try to build the volume yourself from the surface Brep.

Thanks dear Gary
Therefore, I have 2 alternatives. 1. Keep working with Rhino and building volume from Breps(but how?). 2.Changing to solid modeler(but what solid modeler?).
Would you please propose me a good reference for the first choice and an appropriate software for the second one?

As Dale has pointed out, without knowing more about what you are ultimately trying to do, it is difficult to make suggestions.
Building your volume from the Breps is very hard to do and is currently the subject of research. You could write your thesis on this subject alone. A good starting reference might be Thomas Hughes. He heads an IGA research team at the University of Texas and has written many papers on IGA as well as a book which talks about this problem.

I don’t have the experience to suggest a solid modeler. I have used CATIA but it is expensive and requires a lot of time to learn.
IGA can be performed on just surfaces and unless your research requires otherwise, why not forget about the solids. This will simplify your problems and allow you to focus on whatever principles you are investigating. Also, this will allow you to use Rhino, which gives you one of the best CAD programming interfaces you could want.

Gary what do you mean by this sentence?

Just use the surfaces and don’t try to convert them to solids. An equivalent example in FEM would be to use something like shell elements instead of hexahedral solid bricks.

Thanks alot.
Discussions gave me more sight about Rhino.
Have a nice times.
mirfatah