Export WAMIT gdf and keep track of "patch" order


Hi, my work flow is that I create a geometry (as surfaces) in Rhino and then export it as a .gdf file for WAMIT. Each surface in Rhino is saved in a text file that gives a list “patches” (the WAMIT term), one patch for each surface from Rhino.

My question is: Is there any way to know (or control) the order in which the Rhino “Save as” command writes the Rhino surfaces into WAMIT patches?


WAMIT evalutes the interaction of a geometry in water waves. Typically, WAMIT treats a set of closed surfaces as a volume, and the surface normals should point out of the closed volume.

However, WAMIT also has the functionality to designate a particular surface as a “thin member” which is essentially a two side surface (an infinitesimally thin plate). This designation is done in text file other than the gdf, and it is done by simply giving a list of the indices of the patches from the .gdf file that are the thin members.

So, my problem is that I create a geomtry in Rhino; some of the surfaces enclose a volume, and some of them are thin members. I Save this As a WAMIT .gdf and I get a text file that has all the Bspline information as a list of the surfaces, but in that text file, I now do not know which of those Bsplines are the thin members.

More background:
I actually create the geometries programmatically with a custom C# Rhino plug-in. So if there is anyway to know the order that the surfaces are exported using RhinoCommon, that would be ok too.

(Steve Baer) #2

If you are writing a C# plugin, it might be easier to perform your export to multiple files and then merge those files into one. This is the only way I can think of to guarantee a specific order and to know which items a thin and which are not.


Ok, thanks Steve.

I’m actually just going to write my own method to create the WAMIT gdf files.


Hi camalamadingdong,

I don’t know if you figured it out already but my understanding is that if you are coding up patches, then bottom-most patch in the gdf file created would be the first patch you coded-up.