Hull surface from point cloud measurements

I have created many hull surfaces starting with a dense point cloud from photogrammetry. I usually export the point cloud as a textured mesh from the photogrammetry software (Metashape). I separate the stem, keel, sternpost, etc from the planking.

I usually have the point cloud/mesh in one file and create the model in a separate file. I use Worksession with both files attached which lets me use the point clould/mesh as reference while keeping the model file smaller.

The basics of the procedure are:

Orient the point cloud in the coordinate system as desired. I use the YZ plane as the centerplane. Waterlines are parallel to the XY plane.

Contour the surface. Typically I create stations (normal to the X axis), waterlines (normal to the Z axis) and buttocks (normal to the Y axis). The spacing is closer than what is typically used for a lines plane. For a 12m boat such as in the image above I typically use 0.3m to 0.5m spacing for the stations, and 0.2m to 0.4m spacing for the waterlines and buttocks.

Decide if a single surface can be used for the entire hull or if multiple surfaces will be needed. For a stem which smoothly curves into keel I usually used Method C of Boat hulls with smoothly curve stems - how to model

Create curves for the boundaries of the surfaces. InterpCrv by clicking on the contour curves where desired; or Points to create points on the contours and CurveThroughPt to create the curves. Fair the curves as desired.

Extend or DynamicExtend curves as needed to create bounding curves for four sided surfaces. Sometimes but not always I will also create some intermediate section curves to use with Sweep1.

EdgeSrf to create initial surfaces. Or if there are intermediate station curves then Sweep2 to create initial surfaces. These surfaces will probably have major deviations for the point cloud/mesh. This is okay. They only need to be close enough to the point cloud/mesh at the boundaries.

Divide the contour curves and the edge curves using the Length option to obtain input points for patch. For a 12m boat I typically use a 25mm to 100mm spacing for the points.

Next Patch command will be used to have the surfaces conform to the point cloud/mesh/
Patch command
Select the input points for a surface.
“Select starting surface” option
Select the initial surface for that set of input points.
Check “Preserve edges” box.
“Starting surface pull” of 0.1 or less.
Enter to complete.

Repeat Patch proeceedure for each surface.

Match and fair the surfaces as desired.

PointDeviation can be used to check how closely the surfaces conform to the input points.

Perhaps I should make a video demonstrating this proceedure.

4 Likes