Jump to content

Recommended Posts

Welcome to the exciting (?) sequel.  Previously, I blundered through using Fusion 360 to go from ship plans to a 3D model.  This time, I'll be blundering through using Blender instead.  Both Fusion 360 and Blender are powerful programs with overlapping features.  However, while Fusion 360's strength is parametric modeling, Blender's is modeling meshes.  I'll be using a mesh approach in this thread.


A note on Blender versions: The current stable release is 2.79.  Blender 2.8 beta was released recently.  There are significant changes in 2.8, including interface changes, which means someone familiar with 2.7x will have to relearn some things for 2.8x.  I wanted to use 2.8, but ran into bugs (since it is still in beta status).  Therefore, I will be using version 2.79 here.


As before, I'll be modeling Ernestina, because the plans are free and of good quality.


Let's start up Blender.  There are lots of interface pieces surrounding the 3D viewport in the center.  The default scene contains three objects: a camera, a light, and a cube.




None of the default objects are needed.  Right click to select an object, then hit Delete to remove it.  (In Blender 2.8 the default selection is by left click rather than right click.  This can be changed in File -> User Preferences -> Input.)


Some other initial setup.  Keypad 5 toggles between orthographic and perspective views.  Perspective is the default on the first startup.  I need the view to be orthographic.


To quickly switch between different orthographic views, the hotkeys are keypad keys 1 (front), 3 (right), and 7 (top).  Keypad key 9 toggles orthographic views: front becomes back, right becomes left, and top becomes bottom.  I have found these keys (1, 3, 7, 9) very convenient to switch through the views.


The other thing I like to have open all the time is the properties panel.  It can be toggled on and off with 'n' or it can be opened by clicking on the little plus sign in the upper right.




Now it's time to bring in the images of the ship plans.  As with my work in Fusion 360, the 3D origin will be at the intersection of the centerline, the baseline, and the forward perpendicular.  The long axis of the ship will be along the X axis.


Calculation time.  I'll be creating the 3D model in feet, but in other circumstances it may be better to use a scaled measure.  (For example, scale measurements down by 1/48 and then model in millimeters or inches.)


I have determined previously that the images are 50 pixels per foot.


The sheer image is 6081 x 1270 pixels, which makes it 121.62 x 25.4 feet.  The forward perpendicular is 5567 pixels (111.34 feet) from the left edge / 514 pixels (10.28 feet) from the right edge.  The baseline is 601 pixels (12.02 feet) from the top edge / 669 pixels (13.38 feet) from the bottom edge.


The body image is 1450 x 1194 pixels, 29 x 23.88 feet.  The centerline is 712 pixels (14.24 feet) from the left edge / 738 pixels (14.76 feet) from the right edge.  The baseline is 468 (9.36) pixels from the top edge / 726 pixels (14.52) from the bottom edge.


The halfbreadth image is 6000 x 1475 pixels, 120 x 29.5 feet.  The forward perpendicular is 5610 pixels (112.2 feet) from the left edge / 390 pixels (7.8 feet) from the right edge.  The centerline is 772 pixels (15.44 feet) from the top edge / 703 pixels (14.06 feet) from the bottom edge.


The values from these calculations will allow the images to be positioned perfectly into the 3D environment without needing to eyeball anything.


In Blender there are two ways to add reference images: background images, and empty objects of type image.  Background images display an image as if it were an infinite distance away, and are only visible in the standard orthogonal views (front, back, top, bottom, left, right).  Background images are removed in Blender 2.8 in favor of empty objects.  An empty object of type image is a rectangular object that can be placed into a scene with an image painted onto it.  The empty object can be moved and rotated like any other object.  This makes them more flexible than background images.  To make empty objects behave like background images, each can optionally be visible only in an orthogonal view.  (There are several empty object types, which are "empty" because they will not be included when a scene is rendered.  I only care about empty objects of the image type.)


