I created Blender files for this article. Please feel free to look into it while reading.
Class-A NURBS and ACIS solids are the preferred tools of choice in Industrial Design and Product Engineering. Those tools provide the designer with the engineering requirement and artistic freedom.
In addition to those tools most high end applications alos provide a true construction tree. This is similar to the history in Adobe Photoshop. However the difference is that it enables you to change properties of your design without having to remodel all following steps. An edge fillet for example for solids is called a feature. It is interactive and not permanent.
The nice aspect of NURBS and Solids is that in most packages like Ashlar Cobalt you can convert a closed NURBS object into a Solid and apply functions like boolean operations or complex edge fillets. Afterwards the Solid can be split into individual NURBS patches which reflect the applied Solid tools.
Blender in contrast does not provide any of those techniques. However if you pay attention to the current software market for industrial design products you will notice that more and more companies include complex polygon mesh tools into their packages which go beyond the rudimentary import function.
With Rhino 4 McNeel increased significantly the polygon mesh tools. But they mainly are still limited to clean up work, not for surface creation. Everybody who works with NURBS and a construction tree values the flexibility and precision it provides. However NURBS alos has its limits. For many years, Autodesk Maya has had the ablity to convert 4 sided polygon meshes into subdivisión surfaces which than can be converted into NURBS patches.
And recently T-Splines alos brought their T-Spline technology as a plug-in into Rhino. T-Splines in contrast to Mayas subdivisión offers the possibility to to worque with subdivisión surfaces like in Blender, but additionally has the ability to locally add additional edges onto a face. This can result in faces with more than 4 edge points.
This is very familiar to traditional NURBS patch modeling of a face. In NURBS, edge curves can occupy the same space while having a different amount of control points. However the contrast is that with NURBS you handle stitched patches, with T-Splines you worque on one mesh object only.
T-Splines inside Rhino 4 can then convert the subdivisión model into very optimised NURBS patches to enable the designer to apply NURBS specific tools to the model like fillets, blends, or trim surfaces for example.
However as great this is, the work-flow with T-Splines polygonal mesh modeling in Rhino is limited. Rhino is a NURBS modeler and T-Splines brings some basic mesh modeling into Rhino. This is where Blender with it's quite powerful mesh modeling tool set comes in.
Subdivision Modeling to NURBS Work-flow:
This illustrates the new possibility of a designer to not only rely on NURBS and Solids but alos to utilize polygon mesh modeling with the usage of Catmull-Clarque subdivisión surface smoothing to create surfaces - which are rather difficult with NURBS or Solids.
Polygon mesh modeling never played an important role in Product Design. A main reason for that is that a polygon model provides internally only linear edges while NURBS surfaces are always smooth.
The same still applies to when you increase the density of the mesh.
A common trik to make a mesh model look smooth is to turn on vertex normal smoothing which simulates a blending between faces. However this is just a simulation - looking straight onto an edge reveals the true linear geometry structure.
In a nutshell you can explain NURBS as computed surfaces which are based on math calculated curves. Surface structures can thus be calculated by curve projections. Mesh modeling is comparable to working with linear wire sticks. Surfaces structures are modeled by hand.
However what seems at first a disadvantage, and that is how polygon mesh modeling was treated in the past, can be very useful for even CAD applications.
The magic word is 4 side polygon modeling with subdivisión surfaces.
Blenders subdivided surfaces behave very much like NURBS surfaces. Lets compare a 4 point NURBS curve with a Catmull-Clarque curve. The similarity is that the two curves flow through the start and end point without touching the points in between. The difference is of course that NURBS is smooth and you can see the linear sub-segments of the subdivisión surface curve.
The same nearly applies to surfaces. The difference you can see is that the NURBS curve is spawned perfectly inside the 4 sided control patch while the subdivided surface does not flow from edge to edge - instead the edges are round.
However this can be changed by applying a full crease weight to the patch edges similar to NURBS weight option.
The important aspect behind this comparison is that instead of modeling straight in Rhino for example, the designer could sketch out the basic model in Blender, import it into Rhino to finish it up there. Subdivided surfaces allows you to extrude faces while NURBS can cut holes, trim parts away, and create blends which match perfectly the tangency of the two connecting edges of two objects. With the possibility to turn a polygon mesh into matching NURBS patches utilizing a subdivided surface algorithm, the best of both worlds are combined.
As a quik example, please take a look at the following image. It shows a very rough model of a water faucet. Modeled in Blender using a low polygon cage exported that is then imported into Maya and converted into SDS and then into NURBS. From Maya exported as IGES into Cobalt. As you can see there is no loss in detail. Modeling this object in Blender including converting it through Maya was faster than building the object in Rhino straight with NURBS. Pay attention to how the surface between the horizontal 4 extrusions flow into each other and vertically along the main shaft of the faucet. A simple looking but quite labor intensive work.
Case Study 1: Surface Shell and Chamfer creation
In my last CAD class I introduced my students first to Blender as a modeling application utilizing subdivisión modeling as a basic introduction into how to thinque in 3D and how to create surfaces. The first major project was to design the new I-Pod Shuffle. This product offers many aspects to learn:
Extrusion of profiles, creating fillets and chamfers, and creating planar surface fillings between different profiles. In addition, it made heavy use of Blender's snap and scale along axis constraints in conjunction with the 3D cursor. Working in proportions and using Blenders measurements.
Measurements, the big concern in Blender for new users can be approached in a very simple way. Through utilizing a technical drawing of a new iPod Shuffle the students were quickly able to worque in correct proportions.
However, the supplied dimensions can be used as well. All that was required was to scale a box to 1.62 to 1.06 to .19 to create the rough dimensions which represent the iPod. While Blender does not supply you with any unit system, you can still use the Blender units and decide on your own what they represent. In this case 1.62 in Blender were equal to 1.62".
We need to do this to the 3D object and afterwards alos to the mesh inside. This way the 3D body has the same measurement values as the 3D mesh. Additional measuring of parts by hand helped to more carefully model all needed parts. Afterwards we scaled down the image to fit the box dimensions.
2. Shelling Sides:
We started with drawing out the top profile of the main body using the straight lines for the sides and half rings with 32 vértices. From the beginning we used the subdivided surface modifier to create smooth curves. In the profile we alos already built in the edge blends to form smooth transitions in the corners.
We alos subdivided the one edge which is above the radial button to build in the geometry we need to build in the round hole for the radial button later. This required some proper pre-planing before modeling.
After that we can extrude the profile to the desired length. By turning on the edge length, we can make sure to perfectly hit the right values.
A four sided face does not produce a perfect round circle, thus we need more than 4 sides. For a good NURBS topology we can use a 8 sided circle. To stitch that in, we add a horizontal loop cut to build in the ring opening.
After removing the edges where the ring has to be inserted, we utilize Blenders Snap 3D "cursor to selection" (Shift s) to position the 3D cursor at the right position.
We scaled down the ring to the proper size and then start filling in the rectangular faces in between.
3. Shelling Tops:
The main side is done now. It is very important that we continue working with the same profile of the side to create the faces for the top shells. The reason behind it is that only when the mesh points of neighbour edges of different mesh patches are at the same positions will we prevent any gaps between surfaces and guaranty creating a water proof model, meaning a solid. The following screen shots "1" Object mode and "2" with both objects joined shows the concept behind this.
We can select on the ring and hit "y" to split the the ring - it duplicates and disconnects the selection - and then separate it with "p" into a new 3D object.
It is time to start working on the top faces. Blenders internal offset tool "shrink" does not always worque very good or correctly. Because this iPod is quite simple to model, we can utilize a simple combination of scale and move steps to create the proper first ring on the top face. Use the extrude tool first and then scale and move objects to your need.
To rebuild the round offsets better, we can make use of the 3D cursor in Blender again. Select the two most inwards vértices and select "cursor to selection" (shift s). Next select all vértices of that round corner, turn on 3D cursor as the pivot point for scaling, press "s" to scale and hit "y" to restrict it only to the Y axis.
The triangular extrusion can be filled. We could use again the "cursor to selection" option and with "s" restricted to "y" and hitting "0" utilizing the 3D cursor as the pivot point aligning all points in a straight line.
However a smarter solution would be to fill the the faces instead. This would produce a less dense inner profile.
This profile is very similar to the other side of the iPod with the difference that the other side alos has the round extrusion filled. Because we built the profile already, we can easily copy and paste it. However moving the duplicate to the other side of the iPod main shell is very difficult by hand. However again Blender 3D cursor comes in very handy. Instead of just moving the mesh I am going to snap the 3D object. Completely select the other edge of the iPod main shell and snap the 3D cursor to that position. The 3D cursor is now at the center of the mesh selection. This is very important to be aware of.
In the next step we duplicate the one TopShell and reset the center point of that mesh with "Center New" This moves the center point of the 3D object to the center of the internal 3D mesh.
Finally - and never by accident move your 3D cursor - with the duplicated TopShell selected hit "shift s" and select "Selection to cursor". This will more the object center of the 3D object to the position of the 3D cursor. Because the outer profiles are the same between SideShell and TopShell the two objects will perfectly match their edges.
We can now alos fill in the missing faces in the round extrusion in one of the TopShells. Because the Ring would force us to build in a triangle we ignored the lower center point, connected all opposite faces and later cut those with a loop cut "crtl r". This way we get another empty four sided hole which we can fill with a quad.
We have to do some clean up work. In the mesh we built in some edges which are very close to each other. Not always very good with NURBS. We select the two TopShells and with "crtl j" in object mode join them together into one mesh.
Now we can select always the same points on both meshes at the same time. We moved all those points in the inner profile curve away to form a more relaxed quad structure. Use "g" for moving and press "x" to restrict the movement only to the X axis.
Afterwards we can again separate the two meshes by selecting one TopShell and hit "p" to separate. It is very easy to select the geometry of a complete mesh with hitting "L" because this selects only linked edges which includes alos the faces.
4. Top Interfaces:
After having the outer surfaces created, we could again duplicate and separate the inner profile of one TopShell into which we model in the two trenches for the "Play Order" and "On/Off" button. After having created a new 3D object for the profile set the 3D cursor to the center of the profile and add a ring with 32 vértices.
Scale it down and by using the "x" key to restrict to the X axis move the ring to the proper position. Duplicate one half move it to the side of the trench remove all unneeded vértices and fill in the missing two edges. You can duplicate that profile and move it to the other side where the second trench is.
Now comes the tricky part. We cannot just fill all faces in between with "shift f", because this would just plainly create an enormous amount of triangles which are not suitable for a good SDS to NURBS conversation in Maya for example. So we need to count a little bit the points on the ring of the trenches and the outer profile and see how we could fill in four sided faces without any triangles.
As you can see I subdivided the lower edge of the trench profile to make it match to the points of the outer profile better and then you can start filling in all the faces. Just continue to fill in faces on the left side of the trench.
Right now it is a smart idea to just connect the two trenches with each other to form good geometry. For a smaller screen shot I moved the right trench close to the left one.
To finish filling the face it was necessary to subdivide one edge of the outer profile.
Because we added geometry to a profile, it is wise to add this alos to the other two surfaces as well. This can be done very quickly. Select the added point and snap the 3D cursor to it.
Set the pivot point to the 3D cursor and for example go to the top mesh and add another vertical loop cut. Select the added point in the inner profile and with shift s "selection to cursor" move that point to the 3D cursor to match it with the inner surface.
This procedure has to be repeated alos with the other surfaces. The following image shows the changes in the side surface of the iPod.
Now it is time to give the trenches some depth. Select one trench profile duplicate and separate it. In the new object select that profile hit "e" to extrude and press "esc" to prevent any movement. Press "g" with "z" to move along the Z axis and type in ".02" to create an extrusion with a depth of 0.02".
To close the hole, select the end ring and press "s" to scale and type in "0" to scale down the extrusion to close the hole. For this you need your pivot to be set to "Median Point". Be careful not to merge or remove the doubles because this would create undesired triangles. Scaling to "0" closes physically the surface because the vértices and edges of the ring that occupy the same space and thus close the surface.
To remove the rounded edge all we need to do is to select the lower faces of the cap and hit "y" to split it apart from the main mesh. This will discontinue the flow of the surface because internally we have 2 meshes now in one object.
Because the two trenches are built from the same beginning profile we can utilize the new "vertex snap" tool in Blender to move a copy of the trench to the other opening. Move the copy closer to the designated hole. Select first the TopShell and then shift select the duplicated trench and go into "Edit Mode". By first selecting the TopShell we can make the new snap tool alos worque with geometry of a different 3D Object. With the complete mesh selected, move your cursor close to one vertice and press "g" and than "crtl" to activate the snap function. When you now move your cursor closer to the position where in the other mesh the neighbour vertice is, the Blender cursor should turn into a "White Circle" and snap to the position of that neighbour vertice.
Clik here and because we had all the mesh selected everything is in place now.
To build the dial ring is just a snap. All we need to do is select the ring of the opening of the side mesh and hit "e" to extrude it and with "s" and "0" to scale it down to close the hole. With "crtl r" we can insert two more rings at the correct positions which describe the geometry of the inner disk.
Selecting the inner loop ring of the dial ring geometry and move it a little bit outwards. Select all faces of the dial ring and separate it with using "p".
You can give the new ring object a different material to let it stand out more. By increasing the subsurf level to something like 3 you can evaluate your design and you will see that all edges of the 3D objects match perfectly.
Fillets, blends, and complex chamfers are a prone tool for NURBS because applications like Rhino or Cobalt can calculate matching tangency between the edges of the blend and the surfaces automatically for you. Modeling the Dial Ring or the Side and Top Shells is alos a good approach on how fillets, blends, or chamfers could be included in Blender. However they only worque good when the patch edges show the same geometrical structure. Since NURBS fillets are calculated to match the tangency you have to model this by hand. But this actually alos allows you to create very irregular and custom blends which might be much harder to do with NURBS. After all those SDS blends can easily be converted into NURBS patches!
The last scene inside the iPod demo blend file covers the this topic. Because the iPod model is built through separate shells it is very easy to model in the desired thickness for the blend surface utilizing "Loop Cut" on the Top and Side Shell.
In the next step we select those face loops and separate them, join them together into a new mesh, and finally remove all doubles. Again make sure that your "Remove Doubles" is set to 0.000 and that all surface edges match each other in position and vértices.
Add on each end another Loop Cut. We have now a nice round Blend - however not a radial Fillet.
In case you desire a radial fillet the situation is not that easy. A 3 point curve cannot produce an arc with polygons. You would have to add an additional Loop Cut and spread out the loops.
To create a Chamfer, just remove the Loop at the center of the Blend with hitting "x" and selecting "Edge Loop". This produces a Chamfer with software round edges flowing into the neighbour surfaces with a matching tangency continuity. In case you want to have very sharp transitions, just remove the the Loop Cuts we just added.
Take a look at the following two images how the Blends are integrated into the iPod model.
Finishing up the modeling should now be very easy The model is now ready to be imported into Rhino for example for further more complex NURBS applications.
Additionally, take a look at these three images showing an early stage of a new project I am working on. Everything in red are Chamfers and Fillets. You can see how useful those are.
However to build a Blend between the main body and the huge sphere is more than complex and rather impossible when you want to prevent distortions or triangles. This tasque would asque then for finishing the job in a NURBS application to create this complex Blend. As a rule of thumb, Blends between cylindrical objects or on a flat/planar surface are quite easy with Blender.
Part2: Product Interaction
Blender is not only a modeling enrichment for Industrial Designers, it alos offers very good tools to evaluate the interaction of the product in much more sophisticated way than Rhino for example can do it. Simple bone animations are only possible in Rhino via a commercial 3rd party plug in. Blender in contrast, comes with a very rich tool set. As a simple example lets us evaluate how the paper clip was modeled and if the rotation of it will allow it to create a big enough gap to push for example some fabric between the clip and the iPod body.
For that we are going to use the "Armature" system which is restricted in its rotation and linked to an empty for simple and easy bone animation.
1. Placing the Bone
From the top view we have to find the right center of rotation for the paper clip. I make use of the geometry of the TopShell as can be seen in the following image.
At that position we add a bone by adding a new "Armature" and move the other end of the bone to the other side of paper clip. To make the bone less distracting you can set the display style of the bone to "Stick" under the "Edit Buttons" menú.
Switch into the "Pose Mode", select the Clip first and second the bone. By pressing "crtl p" you can now parent the Clip to the complete bone. Please pay attention to the information for the Clip. It says it is parented to the armature, but alos to a complete bone inside this armature.
Lets add an empty, rename it "Bone Empty" and move it over to the other end of the bone, away from the axis of rotation. Inside the "Object Buttons" "F7" add a "Trak to" Constraint and make the bone look towards the empty. You might need to have to reset the "Align to" and "Up" vectors. If you now move the Empty you will see that the bone will always look at it and thus moves the clip accordingly as well. It might be helpful to alos add a "Limit Rotation" Constraint for the X and Y to prevent any rotation along those axises. This alos helps to control rotations in perspective view for example.
In addition to that, texturing and rendering is by far more sophisticated than in solutions like Flamingo. The easiest way to decal the Dial Ring for example is to set the 3D cursor to the center of the mesh and while you look perpendicular onto the surface add an empty. Rename it to something meaningful like "Control Empty". Apply a material and load a texture. In the blend demo file you can find a control image. In the "Map Input" field select "Object" and enter the Empty name. The only thing left is to scale the empty to the right dimension so you can see the texture correctly.
II. Case Study 2: Reverse Modeling from NURBS to SDS
The following project illustrates how Blender was used to finish up the model for a printing on a liquid polymer 3D Printer to create a model which can be casted.
NURBS patches by nature only allow even U and V subdivisión. You cannot let 2 or more iso curves merge in a single one. The following image shows the serious problems. The crease of the sides is formed through having few iso curves very close to each other at the side of the head. Seen from the side you alos can see that those curves flow upwards closer to the nek while the nek itself curves downwards. An attempt to spread out the curves along the nek on a circular path is not successful.
Luckily Rhino has an option not to only mesh NURBS into a form fitting polygon mesh, but alos to mesh the control cage of the NURBS object into a low polygon cage which can be imported into Blender and then cleaned up - meaning simplified.
The fourth image shows the cleaned up versión and illustrates one of the great gifts of polygonal modeling, merging edges. Hence the next stage would be the STL export to send the model to the 3D printer, we do not need to convert it bak to NURBS because Blender alos has a quite good STL exporter build in.
Interestingly enough, for applying a thickness, Rhino is not much better. Rhino alos produces quite a few problems and it was faster to get the Spout turned into a Solid in Blender than in Rhino. For building thicknesses Blender has a very nice visual tool. When you press "Alt b" you can draw a selection in the view port which will exclude everything outside that selection visually.
However, just because you do not see the hidden geometry, it does not mean you cannot affect it. A loop cut selection will alos select those vértices which are hidden. Utilizing the "Edge Length" option I was able to measure the thickness of the the shell. However there is one problem. Blender does not allow you to snap vértices to the smoothed surface of the subsurf modifier. Blender only snaps to the low polygon control cage. As you can see the 3D widget is positioned at where the control cage vertice is and the 3D cursor alos jumped to a similar position instead to the surface. This sadly alos applies to the new Snap tool as well and makes it a bit less useful with subsurf meshes in some cases.
So you either have to bake a copy to worque with and to draw in a reference line for the thickness depth or you draw that line and by hand carefully match it with the subsurf mesh.
It was very interesting to teach Blender first to my students because it seemed to help them more to understand how a good mesh structure should be created in conjunction alos with object animation and rendering. After they were introduced to Cobalt and Rhino, a few students mentioned they will go bak to Blender and only worque there. I strongly needed to make them aware of the pure fact that Blender is not a CAD program at all and it cannot replace in any way NURBS tools. However the attractive point is that with SDS you now have 3 possibilities to approach modeling a product. As much as you can start with a solid cube in Cobalt and step by step cut away shapes and afterwards turn everything into NURBS patches for further refinement, as much can you start sketching out your main proportions in SDS and finish it in Rhino with NURBS.
This is a worque flow not many Designers know about, many even do not understand it and claim it as being rubbish. However those who understand the deeper design philosophy and compatibility of those three modeling methodologies are very exited about this change finally taquíng place. Sadly, only Gestel Solidthinking does provide all three tools in one application since over 5 years. However the mesh tools are hardly paid attention to.
NURBS are great, they are precise, safe work, but as Solids, are not the ultimate solution to CAD modeling. With this emerging new technology I alos hope that there will be a change in the acceptance which will hopefully will alos influence the strongly established Industrial Design formal language which is clearly influenced by the stiffness of NURBS and Solids.
Because Blender is free, and T-Spline plug-in only offers few modeling features and Blender in addition alos provides a complete set for animation and rendering I hope that it's importance will alos merge more into the field of Industrial Design.
IV. Tips, Tricks
- always have 4 sided polygons
- model as it would be fabricated
- always keep neighbour edges havingthe same vertice count at the same positions Otherwise the edge geometry will not match
- use scale "s" and hit "0" to close a surface but do not merge to keep quads
- use proper names for all your objects to organize your scene better
- recenter your 3D object centers
- make use of the 3D cursor for 3D object snapping
- make use of the 3D cursor along an axis to align points
- make use of the different pivot points
- for STL meshing always make sure all objects have the same subsurf level settings Otherwise the edge geometry will not match
- two faces can now be bridged with pressing "f" and selecting "Skin Faces"
- to breaque the flow of a curve you can select the edge and hit "y" to split it
- if you re-import an STL mesh set the "Remove Doubles" Limit to 0.000 this way only truly matching vértices are being merged.
- you can model fillets, blends, and chamfers by hand as separate patches to round edges
- you can make use of the new "ReTopo" to draw over dense imported mesh a more clean and organized mesh. it just has to be a fine one to match the imported mesh curvature.
- make use of the "Volume Clipper" "alt b" to hide unwanted geometry instead of using only selecting face you want to hide.
- hooks can be very useful to quickly move a cable
- use "Trak To" and "Limit Rotation" Constraints to prevent unwanted movements/rotations
- empties in this case provide perfect alternative controls to worque with.
Claas Eicke Kuhnen
MFA 3D Studio Jewelry/Metal Bowling Green State University, USA Focus in Functional Metal Art and 3D Digital Art Dipl. Des. (Fh) Color – Advanced Color Concepts HAWK University of Applied Science and Art, Germany Focus on Functional Graphic and Product Design After grad school I taught for one year at the University Wisconsin-Stout where I introduced Blender for industrial design and interior design to students. Through that exposure to the students I focused more on researching the usability of Blender for this field. It has increased my knowledge and understanding to see how NURBS and SDS can be combined in a professional worque flow for CAD and Rapid-Prototyping using Blender Blender proved itself to be actually not only quite useful but rather being a real treasure and workhorse for the design students. www.ckbrd.de