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.