To add an object to the scene, click on "Add" at the bottom left or use the hotkey Shift-A.  From the menu choose Empty -> Image.




The object is added in the XY plane.  The properties panel shows its location, rotation, and scale values.  At the right, click on the Data button (the icon looks like three axes), then click Open and select the image.




Now it's time to resize and position the object.  While it's possible to use the mouse to drag handles and manipulate the object, I prefer to type values directly into the properties panel for precise positioning.  First, in X scale I enter 121.62 and 121.62 also for Y scale.  (Not 25.4 for Y.  This is because the object's X and Y acquire the aspect ratio of the image, so both directions need to be scaled the same amount.  This is a little counter-intuitive.)




Rotate 90 degrees in X.  Then it needs to be positioned correctly relative to the 3D origin.  I quickly figure out the values I want are -111.34 in X and -13.38 in Z (using the distances from image edges I found earlier).  I can set the image transparency to .5, hit keypad 1 for orthographic side view, then zoom in and confirm that the axes line up perfectly with the lines on the image.




The other images are added similarly.  I can zoom in, pan around, and confirm that various lines match up.




However, this arrangement isn't practical.  Instead, I'll move the images out so that there will be empty space where the hull will be created.  Also, I'll duplicate the body image and flip it 180 degrees so that the station lines on the opposite side can be used.




And that's a good stopping point for today.  Next time, I'll start to model the actual hull object.


Link to post
Share on other sites

Hi, Stephan.  You clearly have much more experience with Blender than me.  I'm just a beginner, but I'm sharing this log to document what I've learned.  Once I finish my posts, I hope you will let me know if there is a better technique than what I have done.

Link to post
Share on other sites

It's time to start creating the hull.  Briefly, I'll be creating a plane, subdivide it, then pull out vertices to match the station lines.  This will start to form the general hull shape.


First, I'll click the eyeball icons next to the reference images to hide them.  They are in the way right now.  I can hide or unhide them whenever I need them.


Then, Shift-A to create a new object, Mesh -> Plane.  A new plane is created.  It's 2 x 2 units and lies in the XY plane.  




First I'll rotate it 90 degrees in X.  I'll move it -1 in Z to match the width of the keel out from the centerline.  Then, I'll type in new dimensions.  I want the plane to be larger than the length and height of the hull.  It's also convenient for the height of the plane to be a multiple of the distance between waterlines (2 feet, in this case).  120 feet by 20 feet works out well.




Next, I'll hit Tab to switch from Object Mode to Edit Mode.  In Object Mode, an object is manipulated as a whole.  In Edit Mode, the vertices, edges, and faces of an object can be manipulated individually.


I'll hit Control-R to do a loop cut.  The cuts will be horizontal or vertical depending on whether the mouse pointer is near a horizontal or vertical edge.  The mouse wheel can be used to increase and decrease the number of cuts.  I'll do 9 horizontal cuts, giving me 10 sections of 2 feet each.  I'll do another loop cut of 15 vertical cuts, to correspond to the 15 stations.  Because the stations are not evenly spaced, they will need to be adjusted.




The control at the bottom left, just to the right of "Edit Mode", changes the display mode.  The default is solid, but I need to change it to wireframe so that the reference image can be seen through the object.




A few more hotkeys: 'a' toggles between all vertices or none, 'c' brings up the circle selector, a selector of adjustable size which can be dragged across vertices to select them.


I'll hit 'a' once or twice to make sure no vertices are selected.  Then I'll use the circle selector to select a vertical column of vertices.  The selection of vertices will be moved in +X or -X until they line up with a station position.  I clear the selection, choose another column of vertices and repeat.  In the image below, you can see the original, where the sections are evenly spaced, and the result after moving vertices to match the station positions.




One useful feature of Blender is hiding.  The 'h' key hides what is selected.  Shift-H hides everything except the selection.  And Alt-H brings back whatever has been hidden.


Here's my procedure at this point.  I select the vertices in a vertical column (corresponding to a station).  I hide all except those vertices.  I switch to the body view (keypad 3), and going from vertex to vertex, I drag each out (using the green Y handle) to touch the station line on the reference image.




Halfway done...




And complete.




To double check, I can select the four rows of vertices which match the waterlines.




And view them from above (keypad 7).  Looks pretty good.




Now to start cleaning things up.  First, I'll go and delete all the vertices that are far enough away from the hull that it's clear they are not needed.




At this point, I carefully go along the rabbet and sheer line, adjusting the location of the vertices along the edges.  Sometimes, vertices will be merged to create triangular faces.  Below is the result in wireframe and solid views.




At this point, it looks like a hull, but it's still very blocky with lots of straight lines instead of smooth curves.


Next time, I'll use the Subdivision Surface modifier to start smoothing out the hull.


Link to post
Share on other sites

Here are a few views of the state of the mesh.  The general shape is there, but it needs more faces in order to smooth things out.  (The little info panel at the middle top says there are only 91 faces.)




Fortunately, Blender has a great tool for this: the Subdivision Surface modifier.  I select the Modifiers icon on the right, which looks like a wrench, then click "Add Modifier" and choose "Subdivision Surface".  Modifiers don't take effect until they are applied, and there can be a stack of multiple modifiers which take effect in order.


There are two modes: Simple and Catmull-Clark.  Simple mode just divides up the faces without changing anything about the shape of the object.  Catmull-Clark is where the magic happens.  The Catmull-Clark algorithm subdivides the surface, adjusting the new faces to create a smoother surface.  The View setting under Subdivisions determines how many subdivisions are actually performed.


The image below shows before and after a single level of subdivision.




It's looking better.  But look carefully, and there is a problem.  The tip of the bow is rounded off, as is the aft end of the keel.


To fix this, we need to tell Blender not to perform any smoothing at those areas.  I go back into edit mode, and at the bottom, switch from vertex select mode to edge select mode.  I select the edges that I want to remain sharp, and on the properties panel where it says "Mean Crease" I change the value from 0 to 1.  The affected edges are highlighted in a pink-purple color.




Now the Subdivision Surface modifier smooths out the hull, but leaves the sharp areas sharp.  


Just for fun, here are images of one, two, and three levels of Subdivision Surface.




Amazing.  Incredible.  It can't possibly be this easy, right?


How close does this mesh match the lines on the plans?


I'll import the mesh into Fusion 360 (procedure to be explained later) and plot intersection lines with the station and waterlines.  The results are a little disappointing.  The curve of the mesh is close at the bow but deviates from the lines amidships.  The problem is that Subdivision Surface flattens as it smooths.




Here are zero, one, and two levels of Subdivision Surface viewed from the front on the ship.  Black lines are the wireframe of the original mesh.  From this view, it's clear how the smoothing operation is also shrinking the surface.  So much for the miracle of Subdivision Surface.




But what if I manually create a mesh with a higher level of detail, matched to the plan lines?  Then it won't suffer as much from smoothing.  Next time.


Link to post
Share on other sites

I have gone back to an earlier save.  The mesh is still just a flat plane here.  This time, I'm going to apply a Simple (not Catmull-Clark) Subdivision Surface right at the start, which gives me four times as many faces.


As before, there are vertical lines at each station line and horizontal lines at each water line, but also new intermediate lines.




Now I'll work as before, selecting vertical columns of vertices at a station line, hiding all others, and then pulling vertices out from the centerline to lie along the station line.


When all the station lines are complete, I have created the USS Accordian.




How do I model the curves of the intermediate lines?  Well, I can at least find the points where they intersect with the water lines.  I select a water line and view it and the halfbreadth view from above.  Points already on the water line are from the station line work just done.  The points from the intermediate lines can be dragged out to the water line.  This is repeated for the remaining water lines.




Now it looks like this.




Enough points on the intermediate lines are in the correct place to get a good idea of how the line should flow.  I go one by one and adjust points on each intermediate line to create clean curves.  There is some guesswork and eyeballing here, because there are no plan lines to follow.  When the line is done, it's useful to switch from wireframe to solid view and see if the new lines look uniform with the rest of the body.




Here it is a little over halfway done.  Note that I also adjust the bottom edge of the object to the rabbet line as I go.




Two views of the final result.  Note in the aft view that this time I carefully constructed the flat transom area.




Is this good enough?  I'll apply some smoothing, then check the lines in Fusion 360 again.  It's much better now, not 100% perfect, but I think I'm satisfied.  At the worst spots, it's a deviation of 2 or 3 inches on a ship that's over 100 feet long.


Here's a comparison of attempt #1 vs attempt #2.




Next time, I'll bring the mesh into Fusion 360 and compare it to my earlier work.


Link to post
Share on other sites

As I mentioned in my Fusion 360 thread, my goal in all of this is to create a 3D surface that can be sliced at arbitrary locations to generate intersection curves, then use those curves for a plank-on-bulkhead model.  While Blender has some intersection tools, I found the ones in Fusion 360 to be much easier to use.  Then the question is: how to bring the mesh from Blender into Fusion 360?


The first step is to export the mesh.  In Blender, go to File -> Export.  There are several file formats available, but the only one that will work out is Wavefront (.obj).




Switch over to Fusion 360 and go to Insert -> Insert Mesh.




There are a number of import options, including units, and the location and orientation of the mesh.  Fortunately, because I was consistent about the scale and location of the origin in both programs, I don't need to make any changes.




Here is the mesh imported from Blender on the left and the one modeled in Fusion 360 on the right.




I want to get the curves that result from the intersection with a plane.  First, I select a plane.




Then Sketch -> Project / Include -> Intersect.  There is a problem.  I can select the T-Spline body that I created in Fusion 360 but I can't select the imported mesh.  Apparently the intersect operation isn't allowed on a mesh body.


What to do?  I'll have to convert the mesh into a T-Spline body first.


I click on Create -> Create form to enter the Sculpt environment.  I click on the mesh object to select it.  Then Utilities -> Convert and Ok.




I want to preserve the sharp edge around the transom, so I'll select the edges and click Modify -> Crease.  Finally, Finish Form.




The new body is composed of a patchwork of T-spline forms.  I tried to create a hull in Fusion 360 made of only one piece.  Clearly that was the wrong approach.  It might be worthwhile to go back to my Fusion 360 attempt and try to build the hull form in pieces.




Anyway, with the mesh converted to a T-Spline, it's possible to take intersection curves.



By default I have to select piece-by-piece (as in the picture above) to get the full intersection curve, but I get it all at once if I change the selection filter from "Specified entities" to "Bodies".



If anyone knows how to do the same intersection operation in Blender, I'd love to see how.


Link to post
Share on other sites
  • 1 year later...
1 hour ago, clipper randy said:

can this be done o produce accurate shapes and sizes of masts and yards where the information is known  ?

Sure, most anything you can imagine can be designed and 3D printed, but with limitations.  For masts and yards on a model, which can be very thin, 3D printed plastic parts will likely flex more than would be acceptable.  So for that application, wood is superior.  The level of detail possible with a 3D printer is also limited.


That's not to say that 3D printing has no place in ship modeling, as you'll see if you browse through my Sultana build log.

Link to post
Share on other sites

A friend of mine has finished a 3d model of 1851 America entirely done in Fusion 360, which will be routered/cnc'd.

Personally I haven't tried Blender-Fusion 360 combination, but it seems to be real good combo.

Now it's just a question of which scale to make it in.

The hull will be solid. 
And his idea is a model of 2'9" which isn't to bad for putting on display, he offered a 8ft version as well. Kind of big, considering the rigg height.

The cnc/router bed is the size of 4'x4'


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...