Hi, I’m kinda new to using Rhino3D and I’m working on creating a boat hull as shown in the following image. I’ve got shape open curves in yellow (I’ve selected several and highlighted them for the example) that I need to intersect at the ends with a blue open curve and a red closed curve.
Here’s what each curve represents:
The blue curve is the boat’s keel line.
The yellow curve shows the shape of the hull at various lenghts.
The red curve marks the top edge of the hull, right where it meets the deck.
Basically, I need the upper two points of the yellow curves to meet with the red curve, and the lower point of the yellow curves to meet with the blue curve. But I don’t want to modify the “overall shape” of the yellow curve while doing this.
After, I would like also to be able to move these yellow curves along the red and blue ones in the same time to position them along the length.
I tried several things sush as find the nearest points, use “Scale”, “Move” and the use of the “Orient” feature, but without success. Does anyone would know how to do it? Thank you very much for your advices.
Boundingbox
To get the current dimension
IntersectTwoSet
Use IP (type it in the command line) infinity plane for the first set.
The two curves as 2nd set
The intersections/ points are your targets
Now one or a combination of:
Scale1d
ScsleNu
Orient
Orient3pt
Check all commands above in the help.
Check this forum for boat / ship hulls - there s a lot of great resources
I assume all curves are symmetric about the centerplane, x is the fore/aft direction and z is vertical direction.
Section the red and blue curves in side view to create points where you want the yellow curves to coincide. Or use Contour if the yellow curves are to be equally spaced.
For each yellow curve:
Move the yellow curve so one end is at the desired location on a red curve. ScaleNU with base point where the yellow curve is at the correct position on the red curve.
X: Enter for scale factor 1 so no scaling happens.
Y: Select the end of the Yellow curve as the reference point and the desired location on the red curve as the target point.
Z: Select the center bottom point on the yellow curve as the reference point and desired location on the red curve as the target point.
Repeat for all yellow curves.
By the way, for symmetric hulls I only work with one half the hull.
Assuming you will eventually want to build surfaces and/or even a watertight solid from these curves I would strongly suggest that when you attach the section curves to the keel and deck curves that you use osnaps. I also suggest that when you build your sections that you do them on planar rectangular surfaces (one for each section) that are larger than the eventual hull section. You can intersect these planes with the keel and deck curves to create points to use for the osnap of the section curve ends, Another suggestion is to use as few points as possible to get the desired shape of each of our curves, as few section curves as possible to get your desired hull surface, and the same number of control points for each section curve of similar shape. At the aft end where the basic section shapes are different you will need to have more control point, of course.
I also agree with Davids suggestion to model the half hull and mirror it to get the whole thing. If it is important to have smooth continuity across the mirror plane take care to model your section curve with the first control point next to the keel end at the (exactly) same height (z) as the end point.
BTW: put your helper rectangles on their own layer so you can easily turn them on and off as desired. When you are all done you can throw them away if you wish, though there is certainly no harm in keeping them around.
To find the 3 points of intersection I used the following commands as you described @Tom_P:
1- ‘Boundingbox’ command
2- ‘IPlane’ command on the bounding box
3- ‘IntersectTwoSets’ command
1st set: the plane and the bounding box
2nd set: the red curve and the blue curve. The result in the attached image.
And after using ‘ScaleNU’ as you described @davidcockey, I used ‘Orient3pt’. But here I have a problem in every case I’ve tried the yellow curve is like heavily distorted.
But in fact maybe that’s normal, because depending on where the yellow curve is placed along the keel the distances are not the same with the other ones. Do you think that it would be better and that it would be possible to do this instead, for example:
Find the place where the distance between the yellow curve and the blue curve is the smallest. To find the 3 intersection points there and limit the deformation.
Or where the distance between the two points at the top of the yellow curve and the red curve is closest.
That’s why I wanted also to be able to move the yellow curve along the red and blue curves at the same time and have the yellow curve scale automatically.
Yes thanks @AlW, so I’m using osnaps to make a first ‘move’ to put the first point of the yellow curve on a point of intersection of the red curve and clearly define the 6 points.
can you please post a .3dm file ?
at least sketch the expected result. (without 100% fit)
… input, result i got, result i wish (name the objects, the layers or give them colors and describe it in the post)
hard to judge / help from a screenshot.
if
_Boundigbox
does not give a rectangle (curve) but a box it means the curve is not totally aligned to the world / cplane direction or not planar. Also check the output of the command in the command history.
did you check _scaleNU and _scale1d ?
if a pure scaling thoes not give the desired result, you need to handle the CVs of the curve.
Yes sure, here is the clean (with names) and simplified .3dm file with some details:
The shape curves on this file give the shape of half the front hull.
The dimensions (width, height and lenght) of the “deck line”, “keel line” and “wood space” layers are correct and must remain fixed.
In the centre, from the “keel line” (blue) to the edges of the “deck line” (red), there is a maximum width of 840mm on the right and 760mm on the left. The “center shape curve” layer must respect this.
There are 2000mm between the highest point of the deck and the lowest point of the keel.
The deck line is curved downwards by 80 mm at the center.
The “center shape curve” in green is the curve at the front half of the hull where the width is maximum.
Ok for _Boundigbox I’m checking that.
Yes I’ve tried _scaleNU and _scale1d, in fact I’m placing the shape curves by hand on the keel line when I should may be finding the right place where the curvatures are least distorted. forum20240123_102959.3dm (124.2 KB)