This action might not be possible to undo. Are you sure you want to continue?
Developed by Mark Pavkov for
The Center for Innovation in Ship Design, Intern Program Naval Surface Warfare Center, Carderock Division
9500 MacArthur Blvd Building 1 West Bethesda, MD 20817-5700 2007©
This tutorial has been designed to give the reader an understanding of the different methods that can be used to model a ship‟s hull in Rhino through a series of predesigned offsets. These offsets are produced from when the hull form is portrayed graphically by the lines plan (see: Introduction to Naval Architecture). This shows the various curves of intersection between the hull and the three sets of orthogonal planes. In merchant ships the transverse sections are numbered from aft to forward. In Warships (U.S.) they are numbered from forward to aft. The distances of the various intersection points from the middle line plane are called offsets. There are a various ways to complete this modeling task and in no way does this tutorial purport to be the best way. It will however introduce some techniques, developing a useable skill set in surface modeling. In this case, the body plane was scanned and offset points were created with a piece of software called SHCP (Ship Hull Characteristic Program). This is a very fast, albeit inaccurate way to create a table of offsets. Techniques will be introduced to help align these inaccuracies and solve the problem of the “sloppy offsets”. This tutorial will lead the reader through the following steps to complete the modeling of the ship‟s hull: Introduction ..................................................................................................................... 2 1. Generating the Offsets ................................................................................................ 4 2. Generating a Rhino Points Cloud ............................................................................... 6 3. Generating Station Curves .......................................................................................... 8 4. Refining the Curves .................................................................................................. 10 5. Introducing Special Features..................................................................................... 15 6. Generating the Main Hull Body ................................................................................ 17 7. Generating Waterlines .............................................................................................. 20 8. Generating Bow & Stern Surfaces ............................................................................ 23 9. Mirror the Hull .......................................................................................................... 31
Useful Commands: Hide: Left click the icon and either select an object to hide or drag the selection box over a group of objects by depression and holding the left mouse button. Then by hitting the Enter key or right clicking the mouse, the selected items will then be hidden. By right clicking the icon, all hidden objects will reappear on the screen. It should be noted that this applies only to active layers; hidden objects on inactive layer will remain hidden. This command is quite useful when the need arises to work on an object that is obscured by another or when there is simply too much clutter on the screen. Zoom window/ Zoom target: This icon will zoom onto selected areas. Keep in mind that this command can be executed in the middle of another command, for example to pull the distant terminus of a line into view. In the Perspective view, it has the added benefit of relocating the axis of rotation for all objects to the center of the selected area, which is very convenient when doing close up work on an object. Press ‘U’ in Middle of Command: This is an „undo‟ command to return to the previous step in the overall command. Command Bar: It is useful to keep an eye on the „command bar‟ as this will indicate any errors in the command and can be used for problem solving of incorrect modeling. Double Click on View Fields: You can „double click‟ on view fields such as front or perspective to enlarge them to a full screen. The double click can also be used to escape back to the original four window view.
1. Generating the Offsets
AIM: To edit the SHCP table of offsets into a Rhino compatible form. METHOD: By editing the table in Excel In order for Rhino to the use the offset data produced by the software package SHCP it must first be put into the correct form. Open the Excel file Containership lines. The format of the table of offsets is in a typical Cartesian system, with one anomaly: the x coordinates are given in a different scale then the y and z. The x scale in this case is not a scale at all, but a division of the ship called “stations.” As explained stations are a series of transverse cuts at defined increments from the forward perpendicular (FP) aft (negative x coordinates define the bow section forward of the FP).
There are usually 10, 20, or 40 stations in a typical table of offsets. In this case there are 20 stations and several partial stations where the curvature is complex. To make this table compatible with Rhino the following editing must be performed: Delete row 1, which is text and unreadable to Rhino. Delete column D, to remove the redundant 88888 station breakers produced by the SHCP program. Once this is done we must transform the scale of the stations. The y column is in meters and defines the point from the ship centerline (the transverse middle of the ship running fore and aft), where as the z column defines the point from the ship baseline or the bottom of the keel plate. The spacing between stations is 9.875 meters. multiply column A by 9.875 in order to get the correct longitudinal spacing of the points. Put the calculated values into column A in a new sheet using the Special Paste command in the Edit dropdown menu, while selecting the values radio button. Once you do this the spread sheet should look like this:
Now save this spread sheet as a common delaminated file (*.CSV), using the Save As command and changing the file type in the drop-down menu. Give it the name Offsets for Rhino. Two warnings may come up. Just select Okay or yes for both.
This will create a copy of the file in the new format and can be opened or modified in for Notepad or Excel. The Data file is now ready for Rhino to read. NEXT STEP: This Rhino compatible „Ship Hull Offsets‟ table can now be used to generate a ship hull‟s „Points Cloud‟.
2. Generating a Rhino Points Cloud
AIM: To input the edited SHCP table of offsets into Rhino and create a ship‟s hull „point cloud‟. METHOD: By using Rhino‟s „File Import‟ and „Grid Extends‟ command. To begin a new Rhino file needs to be created. Then the table of offsets can be imported to create a „points cloud‟ structure for the ship hull modeling. Open Rhino and select the new file icon and when prompted, select the template: meters.3dm. Or go to Dimension > Dimension Properties > Units and switch to meters. Go to File > Import. If the Files of type line in the window are not set to Point File, then set it as such.
Selecting your .cvs file, click open. Press „OK‟ Next, right click the Zoom extents icon .
You now have a point cloud that will become the lines of the ship. Before the modeling can continue the grid extents need to be changed. From the drop-down menu select Tools > Options > Grid and change Grid extents from 100.0 to 210.0. Now save the model. Although Rhino will automatically create an Autosave copy of the file, make sure to save often and save copies of the models at different stages under different names. 6
This allows the user to go back to an earlier model as there are only a finite number of undo commands that can be executed. A complete „points cloud‟ for one half of the hull model has now been created. Since ships are longitudinally symmetric hull modeling only needs to be concerned with one half of the ship. NEXT STEP: To create station curves from the „points cloud‟.
3. Generating Station Curves
AIM: To generate ship hull station curves utilizing the „points cloud‟ previously created. METHOD: By using the Rhino command „Interpolate Points‟. Before the station curves can be modeled, modeling „layers‟ will have to be created. This will enable the user to hide parts of the model he/she is not working on or allow the user to make only work on certain layers that are „active‟. Click on the layer icon Double click on the text of the default layer. Rename it as points. Go to the next layer and rename it curves. Check the points layer box making it the active layer. To enable the selection of individual points in the „points cloud‟ the cloud will be needed to be broken up. This can be achieved by using the „Break‟ command. Click on any point to highlight the „points cloud‟ (to highlight all in yellow) Click on the Break or Explode command .
Now the Station curves can be modeled, these will be used to loft the hull surface. Make the curves layer the active layer, by checking the curves box. Click on the Osnap box at the bottom of the screen and check the point box. From the dropdown menu Curves > Free-form or right click the Control point curve icon and select Interpolate Points curve. Start at the forward end of the ship with the top point of the first set of vertical points and connect one to another by clicking on each point until the bottom point (keel) is reached, then right click. Use the Zoom window command to centre in on the first station curve (see intro). NB: „Right Click‟ to escape command then „Right Click‟ to redo command.
Repeat this process for the rest of the points until are set of ribs (stations) are developed. It should look like this:
NEXT STEP: To Refine the Station Curves. NB: Save as new file, it is prudent to save the model as a new file after each section in this tutorial, incase you require to return to an earlier stage in the modeling.
4. Refining the Curves
AIM: To refine the curves to gain a more accurate representation of the overall hull surface once it is rendered. METHOD: By manually deleting and re-drawing certain sections of the station curves. In order to accurately refine the station curves they need to be looked upon in closer detail. Turn off the points layer (yellow bulb). From the drop-down menu, Analyze > Curve > click Curve graph on. This command will allow you to assess the fairness of the curve, this is the smoothness with which the curve changes along its length. Select all the curves, press enter.
The curve graph greatly exaggerates the curve‟s slope and inflection points. Where the graph line crosses the curve is an inflection point. The curves in your model may not be as warped as the in above picture, it depends on what display scale setting is being used. Several inflection points on lines appear to be straight. It will help with the overall rendering of the hull surface if these lines are smoothed out. There are two ways to do this. 1. Through tweaking the control points 2. By letting the program find the best fit of a new curve. We will use the latter, but you may want to turn on the control points and play with them, while the graphing function is on, to get a feel for what is going on. 10
Click Analyze > Curve > Curve Graph Off.
The Interpolate curve command wants to make a constrained curve with smooth transitions from point to point. Upon closer inspection, in the right view port, you will see that some of these lines dip below the x plane as the turn of the bilge (underside of the hull) becomes “flat” bottom. We will need to: 1. Break these curves where they meet the x plane, as fairing the curve will only serve to complicate this problem. 2. Then fair the curves above the x plane and create a straight line were the points run parallel to the x plane. Working in the right view port, Turn off the curves layer and check the points on. Highlight all the points not on the x-y plane by dragging the selection box from the outboard edge just above the y axis to the upper edge of the centerline. Click Hide. You will need to zoom in and look down the x-y plane for any points you missed (there are probably only 2 or so) and hide those also. Using the layers window, Turn off the points and turn the hull curves back on. You now may either use one of the following two commands, 1. Trim command 2. Split command
Note: Using the trim command visually changes the line, but it remains mathematically unaltered, whereas spilt alters the equation of the line—this is important to remember when exporting Rhino geometry into FEA programs. In this case we will be using the split command, select split and select all the curves and right click, then press enter. Next, turn off the curves layer and turn back on the points layers. The hidden points will still be hidden: Select all the visible points as cutting objects. Turn back on the curves layer and hit enter. Turn off the points layer. Highlight the top sections of the curve and hide them and Delete the remaining “flat” bottom section of the curves. Right click „Hide‟ to un-hide the curves. Go to Curve > Curve edit tools > Fair, select your curves, leave the tolerance at 1.0, and execute the command. Click Analyze > Curve > Curve Graph On. Select Curves. NB: Check right view to make sure curves have been faired correctly and that no curve passes through the x-z plane. There is now a marked difference in the curvature graphs.
Click Curve Graph Off. Working in the curves layer, Using the Layer window turn the points back on. Starting at the bow, reconstruct the first deleted line with a ployline connecting the points and the faired hull curves. The curve and the line at this point will exhibit positional continuity (G0). More advanced techniques (using tangency continuity (G1)) can be applied to correct this. To match the lines to make a complete station curve, Click Curve > Curve edit tools > Match. The command box will ask you to select open curve to change; Select the faired curve at this time, start at the bow (first station curve) The command box will ask you to “select open curve to match;” Select the poly line. The continuity radio button should be set to tangency . Check preserve other end and hit Okay. The knuckle in the line has now been smoothed out while preserving the flatness of the bottom and with limited ill effect on the fairness of the line. One curve at time, join curves. Repeat this construction on the rest of the hull lines needed.
NEXT STEP: Now the station curves have been created additional features of the ship hull can be included such as the Bow and Stern lines.
5. Introducing Special Features
AIM: To develop the skeleton of the model to include additional features usually present upon a ship‟s hull. METHOD: By manually manipulating the station curves and by importing standard ship features onto the skeleton. To begin the parts of the bow and stern tube of the ship need definition in the xz plane. We are going to import a set of points that will help to develop these surfaces. The points were created from the profile view of the ship: specifically, the continuous line from the point were the hull meets the forecastle, down around the bulbous bow, to the keel and continuing aft. Go to File > Import look in CISD Rhino Tutorial Change „files of type‟ to Rhino 3D models Select Bow and stern pts > Open. Activate a new layer and name it keel. Draw a Interpolate Curve through the points starting with the tip of the bow down to the last point before the end of the 4th station were it meets the keel. Make polyline starting from the end of the bow curve, through the keel ends of the stations up to and including the 21st station. Use a curve from the 21st station through the stern points to the tip of the stern tube. Use the Curve > Curve Edit Tools > Match command again selecting the bow curve first and the keel as the match line. Match keel to stern line. Make a fourth curve from the tip of the stern tube up to the lower point of the transom. Finally, draw a line from the bottom point to of the transom to the floating point that represents the top of the transom.
NB: several colors have been used to highlight different features. NEXT STEP: To generate the main hull body.
6. Generating the Main Hull Body
AIM: To form the main structure of the hull body. METHOD: Using primarily Rhino „surface‟ commands. Look at the model in the right view port and pan up towards the shear line (upper, right points, outer edge), it is visible that the station curves now bow outside of the xz plane at the outer most shear point. This ship has parallel mid body in the real world. To rectify this problem we need to create a vertical plane extending in the x and z directions. With only the curves and points layers on, locate the outermost shear line point in the right view and select it Switch to the perspective view port. Activate a new layer (one without anything on it) and name it vertical plane. From the drop down menu select Surface > Plane > vertical. Use the highlighted point as the Start of Edge point pull this edge forward, past the bow of the ship (make sure the Ortho command is on ) Left click and then enter 16 as the Height. Create the plane along the ship (click down under the ship) Next, click on the rectangle you have just created to realize it. Repeat this going aft using the same point as the start (the Osnap box End should be checked). Join these two surfaces.
Turn off points layer Turn the model so that you can see the stations protruding through the plane. Hit shaded viewport
We are going to pull these lines to the surface we created. Working in the Top view port, activate or create a new layer and name it, new lines. Right click Project to surface Do the lines individually Zooming in select the lines that cross the plane you created. Hit enter (or right click) when done and then select “choose the surface that pulls” which is the plane recently created. The “pulled” line will now be highlighted. We need to select the next curve to be pulled initiate the command then right click to re-initiate the command for the next curve. Repeat for all the other curves penetrating the plane. Turn off plane. You should now have a series of lines that we will be used as cutting lines. Use the split command and select all station curves with associated projected lines. Press enter. Use the projected lines as the cutting object, selecting them close to the xy plane. 18 and select Pull curve to surface .
Press enter. Turn off new lines and switch to curves. In Perspective view delete the tops of the split station curves. Turn on points. Make certain that point and end are checked in the Osnap command line. Use a poly line to connect the end of the truncated station curve to the shear line point, skipping intermediate points (you may want to hide extraneous points). Use the Curve > Curve Edit Tools > Match command as before, continuity tangential, with the line to be changed: the station curve, and matching it to the straight line you recently created. Repeat this for the rest of the truncated stations. Join the sections of each station curve together at this time NEXT STEP: To aid greater definition to the hull surface by adding what are in essence waterlines.
7. Generating Waterlines
AIM: To add greater definition to the hull surface by adding waterlines. METHOD: By using various Rhino „plane‟ commands. Greater definition of the hull is needed. This will be achieved by adding what are in essence waterlines, through this we can make a hull surface with better continuity. First, we will make a plane. Activate the vertical plane layer. Hide the vertical plane. From the pull down menu select; Surface > plane > corner to corner or icon and then . The first corner will be (-7,0,1) input these coordinates (without the parenthesis) in the dialog box. The second point will at (203,16,1). We will now copy this plane several times creating horizontal slices vertically through the hull. Do this by using the copy command . Select the horizontal plane as the object to copy Press enter and the (-7,0,1) point as the copy from point. For the point to copy to we will use the @ command. In the dialogue box enter @0,0,1 and then enter. This will create a copy that will be one unit (in this case meter) from the start point selected. The command is still active so, Now enter @0,0,2. Then enter @0,0,3 and so on until we reach 15 in the z coordinate. Press ESC.
Keep the keel and curves layers on. Create a new layer and call it waterline pts and make it active. In the project from surface . command, select the object intersect command
Select everything, press enter, and wait for Rhino to process the command. There will now be a new set of points created. If a point was created at the intersection on two lines that don‟t intersect the waterline planes, delete it, as it will just cause confusion. These extraneous points will be located around the bow and stern areas. Look closely in between planes, there may be a few in the stations where two sections of the curve are not joined. Basically all points that are not on a plane need to be deleted. The next step is to actually make some waterline curves. These will be used to give the hull a better shape. Create new layer and call it waterlines Turn off or hide the planes and starting with the 1 meter (+ z) make a curve (interpolate points) from stem to stern connecting each station point on each waterline. After the 9th line (right before the end of the bulbous bow) start your lines at the 3rd station and not the edge of the bow. This is to keep the hull fair. After the 11th station line do not connect to the stern (transom).
Join the Bow, Keel and Stern lines. Join together the keel line from the 3rd station to the tip of the stern tube. Break up the waterlines (water, keel and shear) from the 3rd station to the 22nd station forward of the stern tube, using the stations as your cutting objects. Initiate the Split command. Under “Objects to Split” select all waterlines and the keel line. Under “Cutting Objects” select the 3rd to the 22nd station lines. Notice that between the 3rd and 4th station, the 1 meter waterline ends before the 3rd station. This will cause an error with the command that we will use to create surface on the majority of the model. Keep in mind, that the 1 meter water line must be skipped as a cross curve when creating this panel. NEXT STEP: Now the waterlines have given the ship‟s hull greater definition, the bow and stern surfaces can now be developed.
8. Generating Bow & Stern Surfaces
AIM: To create the Bow and Stern Surfaces of the Rhino ship hull. METHOD: The surfaces will be created by using the Rhino „Sweep 2 Rails‟ command. The hull now consists of 19 panels that will individually be developed into surfaces and then joined together to give a seamless and smooth appearance. Create a new layer called hull surfaces to work in. A useful command to develop a complex surface in Rhino is the Sweep 2 Rails command. From the pull down menu select Surface > Sweep 2 Rails or .
Select stations 4 and 5 as the two rails and the waterline segments connecting them as the cross curves (use a right to left drag to capture several or all of them at once). NB: Use curves not surface edges as the sweep rails. Select waterlines in-between the two stations. Press enter. When the two rails options dialogue box appears set it up like this (while many of the two rails option dialogue boxes will not appear exactly liken this, make sure rail curve „option B‟ is selecting (after the first surface is created):
Since we are not going to try to hand fair the surface we can limit the number of control points. The rail curve options will not be active at first, but will be with the next panel.
For the next set of rail curves we will select the edge of the last panel and the 6th station curve. We will want to match the curvature of the last panel to one being created. A & B are the two edges of the panel. Rhino will use the edge of the last panel to create a strake of two panels.
Repeat this process to form the majority of the hull, up to the 22nd station. The panel between station 3 &4 will be addressed using a combination of Sweep 2 Rails and Loft commands. Split the station rails at the last continuous waterline above the baseline. Then use the Sweep 2 Rails command to create the surface. The section with the non-continuous line will be created with the Patch command. Surface > Patch, choose the edges of the trapezoid as the curves to patch. You may notice several tears in the surface especially where two surfaces come together. This will be remedied when we join the surfaces into one polysurface. Next is to generate the bow section. Bows are difficult to create a surface on as they have curvature in all three axis. To create these surfaces often takes time and a creative approach should be taken. The method will vary from project to project but in general a construction line will be created in order to coax the program to create the surface that is required. This is the case with this ship hull. Defining the shear of the bow will be the first step.
Using polyline select the tip of bow line and then the top of the 3rd & 4th station lines to create this curve. Then trim the curve off at the 3rd station, deleting the portion aft of the 3rd station. NB: Interpolate points can be used instead of the above two actions. Hide hull surfaces recently created.
Turn on the waterlines layer. Where the 3rd station line meets the 11th water line create a line perpendicular into the negative (-) y direction (make sure Ortho is on.) for a couple of meters.
Extrude the line into a plane forward using Surface > Extrude Curve > Straight.
If the program is extruding the curve in the yz plane and not the xy plane type in D when the dialogue box asks for extrusion distance and hit enter. Select the base point for direction as 0,0,0 and the second direction point as 1,0,0. This will pull the extruded surface into the correct plane. Extend this plane so that is goes through the stem.
Check off the intersection box, Int, on the Osnap command line. Put a point at the intersection of the plane and the stem line (bow line) or split the line (using the plane as the cutting surface) and select the end. Hide or delete the plane. Draw a line from the point just created aft until it crosses the first line that was made. Activate the ellipse command setting the center at the intersection of the two lines and first and second points as the line and station intersection and the point on the stem.
Now split the ellipse with the station and stem lines. Keep the quarter ellipse between the station and stem and delete the ¾ remaining. Split the bow stem line and the 3rd station at the ellipse section. At the intersection of the 9th water line and the 3rd station we will repeat this process but with a variation. When given the opportunity to select the direction of the line extrusion, we will set it at a 45º angle to the xy plane. Do this by entering the base coordinance as before but the second direction point as -1,0,1. Once a point is created at the intersection of the plane and the stem, check the Perp box on the Osnap command line and draw a line from the point back down to the line that the plane was created from; this will be the center of the next ellipse.
Create another quarter ellipse and then break it at the bow stem and it‟s intersection with the ellipse. Also break the 3rd station at both ellipses. Break the top of the 2nd station at the 9 meter waterline. Now we are ready to use these frames to guide the program in surface creation. Experiment with some of the surface commands and see the different surfaces that they create. Ultimately, we will go back to the reliable Sweep 2 Rails. NB: Create all surfaces in the “Hull Surfaces” layer. Create a surface on the top of the bulbous bow using the station and arc curves as the rails and the others as the cross curves. NB: Rail curves are: Curve created and 2nd station curve. Cross curves are: Waterline and Bow line. Try switching the cross curves and the rail curve to see what the result is. Look at the difference between the different rail curve options when creating the section above the bow. First Surface:
Cross Section Curves
Cross Section Curves
Break the stations and waterlines in the appropriate places to create panel between stations 2 and 3. NB: Surface the Bow and Stern sections panel by panel if necessary using which ever “surface” commands are most effective. The patch command can used to put a surface on the trapezoid below it. Break the stem line at the top and bottom of station 2 and then use the patch command to create the forward end of the bulb with station 2 and broken stem line
Break and join the lines of the stern section as needed to utilize the Sweep 2 Rails, Loft, Patch and Surface Corner Points commands Be creative. If possible use the edges of a surface over a curve to create new surfaces. Here is what the author did:
These 7 different surface parts were then joined using the join command into one polysurface. (Bottom blue section utilizes the Surface Corner Points command) Join your hull, stern, and bow surfaces and turn off all other lines. From the dropdown menu select Analyze > Edge tools > Show Edges and select the polysurface hull. If all is been done correctly it will look like this, with the only free edges along the edge of the hull: NB: Select Naked Edges
NEXT STEP: To complete the model the one half of the ship‟s hull that has now been created will be mirrored to create the complete ship hull.
9. Mirror the Hull
AIM: To generate the complete ship hull model in Rhino. METHOD: By using the „Mirror‟ command to transpose the existing half of the hull into a complete ship hull Rhino model. Using the Mirror command in the Transform dropdown, select the hull and using a start of mirror plane of 0,0,0 press enter and with the Ortho on, the end of mirror plane extending down the x axis, mirror the hull. Join two sides of the hull. Check for naked edges. The hull is shown here with the isocurves off. This can be done by going to Edit > Object properties and unchecking the isocurves box.
Next make the transom. Turn off the hull and turn back on the keel line and the station curves. Mirror the transom station and draw a interpolate curve through it and the transom keel line.
Break the curve at the transom keel line and using patch make half the transom surface. Repeat for the other side.
Join the two sides and then join them to the hull. Check for free edges. The completed ship hull should look like this:
Congratulations you have completed the Rhino Ship Hull Tutorial.
This action might not be possible to undo. Are you sure you want to continue?