Class-J yacht

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
Chris_G
Veteran
Posts: 2579
Joined: Tue Dec 31, 2013 4:10 pm
Location: France
Contact:

Class-J yacht

Post by Chris_G »

Hi,
To me, the Class-J yachts that were challenging the America's Cup, about a century ago, are the most beautiful boats ever made.
I love the shape of their hulls.
So I gave a try at modeling one in FreeCAD.
- Downloaded a scanned plan on the web
- Drew over the hull lines in Inkscape
- Imported and placed them in FC
Skinning the resulting curves has been the main challenge, since the profiles were not perfect, so an interpolation would not give a good result
So I discretized all my curves and used the ReverseEngineering WB, that does a surface approximation with smoothing algorithm.
The resulting surface is maybe not a hi-quality surface, but it looks good enough to me.
I just added simple sails and mast to give the boat its whole dimension.
Chris
Yacht-2.jpeg
Yacht-2.jpeg (30.87 KiB) Viewed 9854 times
Yacht-3.jpeg
Yacht-3.jpeg (51.29 KiB) Viewed 9854 times
Yacht-2.fcstd
(234.34 KiB) Downloaded 329 times
Linden
Posts: 109
Joined: Wed Aug 19, 2015 10:35 pm
Location: Canada/Philippines

Re: Class-J yacht

Post by Linden »

nice work
if only we could 3d print it full size;-)
Linden
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Class-J yacht

Post by microelly2 »

Chris_G wrote: - Imported and placed them in FC

Skinning the resulting curves has been the main challenge, since the profiles were not perfect, so an interpolation would not give a good result
So I discretized all my curves and used the ReverseEngineering WB
It's intersting for me to see how you reconstruct the 3D points from the line models.

Do you have an reconstruction algorithm from the half hull lines to the surface grid or did you place the curves by hand?
What are the parameters for the nurbs generation?
User avatar
Chris_G
Veteran
Posts: 2579
Joined: Tue Dec 31, 2013 4:10 pm
Location: France
Contact:

Re: Class-J yacht

Post by Chris_G »

Hi,
From the flat Inkscape SVG file, I did the placement of the half-hull lines by hand.
Then I discretized the curves and and called the nurbs surface function with the following macro :

Code: Select all

import Part
import Points
import ReverseEngineering

# create the names of the half-hull lines
profNames = []
for i in range(31):
    name = 'Shape0'+str(54+i)
    profNames.append(name)
profNames.append('Shape')

# Discretize the curves and put the points in a Points object of the Pointcloud WB
nbLines = 30 # nb of samples for the half-hull lines
ptcl = Points.Points()

for p in profNames:
    ptcl.addPoints(App.ActiveDocument.getObject(p).Shape.discretize(Number=nbLines))

# the 2 rail curves : 800 samples
ptcl.addPoints(App.ActiveDocument.getObject('Shape085').Shape.discretize(Number=800))
ptcl.addPoints(App.ActiveDocument.getObject('Shape089').Shape.discretize(Number=800))

# create an approximating nurbs surface with smoothing algorithm
s = ReverseEngineering.approxSurface(Points = ptcl, UDegree = 3, VDegree = 3, NbUPoles = 20, NbVPoles = 12, Weight = 1.0, Grad = 1.0, Bend = 1.0, Curv = 1.0, Iterations = 20, PatchFactor = 1.01 )
Part.show(s.toShape())
App.ActiveDocument.recompute()
Be careful, the nurbs surface function can be CPU-intensive.
However, as you will see, it generates a surface that needs to be trimmed. It is not a sweep-on-2-rails nurbs patch.
Below is a FC file with the half hull curves, ready to test the macro above.
Chris
Yacht-3.fcstd
(43.43 KiB) Downloaded 215 times
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Class-J yacht

Post by microelly2 »

Thank you, I will play with your data.
My experience with the nurbs is the same: if the number of pols is more than 12 you have to wait.
User avatar
hammax
Veteran
Posts: 1985
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee DE

Re: Class-J yacht

Post by hammax »

... finally could do ChrisG's J-class yacht also with CurvesWB Gordon surface.
(first run - some quick&dirty proceedings)
https://forum.freecadweb.org/viewtopic. ... 58#p421698

J-Yacht_4.png
J-Yacht_4.png (38.87 KiB) Viewed 4475 times
Attachments
J_Yacht_1.FCStd
(546.44 KiB) Downloaded 95 times
User avatar
Chris_G
Veteran
Posts: 2579
Joined: Tue Dec 31, 2013 4:10 pm
Location: France
Contact:

Re: Class-J yacht

Post by Chris_G »

Really nice, Hammax !
I like the solution you used for the rear of the hull.
User avatar
hammax
Veteran
Posts: 1985
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee DE

Re: Class-J yacht

Post by hammax »

... Chris it was your idea/proposal, to cut off "negative" shapes by boolean operations.
Up to now I always tried to form the frame BSplines as is.
And the BSplines should have an identical structure, to get a smooth shape.
It was a difficult task, coming from S-shaped frames to neighboring U-shaped frames.
Positioning the useless S-shape part into the negative "nirvana" and cutting it afterwards off, is a good idea.
You did the same with your half hull shape and put my nose on it.

J-Yacht_5.png
J-Yacht_5.png (46.02 KiB) Viewed 4337 times
Attachments
J_Yacht_2.FCStd
FC.18.4
(804.68 KiB) Downloaded 107 times
User avatar
Willem
Veteran
Posts: 1852
Joined: Fri Aug 12, 2016 3:27 pm
Location: Lisse, The Netherlands

Re: Class-J yacht

Post by Willem »

Amazing what you did guy's
I am a born sailor and for those who do not know why the Class-J is the queen of the sailboats, the explanation is in the photo
J-Class-Endeavour.jpg
J-Class-Endeavour.jpg (52.96 KiB) Viewed 4224 times
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Class-J yacht

Post by paullee »

Extraordinary :D
Post Reply