Upload
chriskpeterson
View
218
Download
0
Embed Size (px)
Citation preview
8/8/2019 Form_vs_shape_1
1/79
Form vs. Shape 1James Carruthers
RhinocerosNURBS modeling for Windows
Advanced 3D Modeling with3rd Edition
8/8/2019 Form_vs_shape_1
2/79
2005 Hydraulic Design
Rhinoceros is a registered trademark of Robert McNeel & Associates
8/8/2019 Form_vs_shape_1
3/79
Form vs. Shape 1
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Basic Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Logo Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Tunnel Edges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
Tunnel Surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Tunnel Alternate Patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Tunnel Alternate Sweep1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Tunnel Alternate Sweep2 NetworkSrf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Tunnel Alternate Point Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Refning Brim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Finishing Outer Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Shelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8/8/2019 Form_vs_shape_1
4/79
Form vs. Shape 1
GettingGettingGettingGetting StartedStartedStartedStarted
Choice of tolerance can have a big impact on how much trouble youre
going to run into with modeling and with downstream operations if
manufacturing is your goal. The tolerance chosen here, is quite "relaxed,"
to avoid unnecessary hassle.
1111.... Start a NewNewNewNew file
using the Millimeters
template
2222.... Open the
DocumentPropertiesDocumentPropertiesDocumentPropertiesDocumentPropertiesdialog.
3333.... On the Units page,
set the tolerance as
shown.
IntroductionIntroductionIntroductionIntroduction
The main theme of this tutorial is how there are
multiple solutions to any modeling challenge you
might encounter and evaluating the suitability of
different approaches depending on the purpose
of the model. Different techniques might be
used when modeling for manufacturing as
opposed to illustration, and different techniques
are more commonly used when Designing as
opposed to modeling. Theres more than one
way to skin a hat.
This is an advanced tutorial. It is intended to be
easy to follow, but the emphasis here is on what
NURBS and Rhinoceros can do, not necessarily
how to execute every command prompt-by-
prompt. The Evaluation version of Rhino includes
a number of basic tutorials to help you get
started. Commands are referred to by the name
used for typed entry and are HighlightedHighlightedHighlightedHighlighted .
8/8/2019 Form_vs_shape_1
5/79
Form vs. Shape 1
Optimum meshing settings can vary greatly from project to project, even
for different objects in the same project. These settings make it easy to
drastically change the polygon count by adjusting just 2 values, Min edge
length and Max dist, edge to srf, and on this particular object do a good job
of capturing subtle surface contours with a low polygon count, albeit at the
expense of the accuracy of tiny details like fillets[illustrate]. Greater
accuracy would be required for STL output, but reducing the polygon count
in long skinny surfaces (like fillets) is key to improving the speed of your
shaded views.
4444.... Go to the Mesh
page, select Custom,
and try these settings.
You may want to
adjust them based on
yourhorsepower.
5555.... On the Grid page,
set these options.
8/8/2019 Form_vs_shape_1
6/79
Form vs. Shape 1
7777.... In Rhino V3 SR4, on the WebBrowserWebBrowserWebBrowserWebBrowser page you can associate a web
page with a file that you can view in a browser window "on top" of Rhino.
To use this feature, enter the location of the tutorial index, which would be
"your_CD_drive_letter:\index.htm" and check the options as shown. The
next time you open the file, the tutorial will "pop up" in it's own window.
8888.... On the Modeling
Aids page, adjust the
nudging settings as
shown.
9999.... Exit the dialog.
8/8/2019 Form_vs_shape_1
7/79
Form vs. Shape 1
BasicBasicBasicBasic ShapesShapesShapesShapes
2222.... Make another EllipsoidEllipsoidEllipsoidEllipsoid centered at world
coordinates ((((0000,,,,----1111,,,,0000)))). It's axis lengths are 11111111,,,,7777....5555,,,,
and 9999.... This is for the outer edge of the brim.
NomenclatureNomenclatureNomenclatureNomenclature
There are 4 main
features to this hard
hat that will be
referred to during this
tutorial.
1111.... Create an EllipsoidEllipsoidEllipsoidEllipsoid for the main surface with
axis lengths of 7777,,,,8888,,,, and 9999 units, centered about
the world origin.
Shell
Logo Panel
Brim
Tunnel
(0,-1,0)
8/8/2019 Form_vs_shape_1
8/79
Form vs. Shape 1
3333.... In the Right view,
draw a CurveCurveCurveCurve of
Degree 3333 representing
the top of the outer
edge of the brim.
4444.... Make anotherCurveCurveCurveCurve for the bottom
edge of the brim.
It doesn't matter if
you pick the objects
to trim in a
perspective or side
view, when the curves
are flat that is what
determines the
direction of the trim.
5555.... Select the curves,
start TrimTrimTrimTrim, and trim
off the top and
bottom of the larger
ellipsoid.
(-3.5,1.0) (6.0,1.0) (11.0,1.0)
(-12.5,-1.5).
(-4.0,-0.5) (3.7,-0.5)
(11.6,-1.9)
(-12.3,-2.2).
8/8/2019 Form_vs_shape_1
9/79
Form vs. Shape 1
6666.... TrimTrimTrimTrim the main
surface with the lower
curve, just for now.
7777.... HideHideHideHide the brim trim curves.
8888.... ExtrudeExtrudeExtrudeExtrude using the ToPointToPointToPointToPoint Mode, the edge of
the brim to a point 2mm above and 1mm head
of the centre point.
9999.... JoinJoinJoinJoin the extruded
surface to the outer
brim.
(-1,2)
8/8/2019 Form_vs_shape_1
10/79
Form vs. Shape 1
LogoLogoLogoLogo PanelPanelPanelPanel
1111.... Draw a CurveCurveCurveCurve for
the profile of the logo
panel
2222.... ExtrudeCrvExtrudeCrvExtrudeCrvExtrudeCrv the curve in StraightStraightStraightStraight Mode using
the BothSides option by 5555 units.
3333.... DeleteDeleteDeleteDelete the curve just extruded.
4444.... Use ChangeDegreeChangeDegreeChangeDegreeChangeDegree on the logo panel surface
and raise it's Degree to 5555 in both directions.
5555.... Turn on its control points.
(-9.2,2.3)
(-9.6,-0.9)
(-8.2,5.2)
8/8/2019 Form_vs_shape_1
11/79
Form vs. Shape 1
4444.... Nudge these points
back 2222....5555 units.
5555.... Nudge these points
forward 0000....5555 units.
6666.... Finish by nudging
these points back 0000....5555units.
8/8/2019 Form_vs_shape_1
12/79
10
Form vs. Shape 1
7777.... Draw a CurveCurveCurveCurve for the front profile of the logo
panel
8888.... MirrorMirrorMirrorMirror the curve
about the Y axis.
9999.... JoinJoinJoinJoin the curve
halves.
9999.... JoinJoinJoinJoin the curve
halves.
10101010.... TrimTrimTrimTrim off the logo
panel surface.
(3.3,2.0)
(3.4,-1.0)
(2.5,5.0)(0,5.0)
8/8/2019 Form_vs_shape_1
13/79
11
Form vs. Shape 1
Of course in this case it would have been just as
easy to draw a PlanePlanePlanePlane in a side view, but this is
one of those commands you may find handy
sometimes but not think of using.
11111111.... Draw a CutPlaneCutPlaneCutPlaneCutPlane through the logo panel
along the world Y axis.
13131313.... Select half of the
split panel and hit
CopyCopyCopyCopy.
12121212.... SplitSplitSplitSplit the logo
panel with the plane.
8/8/2019 Form_vs_shape_1
14/79
1
Form vs. Shape 1
We did this little loop-d-loop because we're going
to work on a susequent surface in half and want
a single edge to snap to and use as a boundary.
It will be discarded later. I use this often to have
a copy of an object that gets changed and have
an alias to "!_CopyToClipboard _Undo _Paste."
The underscores let this alias work in non-
english versions of Rhino.
15151515.... PastePastePastePaste the half
panel surface.
14141414.... UndoUndoUndoUndo the splitting
operation.
16161616.... HideHideHideHide the full panel surface for now.
17171717.... DeleteDeleteDeleteDelete the CutPlane surface and the curve
used to trim the panel.
8/8/2019 Form_vs_shape_1
15/79
1
Form vs. Shape 1
TunnelTunnelTunnelTunnel EdgesEdgesEdgesEdges
1111.... In the Top view, draw a CurveCurveCurveCurve of Degree 3333
that will describe the edge where the 'tunnel'
meets the main surface.
2222.... ProjectProjectProjectProject this curve onto the main surface and
check. Its fairly important that it match whats
here closely.
(2.0,0.0)
(2.0,-1.0)
(2.0,10.0)
(2.0,-5.2)
(3.8,-8.0)
8/8/2019 Form_vs_shape_1
16/79
1
Form vs. Shape 1
3333.... HideHideHideHide the projected curve. We will refer to this
later as the 'tunnel edge curve.'
4444.... HideHideHideHide the brim polysurface.
5555.... Draw another
CurveCurveCurveCurve for the side
profile of the tunnel.
6666.... ExtrudeExtrudeExtrudeExtrude in StraightStraightStraightStraight Mode the side profile
curve a couple of units.
Constructing the tunnel surface tangent to this
edge will ensure that the mirrored halves of the
tunnel will be G2(curvature continuous)to each
other.
End Snap
(-6.8,6.6)
(-3.7, 8.5)(1.55,8.83)
(6.4,7.0)
(9.16,3.6)
(9.2,0.4)
8/8/2019 Form_vs_shape_1
17/79
1
Form vs. Shape 1
7777.... Use ShowEdgesShowEdgesShowEdgesShowEdges with the All Edges option on
the main surface to find the seam of the original
ellipsoid. The Thick lines for edges and seams
option under the AdvancedDisplayAdvancedDisplayAdvancedDisplayAdvancedDisplay settings, used
for the screen shots in this tutorial, also shows
surface seams.Compare the position of the seam to the top
profile curve. If it looks like this, do step 8.
This was not a critical step in this situation, but
it can be a good idea to avoid the surprise down
the road of finding what you thought was one
edge is actually split across a surface seam.
8888.... If needed, MirrorMirrorMirrorMirror the main surface about the
world Y axis with the Copy option set to NoNoNoNo.
9999.... In the Top or Perspective view, TrimTrimTrimTrim the main
surface with the top profile curve.
8/8/2019 Form_vs_shape_1
18/79
1
Form vs. Shape 1
13131313.... Draw a small CurveCurveCurveCurve, snapping between the
corner of the logo panel and the main surface.
Use the PlanarPlanarPlanarPlanar Osnap to place the middle point
approximately with the mouse.
10101010.... In the Side view,
draw a LineLineLineLine snapping
to the EndEndEndEnd of the side
profile curve and the
corner of the logo
panel.
11111111.... TrimTrimTrimTrim the bottom off the main surface with
the line in a side view.
12121212.... DeleteDeleteDeleteDelete the line.
End Snap
End Snap
End Snap
(3.54,-8.07)
End Snap
8/8/2019 Form_vs_shape_1
19/79
1
Form vs. Shape 1
14141414.... Make another CurveCurveCurveCurve between the corners ofthe side profile surface and the main surface. To
place the middle point, hold SHIFT to use the
OrthoOrthoOrthoOrtho Osnap then you can place it by eye or use
the Grid Snap to place it close and nudge it.
(1.25,Y aligned with
first point)
End Snap
End Snap
8/8/2019 Form_vs_shape_1
20/79
1
Form vs. Shape 1
You can probably visualize the sort of surface we
want to have within the area enclosed by these
edges and curves.
What makes this tricky is that it has 5 "sides"
and of course one of the basic properties and of
NURBS is that they are 4-sided. This means oneof two things: the surface will have to be
trimmed or it will have to be created with more
than one surface.
There are a number of ways to tackle a problem
like this, depending on the purpose of the model
and your design intent, which boils down to
what features--edges, dimensions, curves--are
'critical,' what's most precisely specified.
In this contrived example, weve decided that the
edges and curves around this surface are
critical, so we have to build a surface or
surfaces that fills in this hole, matching those
edges very accurately.
Well first use the technique I finally chose to
follow through given the hypothetical
requirements, then present a number of
alternate approaches that might come to
mind(not necessarily that would work, but which
you might think of trying)in this kind of situation.
Surface modeling seems to have its own version
of the Uncertainty Principle from quantum
mechanics. The more you try to nail down the
edges of a particular surface, the harder it is to
directly control the actual section of the surface,
and vice versa. And in general the more curves
you create to feed into the surface creation
commands, the better the chance youre going
to wind up with a mess.
15151515.... HideHideHideHide the top profile curve.
8/8/2019 Form_vs_shape_1
21/79
1
Form vs. Shape 1
TunnelTunnelTunnelTunnel SurfaceSurfaceSurfaceSurface
1111.... In a side view,
draw a LineLineLineLine.
2222.... Use SplitEdgeSplitEdgeSplitEdgeSplitEdge the
edge of the side
profile surface at the
intersection of the
line using the IntIntIntInt
osnap.
3333.... Run SplitEdgeSplitEdgeSplitEdgeSplitEdge
again and split the
edge of the shell
where it intersects the
line in the Right view.
4444.... DeleteDeleteDeleteDelete the line
drawin in step 1.
(-8,5,7.5)
(-5.0,3.0)
Int snap
Int snap
8/8/2019 Form_vs_shape_1
22/79
0
Form vs. Shape 1
The locations to split the edges were determined
pretty much by trial-and-error.
5555.... Build a surface with SweepSweepSweepSweep2222, matching
Tangency to the side profile surface. Use the DoDoDoDo
NotNotNotNot SimplifySimplifySimplifySimplify cross-section curve option.
6666.... Use SplitEdgeSplitEdgeSplitEdgeSplitEdge on
the edge of the label
face, splitting it about
where shown by eye.
Rail
Surface Edge
Match Tangency
Rail
Surface
Edge
Section
Curve
8/8/2019 Form_vs_shape_1
23/79
1
Form vs. Shape 1
7777.... SweepSweepSweepSweep2222 again,
matching Curvature to
the end of the
previous sweep.
8888.... Create a NetworkSrfNetworkSrfNetworkSrfNetworkSrf, matching Curvature to
the end of the last sweep. Make sure to only
match Position to the other edges.
RailSurface Edge
Match Curvature
Rail
Surface
Edge
Surface
Edge
Surface Edge
Curvature Match
Curve
Surface
Edge
SectionCurve
8/8/2019 Form_vs_shape_1
24/79
Form vs. Shape 1
The transitions between the surfaces look good--it may not appear perfectfrom every angle in the analysis modes, but it's sufficient for most real-
world purposes and certainly within the relatively 'relaxed' tolerance
settings.
There obviously is a problem within the Network surface. Without any
interior sections to tell NetworkSrfNetworkSrfNetworkSrfNetworkSrf what to do and only one edge
curvature constraint, thats what happens, plus Network surfaces tend to
sag between the sections.
It would certainly be possible to repair with with point-editing, but doing so
while maintaining continuity can be tedious.
9999.... Inspect what your
have built using ZebraZebraZebraZebra
and/or EmapEmapEmapEmap.
When I built this using the "Work In Progress"
version of Rhinoceros V4, the Network surfaceshown here actually turned out much better and
would require just minor point-editing.
8/8/2019 Form_vs_shape_1
25/79
Form vs. Shape 1
13131313.... DeleteDeleteDeleteDelete the surface.
10101010.... UndoUndoUndoUndo or DeleteDeleteDeleteDelete the Network surface.
11111111.... Replace it with a SweepSweepSweepSweep2222 surface.
If we were to switch around the rails and the
sections, as at right, the result is cleaner, but
not what we are looking for because it does not
have continuity to the sweep.
12121212.... With ExtractIsocurveExtractIsocurveExtractIsocurveExtractIsocurve , get 2 curves from the
surface, one near the middle, one near the top.
Make sure the curve at the top is relatively
straight and smooth, showing no signs of the
ripple further down, we dont want to have to
adjust it.
Rail
Surface Edge
Match Curvature
Rail
Surface
Edge
Rail
Surface
Edge
Rail
Curve
8/8/2019 Form_vs_shape_1
26/79
Form vs. Shape 1
15151515.... MoveMoveMoveMove the end point of the curve along the
edge of the shell using the NearNearNearNear snap until it's
approximately in line with the other wo points..
14141414.... DeleteDeleteDeleteDelete control
points from the
middle curve until
there are only 3.
16161616.... Tweak the middle point in the top view.
8/8/2019 Form_vs_shape_1
27/79
Form vs. Shape 1
17171717.... Create a new NetworkSrfNetworkSrfNetworkSrfNetworkSrf including the 2
new interior section curves. Use the default
tolerances.
18181818.... HideHideHideHide the side profile surface.
19191919.... DeleteDeleteDeleteDelete the interior section curves.
The result should look something like this, much
improved.
Surface
Edge
Surface Edge
Curvature Match
Curve
Surface
Edge
8/8/2019 Form_vs_shape_1
28/79
Form vs. Shape 1
22222222.... MirrorMirrorMirrorMirror the tunnel and shell surface along the
world Y axis.
23232323.... JoinJoinJoinJoin everything up.
24242424.... SaveSaveSaveSave your work up to now.
20202020.... HideHideHideHide the half logo panel surface.
21212121.... Use ShowSelectedShowSelectedShowSelectedShowSelected to retrieve the full logo
panel surface.
8/8/2019 Form_vs_shape_1
29/79
Form vs. Shape 1
TunnelTunnelTunnelTunnel AlternateAlternateAlternateAlternate PatchPatchPatchPatch
1111.... SaveAsSaveAsSaveAsSaveAs under a new filename for working on
these variations.
2222.... ExtractSrfExtractSrfExtractSrfExtractSrf these surfaces.
3333.... DeleteDeleteDeleteDelete them.
4444.... HideHideHideHide the logo panel surface.
5555.... With ShowSelectedShowSelectedShowSelectedShowSelected , retrieve the half logo
panel and the side profile surface.
6666.... Use MergeEdgeMergeEdgeMergeEdgeMergeEdge to
repair the split in the
edge of the logo
panel.
8/8/2019 Form_vs_shape_1
30/79
Form vs. Shape 1
This was done because we want the Patch
surface to be fitted Tangent to only two of the
edges.
7777.... JoinJoinJoinJoin, starting with the bottom curve and then
connecting the adjacent surface edges.
8888.... Fill in the hole with
a PatchPatchPatchPatch . The default
checkbox settings
with 15151515 or 20202020 Surface
U and V spans should
be fine.
8/8/2019 Form_vs_shape_1
31/79
Form vs. Shape 1
Patch is not what I call a 'front-line' surface
creation tool. Outside the purposes for which its
intended(and you can see similar geometry used
in other applications,) such as filling in corners
where several fillets different sizes come
together(a situation for which a mathematically
"exact" NURBS solution does not exist)and
Now at first glance
this seems to look
fine, so what is the
problem?
A Patch can be used in a situation like this to
get a surface very quickly, but the result is
generally not feasible to tweak with point-editing
and not of superlative surface quality-a grid
pattern may become apparent in the surface
analysis views--or accuracy, as you can see with
the edge of a patch surface at right. Very dense
settings that slow down your whole model may
be necessary to get a patch within tolerance to
join.
8/8/2019 Form_vs_shape_1
32/79
0
Form vs. Shape 1
TunnelTunnelTunnelTunnel AlternateAlternateAlternateAlternate SweepSweepSweepSweep1111
1111.... DeleteDeleteDeleteDelete the Patch
surface.
2222.... ExplodeExplodeExplodeExplode the curve
built for making the
Patch.
3333.... DeleteDeleteDeleteDelete the curves
that were created
from surface edges.
4444.... HideHideHideHide the remainingcurve.
5555.... ExplodeExplodeExplodeExplode the shell and tunnel polysurface.
6666.... DeleteDeleteDeleteDelete the tunnel surface.
7777.... Duplicate the shell surface using CopyCopyCopyCopy with
the InPlaceInPlaceInPlaceInPlace option.
8888.... HideHideHideHide one of the shell surfaces.9999.... UntrimUntrimUntrimUntrim the other shell surface with
KeepTrimObjects set to NoNoNoNo.
8/8/2019 Form_vs_shape_1
33/79
1
Form vs. Shape 1
10101010.... Using
ShowSelectedShowSelectedShowSelectedShowSelected ,
retrieve the curve
used to trim off the
main surface and the
tunnel edge curve.
11111111.... TrimTrimTrimTrim off the
ellipsoid.
12121212.... DeleteDeleteDeleteDelete the trim
curve.
13131313.... Remove the split
in the edge of the
side profile surface
using MergeEdgeMergeEdgeMergeEdgeMergeEdge or
UntrimUntrimUntrimUntrim .
8/8/2019 Form_vs_shape_1
34/79
Form vs. Shape 1
This is might be the first solution that wouldcome to mind when considering this problem.
While this may look like a good start, its not
really very promising considering what we want
to do. If we compare the tunnel edge curve to
the intersection of the sweep with the shell(curve
made with IntersectIntersectIntersectIntersect,) it's not really close.
It would be possible to add more section curves
to the sweep and/or point-edit to get closer but
it would take a lot of work.
14141414.... Build a Sweep1 along the side profile
surface. It doesn't affect the surface much, but
use the AlignAlignAlignAlign withwithwithwith SurfaceSurfaceSurfaceSurface option.
The plan to sidestep the 5-sided surface issue in
this case would be to edit the surface--I justnudged a couple points here--so that it gets
trimmed off by the the brim. That's great, but
again it does not lend itself to precisely aligning
with our 'critical' features.
Rail
Surface Edge
Section
Surface
Edge
Section
Curve
8/8/2019 Form_vs_shape_1
35/79
Form vs. Shape 1
TunnelTunnelTunnelTunnel AlternateAlternateAlternateAlternate SweepSweepSweepSweep2222 NetworkSrfNetworkSrfNetworkSrfNetworkSrf
1111.... DeleteDeleteDeleteDelete the Sweep1
surface.
2222.... HideHideHideHide the brim
surface and the
tunnel edge curve.
3333.... Retrieve the half
brim surface with
ShowSelectedShowSelectedShowSelectedShowSelected .
8/8/2019 Form_vs_shape_1
36/79
Form vs. Shape 1
4444.... Use DupEdgeDupEdgeDupEdgeDupEdge to
extract this curve
from the brim
surface.
4444.... Create a BlendBlendBlendBlend curve. Using CurvatureCurvatureCurvatureCurvature
Continuity, blend from the extracted curve then
(you can do this in either order) use the
Perpendicular option to blend to the edge of the
logo panel approximately where shown.
(2.78,209)
8/8/2019 Form_vs_shape_1
37/79
Form vs. Shape 1
5555.... Turn on the control points for the Blend curve
and DeleteDeleteDeleteDelete two points.
There is an option in the Blend command to use
Position continuity, which accomplishes the
same thing as deleting these points, but this is
just as easy.
6666.... JoinJoinJoinJoin the Blend
curve to the extracted
edge curve.
8/8/2019 Form_vs_shape_1
38/79
Form vs. Shape 1
7777.... Split the edge of
the logo panel with
SplitEdgeSplitEdgeSplitEdgeSplitEdge snapping to
the EndEndEndEnd of the curve.
8888.... Build a SweepSweepSweepSweep2222surface.
9999.... JoinJoinJoinJoin the shell and
Sweep2 surface.
End Snap
RailSurface Edge
Match Tangency
Rail
Curve
Section
Curve
Section
Surface
Edge
8/8/2019 Form_vs_shape_1
39/79
Form vs. Shape 1
10101010.... Retrieve this
curve with
ShowSelectedShowSelectedShowSelectedShowSelected .
7777.... Fil in the hole with
a NetworkSrfNetworkSrfNetworkSrfNetworkSrf,
matching Curvature to
the end of the
Sweep2 surface. Only
match Position to the
other edges.
Surface
Edge
Surface Edge
Curvature Match
Curve
Surface
Edge
8/8/2019 Form_vs_shape_1
40/79
Form vs. Shape 1
While it may be possible to salvage this, there
are a couple major issues.
With how a 2-rail sweep works, even though the
blend curve that's part of the one rail was
matched wihth G2 continuity, it's not quite
enough to avoid the creation of a visible change
in the surface. Now it should be possible to
tweak the curve and/or the surface to remove
that, and to help the 'fold' in the network
surface, but it would be hard to point-edit
without pulling the surface away from the brim
edge, and the level of fine-tuning this would
involve should only be neccessary when working
on something like a car body.
The biggest problem is that the geometry at this
corner of the network surface shown here is
what we technically refer to as nasty.' Stretching
the corner of a surface infinitely thin like this
can cause problems with fillets and booleans, it
will be challenging to make the seam with
adjacent surfaces invisible, and the slightest out-
of-tolerance curve or edge will prevent it from
joining to it's neigbors cleanly. Use with caution.
8/8/2019 Form_vs_shape_1
41/79
Form vs. Shape 1
In my original project, this approach required
coming up with many section curves for network
surfaces and many iterations, and in the end I
didnt get a result that was better than close
enough, and here were not close at all. The
lesson from both these examples would seem to
be that building with fewer surfaces is not
necessarily simpler.
Here's an example of a similar attempt to make
this using two surfaces we will simply look at.
This was the kind of surface topology I actually
used in the project that inspired this, and what I
thought I was going to wind up doing in this
tutorial.Much like the previous example, SplitEdgeSplitEdgeSplitEdgeSplitEdge was
used on the tunnel edge and a SweepSweepSweepSweep2222 was
made. The remaining area was filled with a
NetworkSrfNetworkSrfNetworkSrfNetworkSrf, after making up one or two section
curves.
8/8/2019 Form_vs_shape_1
42/79
0
Form vs. Shape 1
TunnelTunnelTunnelTunnel AlernateAlernateAlernateAlernate PointPointPointPoint EditingEditingEditingEditing
1111.... DeleteDeleteDeleteDelete the surface
created in the last
section, the brim
surface, everything
but these two
surfaces and one
curve.
2222.... ShowSelectedShowSelectedShowSelectedShowSelected the
full shell surface and
the tunnel edge curve.
3333.... With MergeEdgeMergeEdgeMergeEdgeMergeEdge
remove the split in the
edge of the half panel
surface.
8/8/2019 Form_vs_shape_1
43/79
1
Form vs. Shape 1
4444.... SweepSweepSweepSweep1111 the edge of the side profile surface
along the edge of the logo panel. Use the default
settings.
This surface is much more promising than our
other attempts from a point-pushing potential
point of view. There are not too many points and
they are arranged in an orderly manner. The
back end folds over on itself, but what we want
in that area would be excessively painstaking to
achieve by point-pushing alone in any case.
Rail Surface
Edge
Section SurfaceEdge
8/8/2019 Form_vs_shape_1
44/79
Form vs. Shape 1
6666.... Use SplitSplitSplitSplit with the Isocurve option, Shrink set to YesYesYesYes, to cut the sweep,
snapping to the previous point.
7777.... DeleteDeleteDeleteDelete the point.
5555.... Place a PointPointPointPoint in the
Right view.
This concept does not
actually require
accurately splitting
the surface , the
reference point is just
to help keep yourmodel identical to
this.
(-1.0,9.0)
Point Snap
8/8/2019 Form_vs_shape_1
45/79
Form vs. Shape 1
This macthing is necessary because Sweep1
does not try make the surface tangent to input
section edges.
8888.... DeleteDeleteDeleteDelete the back half of the sweep.
9999.... MatchSrfMatchSrfMatchSrfMatchSrf the swept surface to the side profile
surface. Specify TangencyTangencyTangencyTangency Continuity and Match
Edges by closest points.
10101010.... Turn on the control points of the frontsurface and begin editing it.
8/8/2019 Form_vs_shape_1
46/79
Form vs. Shape 1
There are no point-by-point instructions for
editing this surface primarily because they
would be rather tedious and not really help you
get the 'feel' of freeform editing. Here are
number of shots showing the progression over a
couple minutes of editing.
8/8/2019 Form_vs_shape_1
47/79
Form vs. Shape 1
8/8/2019 Form_vs_shape_1
48/79
Form vs. Shape 1
In a short time I was able to produce this
surface which has exactly the kind of form
desired and intersects the shell with an accuracy
to the reference curve of about 0.04 units. By
adding more knots to the surface it would be
quite possible to get it within our absolutetolerance settings of 0.01 units, but not
necessary for this exercise.
11111111.... Use IntersectIntersectIntersectIntersect on
the tunnel surface
and brim to obtain a
curve.
12121212.... Run CrvDeviationCrvDeviationCrvDeviationCrvDeviation on the intersection curve
and the tunnel edge curve to check the accuracy
of your editing. It will list and place points
highlighting the maximum and minimum
deviation. See if you can get within 0.05 units,
particularly near the top.
8/8/2019 Form_vs_shape_1
49/79
Form vs. Shape 1
Now this is not refined enough for machining
yet, but it looks pretty good. If the tolerance
requirements for the edge of the tunnel were
not too tight, this would be my preferred
approach to making this and a likely scenario
for when "designing" this object as opposed to
strictly producing a model.
Its generally easier and quicker to generate a
form by starting with some simple surfaces,
editing them until you like how they intersect,
and then trimming them up, than it is starting
with some edges and building surfaces to fill
them in. Now as the design gets more refined
and things get "nailed down," it might very well
wind up being rebuilt much like our original
version.
13131313.... To quickly obtain
a surface for the back
half of the tunnel
build a NetworkSrfNetworkSrfNetworkSrfNetworkSrf.
Curve
Surface Edge
Match Tangency
Curve
Surface Edge
Match Tangency
8/8/2019 Form_vs_shape_1
50/79
Form vs. Shape 1
RefiningRefiningRefiningRefining BrimBrimBrimBrim
1111.... OpenOpenOpenOpen the file you saved before working on thetunnel surface variations.
3333.... Draw a CurveCurveCurveCurve for the front section of the brim.
2222.... ShowSelectedShowSelectedShowSelectedShowSelected the brim polysurface.
(-12.24,-2.0)
(-10.34,-0.69)
(-11.61,-1.23)
(-11.77,-1.32)
(-12.06,-2.0)
(-11.85,-1.75)
(-8.45,-0.01)
(-12.24,-2.11) (-12.05,-2.14)
(-11.85,-2.0)
(-11.85,-2.14)
(-11.85,-1.44)
8/8/2019 Form_vs_shape_1
51/79
Form vs. Shape 1
4444.... MirrorMirrorMirrorMirror the curve
about the centre of
the base brim.
5555.... MoveMoveMoveMove the mirrored
curve up by 0000....53535353
units, or to the point
shown.
6666.... Point-edit the rear
section curve, leaving
the points near the
'lip' alone.
End Snap
(10.24,-1.58)
End point
(9.74,1.03)
(9.90,0.96)
(8.38,1.19)
(5.99,1.45)
(9.98,0.82)
(9.98,-0.39)
8/8/2019 Form_vs_shape_1
52/79
0
Form vs. Shape 1
7777.... Use DupEdgeDupEdgeDupEdgeDupEdge to make copies of the edges of
the base brim.
8888.... DeleteDeleteDeleteDelete the base brim. These steps were not
necessary, it's only to reduce clutter.
10101010.... Use the curves taken from the base brim as
the rails to build a SweepSweepSweepSweep2222 surface. Use the
Maintain Height option.
The Maintain Height option keeps the shape of
the lip from being scaled as the the distance
between the rail curves varies, as seen here. The
surface on the left was built with Maintain
Height off.
RailCurves
Section
Curve
Section
Curve
8/8/2019 Form_vs_shape_1
53/79
1
Form vs. Shape 1
While not an issue here, these small differencescan sometimes cause frustration with
subsequent operations, a boolean or fillet will
work on one side but not the other, which is why
you should generally build symmetric objects in
half and MirrorMirrorMirrorMirror them.
You will notice from the isocurves that the
surface is not totally symmetric. With any
operation where a curve or surface is "fitted,"
Rhino does not "know" that something is
supposed to be symmetric, it just iterates until
the result is within the tolerance settings. Therewere two such operations involved in this: the
sweep itself and the trimming of the base brim
from which the rail curves were extracted.
This has been built in an iterative manner suited
to working without construction history: quickly
build a starting shape, possibly use it to build
the shape a different way, then discard it.
8/8/2019 Form_vs_shape_1
54/79
Form vs. Shape 1
FinishingFinishingFinishingFinishing OuterOuterOuterOuter ShellShellShellShell
This edge would not fillet successfully with
FilletEdge. Where the fillet crosses the point
where the 3 surfaces meet, thats a case the
filleter doesnt know how to handle, so some
clean up would be required, although it's not a
huge problem.
1111.... ShowShowShowShow the main
shell polysurface.
2222.... HideHideHideHide the brim
objects.
3333.... Hide the offsetsurfaces.
4444.... DupEdgeDupEdgeDupEdgeDupEdge 2 edges.
5555.... JoinJoinJoinJoin them together.
8/8/2019 Form_vs_shape_1
55/79
Form vs. Shape 1
6666.... Create a PipePipePipePipe with
a Radius of 0000....3333
around the curve and
Cap set to NoNoNoNo.
7777.... The pipe shouldfully intersect the
shell already, but to
make sure use
ExtendSrfExtendSrfExtendSrfExtendSrf with the
Smooth option on
each end. Use a small
factor like 0000....2222.
8888.... MirrorMirrorMirrorMirror the pipe
about the origin.
8/8/2019 Form_vs_shape_1
56/79
Form vs. Shape 1
9999.... SplitSplitSplitSplit the shell with
the pipes.
10101010.... DeleteDeleteDeleteDelete the pipes,
the curve used to
build make them, and
the thin surfaces.
11111111.... Fill in the gaps with BlendSrfBlendSrfBlendSrfBlendSrf. Use CurvatureCurvatureCurvatureCurvature
Continuity and the default Blend Bulge settings.
You could build two blends or make one and
MirrorMirrorMirrorMirror it.
8/8/2019 Form_vs_shape_1
57/79
Form vs. Shape 1
12121212.... JoinJoinJoinJoin up the shell surfaces.
13131313.... ShowSelectedShowSelectedShowSelectedShowSelected the upper brim surface.
14141414.... Check that the surface normals on both
objects are pointed outwards. There are two
ways to do this. With DirDirDirDir, check the direction of
the arrows and use the Flip option as needed. Ifyou have to deal with a number of objects you
can use the AdvancedDisplayAdvancedDisplayAdvancedDisplayAdvancedDisplay settings to show
the backfaces (the "inside" direction) of all
objects in a separate color while working and
use the FlipFlipFlipFlip command as needed.
15151515.... BooleanUnionBooleanUnionBooleanUnionBooleanUnion the
brim and shell
objects.
8/8/2019 Form_vs_shape_1
58/79
Form vs. Shape 1
Booleans work on open surfaces and
polysurfaces with the normal directions
determining which side is out. If the normals
are pointing the wrong way, you will get an
opposite result to what you expect.
16161616.... In one FilletEdgeFilletEdgeFilletEdgeFilletEdge operation, put a 0000....125125125125
fillet between the brim and shell and around the
logo panel.
8/8/2019 Form_vs_shape_1
59/79
Form vs. Shape 1
ShellingShellingShellingShelling
Where the curvature of a surface is smaller than the thickness of the offset
it will fold over on itself, so some repairs will be required here. Doing small
fillets after shelling can help, but then repair is still needed because Rhino
V3 does not trim or extend offset surfaces to make a closed 'shell.'
1111.... OffsetSrfOffsetSrfOffsetSrfOffsetSrf the outer
polysurface by ----0000....2222
units, or ++++0000....2222 units,
depending on which
way the normals on
the surface are
pointing. Offset it to
the 'inside.' Use the
provided default
Tolerance.
We will first tackle
where the offset
surface has folded
over onto itself
around the lip.
8/8/2019 Form_vs_shape_1
60/79
Form vs. Shape 1
2222.... Use SplitSplitSplitSplit with the Isocurve option, and Shrink
set to YesYesYes Yes, to slice the lower surface below the
fold.
3333.... DeleteDeleteDeleteDelete the thin
piece.
8/8/2019 Form_vs_shape_1
61/79
Form vs. Shape 1
4444.... From the Top or Perspective view, run
ExtrudeCrvExtrudeCrvExtrudeCrvExtrudeCrv and extrude the edge of the upper
brim surface. Use the TaperedTaperedTaperedTapered Mode and specify
a DraftAngle of 4444 DegreesDegreesDegreesDegrees.
5555.... BlendSrfBlendSrfBlendSrfBlendSrf between
the lower brim and
the extruded surface.
Specify continuity as
shown and use the
default Blend Bulge
settings.
6666.... DeleteDeleteDeleteDelete the
extruded surface.
Tangency
Continuity
Curvature Continuity
8/8/2019 Form_vs_shape_1
62/79
0
Form vs. Shape 1
At the front, the surface has not quite folded
over, but there is a quite visible 'kink.' The
objective will be to remove the visible defect
without affecting the overall shape, not to
achieve any particular minimum radius. Now
this probably would have been best dealt with by
making the top and sides of the brim separate
objects, but these problems can't always beforeseen.
7777.... HideHideHideHide the outer
shell.
The next issue is further up the brim surface,
where it has again folded over on itself,
particularly at the back.
8/8/2019 Form_vs_shape_1
63/79
1
Form vs. Shape 1
8888.... Place 2 PointsPointsPointsPoints to snap to in the next split
operation. To make sure they are placed
correctly type them using world coordinates, so
enter wwww0000,,,, ----11111111....65656565,,,,----1111....53535353 and wwww6666....768768768768,,,,2222....5555,,,,0000....64646464.
9999.... Use SplitSplitSplitSplit with the Isocurve option, and Shrink
set to YesYesYes Yes, to slice the brim surface in two
places. Use the PointPointPointPoint Osnap and snap to the
points drawn previously.
(w0,-11.65,-1.53)
(w6.768,2.5,0.64)
Point snap
Point snap
8/8/2019 Form_vs_shape_1
64/79
Form vs. Shape 1
10101010.... DeleteDeleteDeleteDelete the points.
11111111.... In the Top view draw a LineLineLineLine along the world
X axis and another along the Y axis. Length is
not important, just that they cross the brim.
12121212.... ProjectProjectProjectProject thoselines onto the narrow
strip split out of the
brim.
13131313.... DeleteDeleteDeleteDelete the lines.
8/8/2019 Form_vs_shape_1
65/79
Form vs. Shape 1
14141414.... Point-edit the curves made by projecting to remove the self-
intersection. Your curves may not look exactly like these, so take these
pictures as general guidelines. Below is the rear curve.
15151515.... Point-edit the side curves. Do both separately or modify one and Mirror
it, though for our purposes it's not imperative that they be identical.
8/8/2019 Form_vs_shape_1
66/79
Form vs. Shape 1
16161616.... In this situation the tolerance in the ProjectProjectProjectProject actually eliminated the
kink in the front curve, here I just adjusted a point to make it fit the
original edge closer.
17171717.... DeleteDeleteDeleteDelete the
surface split from the
brim.
8/8/2019 Form_vs_shape_1
67/79
Form vs. Shape 1
18181818.... Use those 4 curves as sections to build a SweepSweepSweepSweep2222 surface between the
brim pieces. Match TangencyTangencyTangencyTangency to the rail edges and specify to Refit the
cross-section curves within 0000....01010101 units.
19191919.... DeleteDeleteDeleteDelete the curves used to build the sweep.
20202020.... Around the edge of the logo panel are 6
skinny surfaces, offset fillet surfaces that have
flipped over on themselves. DeleteDeleteDeleteDelete them.
8/8/2019 Form_vs_shape_1
68/79
Form vs. Shape 1
The final area to clean up is around the logo
panel and tunnel surfaces. The logo panel and
tunnel surfaces need to be trimmed off, and the
fillets repaired.
21212121.... JoinJoinJoinJoin together 4
tunnel surfaces.
8/8/2019 Form_vs_shape_1
69/79
Form vs. Shape 1
22222222.... Create a curve by running IntersectIntersectIntersectIntersect on the
logo panel and tunnel objects.
23232323.... Build a PipePipePipePipe witha Radius of 0000....125125125125
around the
intersection curve.
24242424.... DeleteDeleteDeleteDelete the
intersection curve.
8/8/2019 Form_vs_shape_1
70/79
Form vs. Shape 1
25252525.... Run ExtendSrfExtendSrfExtendSrfExtendSrf
with the Smooth
option on each end.
Use a small factor of
0000....15151515.
26262626.... SplitSplitSplitSplit the logo
panel and tunnel
objects with the pipe.
8/8/2019 Form_vs_shape_1
71/79
Form vs. Shape 1
27272727.... DeleteDeleteDeleteDelete the pipe
and thin surfaces.
18181818.... Use SplitSplitSplitSplit with the Isocurve option, Shrink set
to YesYesYes Yes, to split the fillet surface below the logo
panel, snapping to the EndEndEndEnd of the logo panel
edge.
29292929.... SplitSplitSplitSplit by Isocurve again, splitting the fillet
surface below the tunnel surface, snapping to
the EndEndEndEnd of the tunnel surface edge.
30303030.... DeleteDeleteDeleteDelete the small pieces.
End Snap
End Snap
8/8/2019 Form_vs_shape_1
72/79
0
Form vs. Shape 1
31313131.... Repeat the SplitSplitSplitSplit
and DeleteDeleteDeleteDelete operations
on the other side.
32323232.... UnTrimUnTrimUnTrimUnTrim the brim surface with the
KeepTrimObjects option.
8/8/2019 Form_vs_shape_1
73/79
1
Form vs. Shape 1
33333333.... On each side of the model, SplitSplitSplitSplit the curve with the Point option,
snapping to the End of the fillet surfaces.
34343434.... DeleteDeleteDeleteDelete the small curve pieces.
A lot of these steps are being done on both sides of the model separately
so that any small differences from one side to the other don't prevent this
from joining up successfully.
35353535.... Again on each side of the model, build a BlendBlendBlendBlend curve between the
edges of the fillet surfaces. Specify TangencyTangencyTangencyTangency Continuity.
8/8/2019 Form_vs_shape_1
74/79
Form vs. Shape 1
36363636.... JoinJoinJoinJoin the blend
curves to the pieces
of the brim trim curve.
37373737.... TrimTrimTrimTrim off the brim
surface.
38383838.... DeleteDeleteDeleteDelete the trim
curve.
39393939.... JoinJoinJoinJoin up all the
objects.
8/8/2019 Form_vs_shape_1
75/79
Form vs. Shape 1
40404040.... BlendSrfBlendSrfBlendSrfBlendSrf between the logo panel and tunnel
edges. Specify TangencyTangencyTangencyTangency Continuity.
41414141.... Run ExtendSrfExtendSrfExtendSrfExtendSrf
with the Smooth
option on each end of
the blend. Use a
factor of 0000....1111.
8/8/2019 Form_vs_shape_1
76/79
Form vs. Shape 1
42424242.... Draw a LineLineLineLine
between the ends of
the fillets.
43434343.... In the Right view,use the line to TrimTrimTrimTrim
off both ends of the
blend surface.
44444444.... DeleteDeleteDeleteDelete the line.
45454545.... JoinJoinJoinJoin the blend
surface to the
polysurface.
End SnapEnd Snap
8/8/2019 Form_vs_shape_1
77/79
Form vs. Shape 1
46464646.... Fill in each remaining hole with a small NetworkSrfNetworkSrfNetworkSrfNetworkSrf. Specify TangencyTangencyTangencyTangency
Continuityfor all edges.
47474747.... JoinJoinJoinJoin the network surfaces to the polysurface.
8/8/2019 Form_vs_shape_1
78/79
Form vs. Shape 1
48484848.... ShowSelectedShowSelectedShowSelectedShowSelected the
outer polysurface.
49494949.... JoinJoinJoinJoin the inner and
outer polysurfaces.
8/8/2019 Form_vs_shape_1
79/79
Form vs. Shape 1
Index
A
AdvancedDisplay 15, 55
Align with Surface 32
B
Blend 34, 71
BlendSrf 54, 59, 73
BooleanUnion 55
brim 5
C
ChangeDegree 8
CrvDeviation 46
Curve 6, 8, 10, 13, 14, 16, 48
CutPlane 11
D
design intent 18
Dir 55
DocumentProperties 2
DupEdge 34, 50, 52
E
Ellipsoid 5
Emap 22
Explode 30
ExtendSrf 53, 68, 73
ExtractIsocurve 23
ExtractSrf 27
freeform editing 44
G
G2 14
grid options 3
I
InPlace 30
Intersect 32, 46, 67
Int snap 19
iterative 51
J
Join 7, 10, 26, 35, 36, 52, 66, 72,
74, 75, 76
L
Line 16, 19, 62
Logo Panel 8
logo panel 5
M
Maintain Height 50
MatchSrf 43
MergeEdge 27, 31, 40
mesh options 3
Mirror 10, 15, 26, 49, 53, 54
modeling aids 4
Move 49
N
Near snap 24
NetworkSrf 21 22 25 37 39
Patch 28
Pipe 53, 67
Planar Osnap 16
Plane 11
Project 13, 62, 64
S
shell 5, 57
ShowEdges 15
Split 11, 42, 54, 58, 61, 68, 69,
71
SplitEdge 19, 20, 36, 39
Sweep1 32, 41
Sweep2 20, 21, 36, 39, 50, 65
symmetric objects 51
T
Tapered 59
tolerance 2, 64
ToPoint 7
Trim 6, 7, 10, 15, 16, 31, 72, 74
tunnel 5
Tunnel Edges 13
U
units 2
UnTrim 30, 31, 70
W
WebBrowser 4
Z