What's New in MultiSurf.pdf

54
Documentation Supplement for MultiSurf What's New in MultiSurf 4.5 4.7 4.8 March 2002 Copyright 2000-2002 AeroHydro, Inc.

description

Multisurf

Transcript of What's New in MultiSurf.pdf

Page 1: What's New in MultiSurf.pdf

Documentation Supplement for MultiSurf

What's New in MultiSurf4.5 4.7 4.8

March 2002

Copyright 2000-2002 AeroHydro, Inc.

Page 2: What's New in MultiSurf.pdf

What’s New in MultiSurf

Aerohydro, Inc.PO Box 684 / 54 Herrick Rd.Southwest Harbor, Maine 04679 USAvoice 207-244-4100fax [email protected]

MultiSurf is a trademark of AeroHydro, Inc.

This manual was produced using Doc-To-Help®, by WexTech Systems, Inc.

Page 3: What's New in MultiSurf.pdf

Contents

What’s New in MultiSurf Contents • i

Contents

What’s New in MultiSurf 4.5 1Export Offset Table Macro.....................................................................................................1

To use the Export Offset Table macro:...................................................................1Offset table options: .................................................................................................1Output Options:........................................................................................................2Printed Output Options:..........................................................................................2

What’s New in MultiSurf 4.7 3Improvement of NURBS Fitting and IGES Export.............................................................3

IGES and NBS Export...............................................................................................4NUBFitCurve, NUBFitSnake, NUBFitSurf entities ..............................................4

DXF Import ..............................................................................................................................8Selection Options in Wireframe View................................................................................10Zooming in perspective views ............................................................................................11Layer Settings dialog enhancements (Settings/Layers...) ...............................................12

Layer Settings dialog and Undo ...........................................................................12Tools /Curvature Profile - Porcupine................................................................................12Tools/Velocity Profile..........................................................................................................13Tools/Graph Profile .............................................................................................................14New Entities: Copy family ..................................................................................................15

CopyPoint, CopyCurve, CopySurf ......................................................................15CopyBead, CopyRing.............................................................................................16CopyMagnet............................................................................................................18

New Entities: XYZ family ....................................................................................................18XYZBead, XYZRing................................................................................................19XYZMagnet .............................................................................................................20

Other new entities.................................................................................................................21PolyGraph................................................................................................................21RPYFrame................................................................................................................22PolySnake2 ..............................................................................................................23

Animation dialog ..................................................................................................................23Tools/Animation/Setup dialog ...........................................................................24Animation information stored in the model file ................................................24Change in Animate command..............................................................................25Other actions during animation ...........................................................................25

Create/Edit Dialog enhancements .....................................................................................26ErrorView enhancements ....................................................................................................26

Error Details window.............................................................................................26Option to exclude error 284’s................................................................................26

Command Dialog enhancements, new commands..........................................................27New commands......................................................................................................27

View/Set View options........................................................................................................29

Page 4: What's New in MultiSurf.pdf

Contents

ii • Contents What’s New in MultiSurf

Select/By Name dialog enhancements ..............................................................................30Smart cursor enhancements ................................................................................................30Tools/Special/Freeze Fit .....................................................................................................31

Applications of Tools/Special/Freeze Fit...........................................................33History messages ..................................................................................................................34PLX export of TrimSurfs ......................................................................................................34Model Warnings ...................................................................................................................34Edit/Hide/Unselected.........................................................................................................36DXF2MSF enhancements .....................................................................................................36IGES Export of Points and Curves......................................................................................36Double-click editing of draggable points disabled ..........................................................36Scaling of points during Component/Load......................................................................36Transparency option in Render view.................................................................................37

What’s New in MultiSurf 4.8 38Improved accuracy ...............................................................................................................38Hermite interpolation...........................................................................................................38Breakpoints ............................................................................................................................39Breaklines...............................................................................................................................39Smooth wireframe display ..................................................................................................40Breakage of existing models................................................................................................41Commands.............................................................................................................................42

Breakpoints command ...........................................................................................42CreateCopies command.........................................................................................42FixRelabel command..............................................................................................44Host command........................................................................................................44Guests command ....................................................................................................45SetPath command...................................................................................................45

New Projected Snake Entity: ProjSnake2...........................................................................45New Plane Entity: OffsetPlane............................................................................................46TrimSurf now has types 2 and 3 .........................................................................................47Tools/Spin .............................................................................................................................48Ctrl + PgUp or Ctrl + PgDn - nudging normal to the screen..........................................483D DXF export has more options .......................................................................................49Bold highlighting available for selected objects ...............................................................49Offset Table Macro has changed.........................................................................................50

Page 5: What's New in MultiSurf.pdf

What’s New in MultiSurf • Export Offset Table Macro

MultiSurf What’s New in MultiSurf 4.5 • 1

What’s New in MultiSurf 4.5

Export Offset Table MacroThe macro ExportOffsetTable.EXE automates the process of creating a standard tableof offsets for a MultiSurf model, replacing the old OFTBL utility.

To use the Export Offset Table macro:1 In MultiSurf, select the XContours, YContours, ZContours, Curves and/or

Snakes that are to appear in the offset table. See also “Offset Table Macro haschanged” on page 50

Note: You must select at least one XContours object plus one YContours, ZContours,curve, or snake object.

2 Choose Tools/ExportOffsetTable (or choose Tools/Macros, highlightExportOffsetTable, then click <Run> ).

3 In the dialog, set offset table options.

4 Click OK. A progress meter will display while the macro is working.

Offset table options:Title — Text identification of the boat. The title will appear in the header portion ofthe table. The first line of the model’s comment is offered as the default.

X-position of Station 0 — The X-position where Station 0 is located, in the sameunits as the model. The default value is taken from the value given in the firstselected XContours object.

Station Spacing — The distance between stations, in the same units as the model.The default value is taken from the value given in the first selected XContours object.

Y-position of centerline — The Y-position from which the half breadths will bereferenced. Default is zero. A different value may be useful for multihulls where onehull is created offset from the Y=0 plane in MultiSurf and you want to reference thehalf breadths for that hull from its own center.

Z-position of baseline — The Z-position from which the heights will be referenced.Default is zero.

Units — The units that will be used in the table. If units are specified in the model,those are offered as the default. Otherwise, the default depends on the units set inthe Windows Regional Settings (feet for U.S., meters for Metric).

Page 6: What's New in MultiSurf.pdf

What’s New in MultiSurf • Export Offset Table Macro

2 • What’s New in MultiSurf 4.5 March 2002

Offsets to — The part of the boat the offsets represent. This will appear in the table’sheader. The default is Unspecified.

Selected Curves — Lists the curves and snakes selected to appear in the table. Thefirst column shows the names of the curves and snakes as they will appear in thetable. The default names for the table are taken from the names given in the model.You can edit these names (slowly double-click the name, type the new name, press<Enter>). The second column shows the names of the curves and snakes as they aregiven in the model (these names are not editable in this dialog).

Output Options:Excel 97 worksheet — You must have Excel 97 installed for this option to work. Theoption opens Excel and creates the offset table in a worksheet. Once the table isgenerated, you can modify its appearance to suit your own tastes.

Save text file — Saves the offset table in an ASCII text file format. You have theopportunity to specify file name and location in the Save As dialog.

Save text file formatted for tiled paper — This creates the same file output as wascreated by the OFTBL utility. It is an ASCII text file that is formatted to be printedout using tiled paper. You have the opportunity to specify file name and location inthe Save As dialog.

Save comma-delimited text file — Saves an ASCII text file where each item in thetable is separated by a comma. This file may be useful for importing into spreadsheetprograms. You have the opportunity to specify file name and location in the Save Asdialog.

Save DXF file — Saves a DXF file of the table which can then be imported into aCAD program. The text is output at a height of one unit, so it is likely that the tablewill have to be resized after it is imported to the desired scale. You have theopportunity to specify file name and location in the Save As dialog. Note: These DXFfiles read into AutoCAD 14; some other DXF viewers may have problems.

Print offset table — Prints the offset table directly to the printer. Set line widths forthe table in Printed Output Options (below). After you have clicked OK to thisdialog, the print dialog will appear, enabling you to select such options as thenumber of copies, paper size, and paper orientation.

Printed Output Options:[Grayed out unless you have turned on the Print offset table radio button in theOutput Options]:

Thick/Thin line width — Allows you to select line widths for the lines appearing inthe table in printed output. Defaults are 6 and 1. Thick width can be between 1 and20. Thin width can be between 1 and 10. The relation between the numbers and thephysical printed widths of these lines may vary from printer to printer. You willhave to discover the widths that work best for your own printer.

Page 7: What's New in MultiSurf.pdf

What’s New in MultiSurf • Improvement of NURBS Fitting and IGES Export

MultiSurf What’s New in MultiSurf 4.7 • 3

What’s New in MultiSurf 4.7

Improvement of NURBS Fitting and IGES ExportNURBS (Non-Uniform Rational B-Splines) is a mathematical formulation for curvesand surfaces which, since the mid-1980’s, has been widely embraced by thecomputer-aided design industry and has achieved substantial status as a de factogeometry standard. The standardization offered by NURBS, and the existence of theIGES and STEP standards for communicating NURBS-based geometry betweendesign, analysis, visualization, machining and manufacturing programs, has realizedprofound benefits. One consequence is that the great majority of CAD software isnow 100% NURBS based.

MultiSurf is a notable exception to this rule. MultiSurf understands NURBS — it canimport any NURBS geometry exactly — but MultiSurf’s internal and externalrepresentations of geometry are much richer and broader than NURBS. If we limitedMultiSurf to NURBS constructions, a great deal of its relational power and versatilitywould be lost. Some MultiSurf curve and surface constructions are exactlyrepresentable by NURBS, but many others are not.

How, then, do we export geometry to other NURBS-based programs? The answer is:those MultiSurf objects that are exactly representable by NURBS are exportedexactly; all others are systematically approximated with NURBS representationsprior to export. The medium of communication is usually an IGES file, when thereceiving application understands IGES. In other cases, the export of NURBS data ismade through an NBS file, which is a text file format (defined by AeroHydro) thatcan easily be translated to the input format of any program that utilizes NURBSgeometry.

The flagship feature of MultiSurf 4.7 is a profound improvement in the accuracy andefficiency of NURBS approximation. This is very important to users who requireNURBS-based output for connection to machining and manufacturing. The advancecame about as a result of developing algorithms for “non-uniform” B-spline fitting.Our previous NURBS approximation procedures (embodied in the BFitCurve,BFitSnake, and BFitSurf entities, and the File/Export3D/IGES and NBS options)utilized strictly “uniform” B-splines. The mathematical distinction between uniformand non-uniform B-splines is rather esoteric and beyond the level we wish to go intohere, but with proper choice of knots, a non-uniform B-spline curve can approximatea given “difficult” curve to far greater precision, with many fewer control points,than can a B-spline curve with uniform knots. And, using fewer control points, thenon-uniform fitting routine generally arrives at its answer much faster.

[If you are interested in learning more about the details of knots and NURBS, wehighly recommend Geometric Modeling (2nd Ed.) by Michael Mortensen (Wiley, 1997;ISBN 0-471-12957-7). Besides a very clear review of the whole broad field, from the

Page 8: What's New in MultiSurf.pdf

What’s New in MultiSurf • Improvement of NURBS Fitting and IGES Export

4 • What’s New in MultiSurf 4.7 March 2002

ground up, this excellent book contains an extensive chapter on the topic dearest toour hearts, relational geometry.]

As before, curve and surface fitting show up in two places in MultiSurf: IGES andNBS export, and fitted curve and surface entities. During IGES and NBS export, theuser can set a global RMS tolerance level, and each exported object is either exportedexactly (when possible), or approximated within the global tolerance. The fittedcurve and surface entities allow the fitting to be done, where desired, ahead of timeon a controlled object-by-object basis, before export.

IGES and NBS ExportDuring IGES and NBS export, unless the object is one that is recognized as beingexactly representable by NURBS, non-uniform fitting is automatically applied. Ingeneral, the tolerance parameter can be set substantially higher than before, forcing atighter fit. In fact, we have set the default tolerance that comes up in the IGES andNBS export dialogs 100 times smaller than the previous value, because this increasedlevel of accuracy is usually easily obtained. Previously, the default tolerance was1/2000 of “model size”; now it is 1/200,000, where “model size” is defined as theaverage of the X, Y and Z extents. Also, IGES files tend to come out substantiallysmaller and faster than before (for the same tolerance), because in mostcircumstances many fewer control points are needed to meet a specified tolerance.

Insufficient dataUnder some conditions, IGES export will report that one or more surfaces failed tomeet tolerance, and identify which ones. The most likely reason is that the surfacehas too few subdivisions, i.e., its tabulation in memory has insufficient data points.You have the options of increasing the subdivisions on this one surface (generally, itis necessary to increase the subdivisions of its supporting curves correspondingly),or (simpler and usually better) increasing the Division Multiplier for the wholemodel (Settings/Model dialog). If you have a complex surface in your model withvery low subdivisions, then you may have to use the first method, but usually juststepping up the Divisions Multiplier from 1 to 2, doubling the number of data pointsin both directions, will solve any “failed to meet tolerance” problem.

NUBFitCurve, NUBFitSnake, NUBFitSurf entitiesThe “NUBFit” entities are essentially replacements for the “BFit” entities —BFitCurve, BFitSnake and BFitSurf — with substantially greater flexibility. You canthink of the “NU” as standing for “non-uniform”, or for “New”. The BFits still existfor backwards compatibility, but the NUBFits do everything the BFits did, and muchmore.

Page 9: What's New in MultiSurf.pdf

What’s New in MultiSurf • Improvement of NURBS Fitting and IGES Export

MultiSurf What’s New in MultiSurf 4.7 • 5

NUBFitCurveLet’s examine the NUBFitCurve first. Beyond the standard data for a curve, its datavalues are:

TypeKnotlistnc-specifierLog-toleranceCurve

Compared with a BFitCurve, the only thing new here is the Knotlist. There are 3alternatives for this entry:

1 ‘*’ (the “default” knotlist) - This allows the fitting to use the best set of non-uniform knots it can come up with.

2 ‘*UNIFORM’ - a new “predefined” knotlist, available in the Selection Setview (<F6>); this forces the fitting to use uniform knots, essentiallyduplicating the function of BFitCurve.

3 You can choose a KnotList or KnotList2 object containing a suitable specifiedlist of knots.

As in the BFitCurve, for nc-specifier, there are two basic choices:

A nc-specifier can be a positive integer (greater than type), specifying a definitenumber of control points to use for the fit.

B nc-specifier can be 0, which signifies “increase the number of control pointsuntil tolerance is met”.

Since there are 3 alternatives for Knotlist and 2 alternatives for nc-specifier,altogether there are 6 combinations which produce different behaviors for theNUBFitCurve entity:

1A ‘*’ knotlist, combined with positive nc-specifier: The fitting will use exactlync-specifier control points, and will use the best non-uniform knots it cangenerate.

1B ‘*’ knotlist, combined with nc-specifier = 0: The fitting will increase thenumber of control points (from type+1 up to the number of data points), untiltolerance is met. At each step, it will optimize the non-uniform knotlist.

2A ‘*UNIFORM’ knotlist, combined with positive nc-specifier: The fitting willuse exactly nc-specifier control points and uniform knots.

2B ‘*UNIFORM’ knotlist, combined with nc-specifier = 0: The fitting willincrease the number of control points (from type+1 up to the number of datapoints), until tolerance is met. At each step, it will use uniform knots.

3A KnotList object, combined with positive nc-specifier: The fitting will useexactly nc-specifier control points, along with the specified KnotList. In thiscase, there is a required relationship between nc-specifier, type, and numberof knots: the number of interior knots (i.e., knots which are > 0 and < 1) =number of control points + type -1.

Page 10: What's New in MultiSurf.pdf

What’s New in MultiSurf • Improvement of NURBS Fitting and IGES Export

6 • What’s New in MultiSurf 4.7 March 2002

3B KnotList object, combined with nc-specifier = 0: This case results in an errorcondition; because of the relationship noted under (3A); the number ofcontrol points is not free to escalate when the type and number of knots areboth specified.

During NBS export of a NUBFitCurve, no further approximation takes place; theknots and control points are output as is. Thus the user has complete control over thelevel of approximation and the characteristics of the exported curve (type, number ofcontrol points, and uniform vs. non-uniform).

Tools/Clearance works with NUBFits (as with BFits); with a single NUBFit objectselected, it reports the number of control points used and the goodness-of-fit RMSand worst-point statistics.

Tools/Special/Freeze Fit (and the BFreeze command) work with NUBFits just as forBFits. They will generate a NURBCurve and its control points (or NURBSnake andits control magnets) as freestanding MultiSurf objects. When the fit is non-uniform, itgenerates a KnotList in addition.

NUBFitSnakeThe NUBFitSnake entity is very similar to the NUBFitCurve. Its support must be asnake, and the resulting approximation is in the u,v, space of the supporting surface.Its control points are u,v locations on the supporting surface. The “tolerance” in log-tolerance is a dimensionless value in u,v-space, rather than a distance.

NUBFitSurfThe NUBFitSurf entity works similarly to NUBFitCurve, but it approximates asurface. Beyond the standard data for a surface, its data values are:

u-typeu-knotlistncu-specifierv-typev-knotlistncv-specifierlog-toleranceSurface

The fittings in the u- and v-directions are relatively independent. As withNUBFitCurve, there are 3 alternatives for each knotlist entry:

1 ‘*’ (the “default” knotlist) - This allows the fitting to use the best set of non-uniform knots it can come up with.

2 ‘*UNIFORM’ - a new “predefined” knotlist, available in the Selection Setview (<F6>); this forces the fitting to use uniform knots, essentiallyduplicating the function of BFitCurve.

3 You can choose a KnotList or KnotList2 object containing a suitable specifiedlist of knots.

and two alternatives for each nc-specifier:

Page 11: What's New in MultiSurf.pdf

What’s New in MultiSurf • Improvement of NURBS Fitting and IGES Export

MultiSurf What’s New in MultiSurf 4.7 • 7

A nc-specifier can be a positive integer (greater than type), specifying a definitenumber of control points to use for the fit.

B nc-specifier can be 0, which signifies “increase the number of control pointsuntil tolerance is met”.

These can be used in any combination, except 3B. (nc-specifier = 0 can’t be used incombination with a specified KnotList object, because of the fixed number of knots.)

One common reason to use a NUBFitSurf prior to exporting IGES is to control thecharacteristics and quality of NURBS approximation on a surface-by-surface basis.Another reason is to achieve exact matching along shared surface edges in theexported file. For example, suppose we have ‘topside’ and ‘bottom’ surfaces on asingle-chine hull, joining each other exactly along the chine; suppose the u-directionis longitudinal and the v-direction is transverse on each surface. If we just export the‘topside’ and ‘bottom’ surfaces through IGES with a global tolerance, we are verylikely to come out with a different number of control points on the two exportedsurfaces. For example, the ‘topside’ might meet the tolerance with 12 x 5 controlpoints, while ‘bottom’ gets 10 x 7. Two NURBS curves with different numbers ofcontrol points and different knots are identical only under extremely unlikelyconditions, so there will almost certainly be gaps and overlaps between the two IGESsurfaces that result.

However, if we first make two NUBFitSurfs ‘nub_topside’ and ‘nub_bottom’ usingthe following conditions:

• same ncu-specifier (say, 12 for this example)

• same knots for the u direction

• same number of u-divisions x u-subdivisions on the base surfaces

then we are guaranteed that the two fitted surfaces will join exactly along theircommon edge. Since there is no further approximation in the export of theNUBFitSurfs, the two exported surfaces will join exactly in the IGES file, and in thereceiving application.

Tools and NUBFit SurfTools/Clearance works with NUBFitSurf (as with BFitSurf). With a singleNUBFitSurf selected, it reports the number of control points used and the goodness-of-fit RMS and worst-point statistics.

Tools/Special/Freeze Fit (and the BFreeze command) work with NUBFitSurf just asfor BFitSurf. Depending on uniformity in the u and v directions, there are someoptions for the results, controlled by the “Results” selection in the Freeze Fit dialog,or the kind parameter in the command syntax:

0 Any NUBFitSurf can be frozen as a NURBSurf, supported by an array ofAbsPoint control points (kind = 0, the default), and 0, 1 or 2 KnotLists.

1 If the NUBFitSurf is uniform in the v-direction, kind can be 1, resulting in aBLoftSurf with NURBCurve master curves running in the u-direction of theNUBFitSurf.

Page 12: What's New in MultiSurf.pdf

What’s New in MultiSurf • DXF Import

8 • What’s New in MultiSurf 4.7 March 2002

2 If the NUBFitSurf is uniform in the u-direction, kind can be 2, resulting in aBLoftSurf with NURBCurve master curves running in the v-direction of theNUBFitSurf.

Through a command parameter in the BFreeze syntax, you can control the namesthat are used for the generated objects; or by leaving the parameter off (or specifying“*”), you can allow MultiSurf to choose a set of unique names. For example thecommand

BFreeze D 1

with a NUBFitSurf selected that uses 5 control points in the u-direction and 8 controlpoints in the v-direction causes generation of :

1 BloftSurf named ‘D’, with

8 NURBCurve master curves named ‘D1’, ‘D2’, … ‘D8’, based on

40 AbsPoint control points named ‘D1_1’, ‘D1_2’ … ‘D8_5’

(assuming all these names are available. If they are not, then a message “NameConflict” is displayed and the BFreeze command does not work.)

DXF ImportFile/Import/DXF imports many forms of data from a 2-D or 3-D DXF file into anopen MultiSurf model. DXF files conforming to AutoCAD R12, R13, R14 and 2000are all handled.

The controls in the “Import DXF - Options” dialog allow you to control severalaspects of the import operation and the conversion of data.

AutoCAD Entities checkboxes let you choose which entities will be converted.

POINTs are converted to AbsPoints or FrameAbsPts; NOTE: Points which aresupports for another entity, are imported with that entity; they will not be importedwhen only POINTs is selected. The supporting points for SPLINEs, for instance, willbe imported only when Splines are imported.

Page 13: What's New in MultiSurf.pdf

What’s New in MultiSurf • DXF Import

MultiSurf What’s New in MultiSurf 4.7 • 9

LINEs are converted to Lines;

ARCs and CIRCLEs are converted to various types of Arc;

POLYLINEs (including LWPOLYLINEs) are converted to type-1 BCurves or BSurfs;

SPLINEs are converted to NURBCurves.

Insert Frame. An Insert Frame can be preselected, or can be chosen by name fromthe dropdown. Any Frame or Point entity qualifies. (A Point serving as a framemeans a parallel copy of the global coordinate system, translated so its origin is atthe point.) The default frame ‘*’ is the global coordinate system. When a frame otherthan ‘*’ is chosen, the DXF data is interpreted as x, y, z coordinates in the insertframe. Thus, the imported objects are translated and rotated to place them in theorientation of the Insert Frame.

Point merging. Importing a DXF containing qualifying data usually generates somepoints. For example if you import a LINE, its two endpoints are created andconnected with a MultiSurf Line. The “Point merging tolerance” edit box allowscontrol over merging or substitution of existing points for ones that would otherwisebe created. For example, if an ARC being converted has one of its ends at a locationwhere another point already exists, within distance tolerance, the existing point willbe used and creation of a new point at that location will be bypassed. If tolerance isnegative, no merging is done, and every entity gets its full complement of newpoints. If tolerance is zero, points that have exactly the same location will be merged.A small positive tolerance - say on the order of .000001 times model size - allows theincoming data to connect to existing data where possible, and generally produces amore “relational” model. Too large a tolerance risks loss of detail; for example, in thecase of a LINE shorter than tolerance, the two endpoints will be merged, so theresulting MultiSurf Line will have zero length.

Scale factor. As noted below, under most conditions units conversion isautomatically performed during import. This control is a provision for additionalscaling of the imported geometry. For example, if you want to reduce the size ofimported objects to 75% of their size in the DXF file, enter a scale factor of 0.75.

Make FrameAbsPt option. As noted above under “Point merging”, import of DXFdata usually generates points; by default these are AbsPoints. The checkbox labeled“Make FrameAbsPts” provides the alternative of generating FrameAbsPt objectsinstead, based on the insert frame. With this option, the imported geometry acquiresa durable dependence on the insert frame; if the frame is later moved or reoriented,the imported geometry will move along with it.

Preserve ACAD Colors option controls the colors of imported objects. If “PreserveACAD colors” is checked, objects will receive the MultiSurf color closest to theAutoCAD color specified in the DXF file. Otherwise, MultiSurf will use its defaultcolors, e.g. 11 for arcs and splines, 6 for lines, 2 for meshes.

Layer. A layer for the imported objects can be specified. DXF import ignores thelayer settings in the DXF file, and all objects generated during an import are insertedon the same layer. This can be selected by name or number. The default layer is 0.

Units. Units will be automatically converted, depending on what units (if any) arespecified in the DXF file and in the MultiSurf model. There are 3 options for the DXF:

Page 14: What's New in MultiSurf.pdf

What’s New in MultiSurf • Selection Options in Wireframe View

10 • What’s New in MultiSurf 4.7 March 2002

(1) no units specified; (2) English (inches); (3) Metric (mm). There are 4 options forthe MultiSurf model: (A) no units; (B) feet; (C) inches; (D) meters. When the DXF hasno units, no conversion of coordinates is performed; the DXF coordinates areinterpreted as the same units as the MultiSurf model. When the MultiSurf model hasno units, and the DXF does, the MultiSurf model units are set appropriately (inchesfor “English”, meters for “Metric”) and a scaling factor is applied. For othercombinations of units the scaling factors are as follows:

DXF - no units DXF - English (in) DXF - metric (mm)MS2 - no units 1 1 .001MS2 in feet 1 1/12 1/ (12 * 25.4)MS2 in inches 1 1 1/25.4MS2 in meters 1 25.4/1000 .001

Selection Options in Wireframe View

The Program Options dialog (Settings/Preferences/Program) has a new controlgroup labelled “Selection” containing three checkboxes:

Window selectClick to clearAutoCAD (TM) selection

Window select. When this box is checked, you can select a group of objects bydragging a rectangular window around them in wireframe view. This is done withthe sequence: left button down in “white” space, drag, left button up. (No keys areinvolved.) The direction in which you draw the box affects the outcome of theselection (just as in AutoCAD). When you drag left to right, only objects that arecompletely within the selection window are placed in the selection set. When youdrag right to left, all objects that are completely or partially within the selectionwindow are placed in the selection set. As you drag, a rectangle follows the cursor;when you let the left button up, the selection set is cleared and the enclosed objectsare selected.

Filters operate as usual during window select; for example, if you have only thePoints filter on, you will select only the points inside the selection window.

Click to Clear. When this box is checked, one click in any empty area of thewireframe view will clear the selection set.

Note: If you are accustomed to switching between windows (e.g. Wireframe, Renderand Selection Set views) by just clicking in the window you want to bring to thefront, the Click To Clear feature will take a little getting used to, and you may decideto leave it unchecked. Note, however, that you can safely bring a Wireframe view tothe front by clicking on its frame or caption bar without clearing the selection set.You just have to learn not to click inside the Wireframe window, when there is aselection set that you want to maintain.

Page 15: What's New in MultiSurf.pdf

What’s New in MultiSurf • Zooming in perspective views

MultiSurf What’s New in MultiSurf 4.7 • 11

Note: If this option is on with AutoCAD selection, the AutoCAD selection will notwork as expected since the selection set will be cleared prior to a window select.Therefore, we recommend that you do not have both Click to Clear and AutoCADselection buttons on at the same time.

AutoCAD selection. When this box is checked, several selection actions areredefined, so the selection procedures in MultiSurf become much more aligned withstandard selection procedures in AutoCAD. (This option has been requested bymany users who spend a lot of time going back and forth between AutoCAD andMultiSurf, and find it annoying that the two programs use different selectionconventions.)

When AutoCAD selection option is on, MultiSurf follows these rules:

1 Pressing the <Esc> key clears the selection set.2 You add to the selection set just by clicking additional objects with the left mouse

button; you do not have to hold the <Ctrl> key down.3 An individual object can be removed from the selection set by clicking it with the

<Shift> key down.4 Window selection: You start a selection window by clicking in empty space.

Then move the cursor to the opposite corner of the selection window and clickagain. A selection window adds to the selection set; you do not have to hold<Ctrl> key down. Note: the selection window adds to the selection only if Clickto Clear is off. If Click to Clear is on, the selection set will first clear, and thenthe items in the selection window will be added.

As with Window select, when you drag left to right, only objects that are completelywithin the selection window are placed in the selection set. When you drag right toleft, all objects that are completely or partially within the selection window areplaced in the selection set.

Another characteristic of AutoCAD is that it clears the selection set after mostoperations. MultiSurf 4.7 does not imitate this behavior.

Zooming in perspective viewsWindow Zoom (<Alt>-drag zooming) in Perspective views has always been ratherunreliable; you could easily end up with the part of the model you wanted to see outof sight or, at best, not very well centered. We finally figured out how to modify theview transformation parameters so Window Zoom now works as reliably inPerspective as it always has in Orthographic views!

Page 16: What's New in MultiSurf.pdf

What’s New in MultiSurf • Layer Settings dialog enhancements (Settings/Layers...)

12 • What’s New in MultiSurf 4.7 March 2002

Layer Settings dialog enhancements (Settings/Layers...)1 The Current Layer’s name is displayed alongside its number, at the top of the

dialog.

2 “Make Current” button. You can choose a new layer for the current layer byhighlighting its number/ name in the list box and clicking the “Make Current”button.

3 “Insert Layer” button. You can open space for a new layer by highlighting a layer(say, layer 5) and clicking the “Insert layer” button. The contents and name oflayer 5 are moved up one layer; if layer 6 is already occupied, its contents andname are moved to layer 7 etc, until we reach an empty layer, where the chainreaction stops. Thus, an empty layer is created at layer 5. If no insert can bedone, the Insert Layer button is deactivated.

4 “Move Layer…” button. You can move the contents and/or name of any non-empty layer to another layer. This button opens a dialog where you select thedestination layer, and set check boxes that determine whether you move thelayer name and the layer on/off state with the layer contents. When a layer isempty and cannot, therefore, be moved the Move Layer button is deactivated.

Layer Settings dialog and UndoAs long as you stay in the Layer Settings dialog, individual “moves” and “inserts”are not recognized as undoable events. If you leave the dialog by the “Cancel“button, all changes made while in the dialog are undone, and the model is exactlythe same as when you entered the dialog. Leaving the dialog by accepting (clickingOK) registers as one undoable event, covering all the changes made.

Tools /Curvature Profile - PorcupineIn the Curvature Profile window there is a new button labeled “Porc.” for“Porcupine”. This toggles on and off a so-called “porcupine” display of curvaturedistribution. At 100 equally spaced positions along the displayed curve, a line(“quill”) is drawn normal to the curve, with length proportional to the curvature (asprojected onto the plane of the screen). This provides basically the same informationas the curvature graph, but the visual relationship of the display to positions alongthe curve makes it easier for some to interpret.

The Porcupine command provides the same display with some additional flexibility.The command takes two optional parameters:

Porcupine [ scale [ quills ]]

scale is a multiplicative factor on the length of the quills (nominal value 1).

quills is the number of quills displayed over the total length of the curve (nominal100).

Page 17: What's New in MultiSurf.pdf

What’s New in MultiSurf • Tools/Velocity Profile

MultiSurf What’s New in MultiSurf 4.7 • 13

Tools/Velocity Profile[Available when one curve or snake is selected.]

The velocity of a curve is the rate of change of distance (arc length) along the curvewith respect to change in the t parameter. For example, on an unrelabeled Line orArc the velocity is constant – equal t-intervals have exactly equal arc lengths. But ona BCurve the velocity depends on the spacing between control points, being low inregions where two or more control points are close together and relatively highwhere control points are far apart. On most kinds of curves, velocity is variable withrespect to t -- the product of the particular mathematical operations involved incomputing the curve.

A discontinuity (jump) in velocity, as can occur especially with PolyCurves andPolySnakes, is generally quite unapparent in a wireframe view, but it’s just as muchof a challenge for curve fitting as a discontinuity in slope. The chief advantage of aPolyCurve2 (or PolySnake2) is that the velocity is automatically “balanced” at eachjunction, removing any velocity discontinuities. This makes it much easier toapproximate with B-spline (NURBS) math.

A curve can have zero velocity due to either relabeling or, for some curve types, tothe locations of control points. For example, a Relabel that starts with two zerovalues, e.g. {0, 0, 1} produce zero velocity at the t=0 end of any curve. {0, 0, 1, 1}produces zero velocity at both ends. For another example, a BCurve that uses thesame point twice at either end will have zero velocity at that end. This can happen ifyou accidentally select the same control point twice, an error which may not be at allapparent in the shape of the curve. Zero velocity on a curve can cause trouble inconstructions based on that curve - for example, a TanPoint won’t evaluate if its beadis at a zero velocity point; a SweepSurf can’t have a zero velocity point on its pathcurve. A curve that has zero velocity at either end may have no fair extensionbeyond that end.

Turning on tickmarks (visibility option 2) is one way to visualize the velocitydistribution of a curve. Velocity is low where the tickmarks are close together, highwhere they are far apart.

Tools/Velocity Profile is a much sharper tool for visualizing velocity. It displays agraph of the velocity distribution, similar in appearance to the Curvature Profile. Thedifferences are:

1 the ordinate plotted is the velocity rather than the curvature

2 the horizontal axis of the graph is just the t parameter. Tickmarks at 0.1 intervals(in the t parameter) assist in the t locations of graph features.

The Porcupine button and command work with Velocity Profile as well as Curvatureprofile. This provides an alternative presentation of velocity variation, displayed as aset of short lines or “quills” perpendicular to the displayed curve, each with lengthproportional to the local velocity.

Page 18: What's New in MultiSurf.pdf

What’s New in MultiSurf • Tools/Graph Profile

14 • What’s New in MultiSurf 4.7 March 2002

Example: Open sample file POLYCRV1.MS2. Select the PolyCurve ‘midsection’ andactivate Tools/Velocity Profile.

The graph indicates that each of the 3 segments between junctions has constantvelocity. However, the three velocities are different, so there are discontinuities(shown as steep jumps) at the transition t values of 0.4 and 0.6. Click the Porcupinebutton; this turns on the Porcupine display, which provides an alternative visualindication of discontinuities in velocity at t = 0.4 and 0.6.

Select the three component curves ‘bottom’, ‘bilge’, and ‘side’ in that order, andcreate a PolyCurve2. Display its velocity profile; it will be 100% constant.

The applications of Velocity Profile are chiefly diagnostic. Why is this SweepSurfcomplaining about the curve I’ve given it for its path? Why does this curve or snakeapproximate poorly during IGES export? - it looks smooth enough. Why are thelongitudinals on my CLoft hull compressed in this region? Often the Velocity Profilewill provide the answer to these questions.

Tools/Graph Profile[Available when one Graph or Relabel object is selected]

This new Tools option provides a graphical interface for viewing Graph and Relabelobjects.

A Graph object is a real-valued function of a single parameter (usually designated t,like the t parameter on curves and snakes). Graphs are used to greatly enrich thepossible geometries created by several entities, for example RelCurve, OffsetCurv,BlendSurf and SweepSurf. Relabels are a special type of graph used to control the tparameter distribution on curves and snakes. Graphs and Relabels are non-graphicentities that can’t be seen directly in a wireframe or rendered view (although theyusually do have visible effects on the objects they support).

Note that as non-graphic objects, Graphs and Relabels can’t be selected directly inthe wireframe view. If you know their names, you can select them from Selection Setview (<F6>), or with Select/By Name. Alternatively, select a graphic object that usesthe Graph or Relabel as a support, and edit its Graph or Relabel attribute; then openthe Graph Profile.

Tools/Graph Profile opens a window similar to the Curvature or Velocity Profilewindows, showing a plot of the graph over the parameter range 0 to 1, and thelocation of its control values.

Page 19: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Entities: Copy family

MultiSurf What’s New in MultiSurf 4.7 • 15

This example is the graph used as a blending function in the sample fileRELCURV1.MS2. It is used in the model to control the width of the spray flat on aplaning hull bottom. It is a type-3 BGraph with 8 control values:

0, 0.25, 0.65, 0.85, 1.0, 1.0, 1.0, 1.0

Graphs and Relabels must still be edited through their numbers, but this can be donewith the Profile window open, and it will update as soon as you accept each edit.

New Entities: Copy familyA set of six new entities are on the Create menu: CopyPoint, CopyCurve, CopySurf,CopyBead, CopyRing and CopyMagnet. Along with CopySnake, which has been onthe menu since version 4.0, these all share a common theme: copying some geometryfrom one environment into another, with some optional transformations in theprocess.

CopyPoint, CopyCurve, CopySurfEach of these entities takes a support of the same class (the basis object); two frames;and three scale factors. The two “environments” are two frames, designated Frame0(the “source” frame) and Frame1 (the “destination” frame). The process ofconstructing the Copy object has three steps:

1 transform the basis object into frame coordinates in Frame0;2 apply the three stretching factors to the x, y, z coordinates in Frame0;3 create the Copy at those same x, y, z coordinates in Frame1.

All this sounds like a lot of Frames. Although Frames are versatile and not hard tocreate, remember that any point can serve as a frame; its x, y, z axes are parallel tothe global X, Y, Z axes respectively. In practice, some 90% of Copy objects will usepoints for one or both frame supports.

The simplest application of Copy entities is to create a 1:1 copy of an object, parallelto its original orientation, but at another location. This is the best way yet to make aparallel copy of a curve. Suppose:

1 the basis curve is ‘c0’,2 there is a point ‘pt0’ at its t = 0 end, and3 there is a point ‘pt1’ where the copy is supposed to start.

Make a CopyCurve from ‘c0’ with Frame0 = ‘pt0’ and Frame1 = ‘pt1’, and 1, 1, 1 scalefactors. The two frames are parallel in this case, so the transformation is just aparallel displacement equal to the displacement from ‘pt0’ to ‘pt1’.

Page 20: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Entities: Copy family

16 • What’s New in MultiSurf 4.7 March 2002

If the Copy needs to be the same shape, but a different size, you can apply equalscale factors, e.g. 0.5, 0.5, 0.5 for a half-scale curve or surface. If the copy needs to bescaled differently in 2 or 3 directions, use unequal scale factors. To make a mirrorimage, one or more of the scale factors can to be negative -- or the destination frameneeds to have the opposite orientation (“handedness”) from the source frame.

If the Copy needs to be in an entirely different location and orientation, then build aframe in the required position, and use it as the Frame1 support.

There’s no requirement that Frame1 be different from Frame0. Sometimes a Copy intothe same frame is useful. Suppose you want a duplicate of a surface in the sameplace, with no change except different color, or different divisions. Then you can usethe same point (any point, in fact) for Frame0 and Frame1.

CopyPoint provides the best way yet to make the fourth corner of a rectangle (orparallelogram) when three corners are known. Suppose the three known corners are‘pt1’, ‘pt2’, ‘pt3’. Then the corner opposite to ‘pt2’ is the CopyPoint made with ‘pt1’as basis point, ‘pt2’ as source frame, and ‘pt3’ as destination frame. (This is moreconvenient than a BlendPoint, because you don’t have to mess around with anyweights.)

Sample files: COPYCV1.MS2, RPY.MS2, RPY-JET.MS2.

CopyBead, CopyRingThe CopyBead and CopyRing are very similar to one another. As with othersimilarly named pairs of beads and rings, the only difference is that a CopyRing,residing on a snake, also marks a position on the snake’s host surface, and so it canserve in any role where a magnet is needed. Typically, if the support is a snake, wewould always make a ring rather than a bead.

In the case of beads and rings, the two “environments” are the t parameter spaces oftwo curves or snakes. The data for a CopyBead is a basis bead (or ring), a destinationcurve, and a graph.

In its simplest manifestation (with graph = ‘*’), a CopyBead is a bead on a curve,‘curve1’, which copies the t position of the basis bead (or ring) on its host curve (orsnake) ‘curve0’. We think of the CopyBead as being “slaved” to its supporting bead,often functioning as a “remote control”.

For the simplest example, picture two Lines ‘line0’, ‘line1’ (both with default relabel);an AbsBead ‘e0’ on ‘line0’, and a CopyBead ‘e1’ made by copying ‘e0’ onto ‘line1’. Asyou drag ‘e0’, ‘e1’ will continuously update to remain at the same t location, andtherefore the same proportional position along its line, as ‘e0’.

The graph support greatly enriches the behavior of CopyBead and CopyRing bypermitting a transformation of the parameter between the source curve anddestination curve. The default graph ‘*’ in this context signifies no transformation,i.e., h(t) = t. A more complex graph produces a more complex motion or response ofthe CopyBead. Since there are few limits on the complexity of a graph you canspecify practically any relationship between the positions of the two beads.

A simple graph example that is frequently useful is the type-1 BGraph with values{1, 0}, i.e., h(t) = 1 - t . We usually give this graph the name ‘reverse’. If introduced

Page 21: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Entities: Copy family

MultiSurf What’s New in MultiSurf 4.7 • 17

into the above example of two lines, it makes the CopyBead go to thecomplementary position 1 - t, i.e. it traverses ‘line1’ from 1 to 0 as the basis bead ‘e0’goes from 0 to 1.

CopyBeads and CopyRings are frequently useful in the related topics of animationand procedural entities. A ProcCurve, ProcSnake or ProcCvSurf that uses 2 or moredriving beads is difficult to investigate because you have to move all those beads tonew positions to visualize the construction taking place at any particular location. Ifyou replace all but one driving bead with CopyBeads, you can easily slide the wholeconstruction along the full length of the driving bead’s supporting curve and seewhat’s going on. If the construction fails at some position as you drag, the movingpoint or curve will disappear; if you accept the drag at that position, you’ll be able tosee exactly how the construction fails, by the set of errors that pop up in the ErrorView.

Animation (using Tools/Animate or the Animate command) also benefits fromCopyBeads and CopyRings. The sample file PITCHPOLE.MS2 illustrates this. Openthe file, and either:

in Window/Command give the command: Animate go 10

or

use Tools/Animation and set the Abs Bead/Ring 1 Name to “go” and the Period(sec) to “10”, then click OK.

(Pitchpoling occurs when a vessel is caught by a steep breaking sea that somersaultsher, head over heels. Like a collision at sea, a pitchpole can ruin your whole day.)

This model uses about a dozen CopyBeads, one CopyRing, and several CopyCurvesand CopySurfs. If you turn on layer 1 you can see how it works. The CopyBeads(bright red) are all slaved to the AbsBead ‘go’. They are control points for a BCurve‘constr_wave’ (bright green), which creates the evolving wave profile. If you drag‘go’ down its vertical line, you will see each CopyBead slide correspondingly downits supporting curve. The supporting curves are mostly uniformly labeled lines; afew near the wave crest are curved or have relabels to control the details of the waveprofile.

A CopyCurve ‘waveside’ is used to make a 1:1 copy of ‘constr_wave’ down at sealevel; the sea surface is TranSurf ‘wave’ made from ‘waveside’ and ‘wavesweep’.

The motion of the boat, in relation to the wave crest, is controlled by CopyRing ‘r0’(also slaved to ‘go’), that slides along a LineSnake ‘n0’ on ‘wave’. Frame3 ‘F0’ islocated at ‘r0’ and arranged to have its x and y axes tangent to the ‘wave’ surface atall times. The boat surfaces are several CopySurfs made from a base boat model

Page 22: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Entities: XYZ family

18 • What’s New in MultiSurf 4.7 March 2002

positioned at the origin (on layer 2). Note that the boat is white in color; if you arenot seeing it, make sure that your background is not white as well.

Sample files: COPYBEAD1.MS2, COPYBEAD2.MS2, COPYRING1.MS2

CopyMagnetA CopyMagnet is a copy of a magnet or ring from the u,v-space of a “source” surfaceto the u,v-space of a “destination” surface. The u,v-spaces are the two“environments”. The characteristic data for a CopyMagnet is:

a basis magnetthe destination surfaceu-graphv-graph

In its simplest form, with both graphs equal to the default graph ‘*’, the CopyMagnetreads the u,v position of the basis magnet, and locates itself at that same u,v positionon the destination surface. The graphs allow the u and/or v parameters to betransformed in the process, similar to the effects of the graph of a CopyBead. Thusthe CopyMagnet is “slaved” to the position of its basis magnet, with an optionaltransformation in between.

The CopyMagnet has utility for making ProcPtSurfs, similar to the use of CopyBeadsand CopyRings for the other Proc entities. That is, by use of a single AbsMagnet andCopyMagnets slaved to it, you can easily move the construction to various u,vpositions, verifying that the construction takes place as expected, or locating and“debugging” regions where the construction fails.

Sample file: COPYMAG1.MS2

New Entities: XYZ familyXYZBead, XYZMagnet and XYZRing are points embedded in a curve, surface orsnake respectively, and located by spatial coordinates rather than t, u and vparameter values.

The XYZ entities are very versatile; they combine “absolute” and “relative” versionsin a single entity, also “absolute frame” and “relative frame” versions. Each also hasa type attribute that selects either one of the three possible coordinates (for XYZBeads and Rings), or one of three coordinate pairs (for XYZ Magnets), on which theentity is based.

It is important to realize that all the XYZ entities involve iterative solution searchesquite similar to the intersections performed by IntBead, IntMagnet, etc. Thus it isfairly easy, either on purpose or by accident, to pose a problem which has nosolution, or two or more possible solutions, or which will fail to converge from a badstarting value. Thus these entities have all the liabilities of the other intersectionentities, and care always needs to be taken in their application. In particular, they arefar less robust than the AbsBead, RelBead, AbsMagnet, etc..

Page 23: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Entities: XYZ family

MultiSurf What’s New in MultiSurf 4.7 • 19

XYZBead, XYZRingThe XYZBead and XYZRing are very similar to one another. As with other similarlynamed pairs of beads and rings, the only difference is that an XYZRing, residing on asnake, also marks a position on the snake’s host surface, and so it can serve in anyrole where a magnet is needed. If the support is a snake, we would always use a ringrather than a bead; the choice is that simple.

The characteristic data for an XYZBead is:

Type (1 to 3)Curve or beadFramePointLocation

Type determines whether you are making the X, Y or Z variety:

type-1 locates the bead at an X (or x) position;type-2 locates the bead at a Y (or y) position;type-3 locates the bead at a Z (or z) position.

Curve or bead designates the host curve for the XYZBead. If a bead is used here, it alsoprovides a starting location for the iterative solution. Unless there is clearly only onesolution (considering also the extension of the curve beyond the 0 to 1 nominalparameter range), it is always preferable to specify a bead that is somewhere in theneighborhood of the intended intersection. If you just specify the curve, the t = 0.5position on the curve will be used as a starting value for the XYZBead; if the actualintersection is far from t = 0.5, the XYZBead may fail to converge, or go off in thewrong direction.

Frame specifies the coordinate frame in which to measure Location. The default frame‘*’ is the global coordinate system, in which case the coordinate used is just theglobal X, Y or Z. If you choose to measure in another Frame not aligned with theglobal coordinates, the Location will be a frame coordinate, x, y or z.

Point is an optional reference point. If you choose the default point ‘*’, the Locationwill be measured from the origin of Frame. This creates the “absolute” variety ofXYZBead. If you choose another point for Point, the Location will be an offset fromthat Point. This makes the “relative” variety of XYZBead.

Location is the coordinate offset.

Example: Suppose you have a space curve that represents the sheerline of a yacht,and you need to locate a point ‘e1’ on it at X = 8.45 ft. The simplest way to do thisnow is to make an XYZBead, type-1, using ‘*’ for both Frame and Point, and 8.45 forLocation. Suppose you need to locate another point ‘e2’ on the sheerline exactly 1 footforward of ‘e1’ (in the X direction). The simplest way to do this is another type-1XYZBead, using ‘*’ for Frame, ‘e1’ for Point, and Location = -1.

If the sheerline in this example were an EdgeSnake on the hull surface, then it wouldbe natural to make two XYZRings rather than XYZBeads. The rings could serve aslocations on the hull surface, rather than just along the sheer.

Sample files: XYZBEAD1.MS2, XYZRING1.MS2

Page 24: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Entities: XYZ family

20 • What’s New in MultiSurf 4.7 March 2002

XYZMagnetThe characteristic data for an XYZMagnet is:

Type (1 to 3)Surface or magnetFramePointLocation1, Location 2

Type determines whether you are making the YZ, ZX, or XY variety

Type-1 locates the magnet by its Y and Z locationsType-2 locates the magnet by its Z and X locationsType-3 locates the magnet by its X and Y locations.

Note these designations are based on an “odd-man-out” rule:

Type-1 is the one that doesn’t use XType-2 is the one that doesn’t use YType-3 is the one that doesn’t use Z

Surface or magnet designates the host surface for the XYZMagnet. If a magnet is usedhere, it also provides a starting location for the iterative solution. Unless there isclearly only one solution (considering also the extension of the surface beyond the 0to 1 nominal parameter range), it is always preferable to specify a magnet that issomewhere in the neighborhood of the intended intersection. If you just specify thesurface, the u = 0.5, v = 0.5 position on the surface will be used as a starting value forthe XYZMagnet. If the true intersection is far from 0.5, 0.5, the XYZMagnet may failto converge, or may go to an unexpected location on the surface extension.

Frame specifies the coordinate frame in which to measure X, Y or Z. The defaultframe ‘*’ is the global coordinate system, in which case the coordinates used are justthe global X, Y or Z. If you choose to measure offsets or location in another Frame notaligned with the global coordinates, Location1 and Location2 will be framecoordinates, x, y or z.

Point is an optional reference point. If you choose the default point ‘*’, the Locationswill be measured from the origin of Frame. This creates the “absolute” variety ofXYZMagnet. If you choose another point for Point, the Locations will be relative tothat Point. This makes the “relative” variety of XYZMagnet.

Location1, Location2 are the two coordinate offsets.

Example: Suppose you need to locate a point ‘m1’ on the deck surface, exactly 3.20 ft.from centerplane and 10.46 ft. aft of the forward reference station. The most directway to do that now is an XYZMagnet. Since X and Y are specified, the type has to be3. Use ‘*’ for both Frame and Point (coordinates measured in the global coordinatesystem), and 10.46 and 3.20 for the Locations. Suppose you need another point ‘m2’on the deck, exactly 2.25 ft. aft of ‘m1’ and the same distance from the centerplane.The simplest way to do this is an XYZMagnet, again type-3 since X and Y arespecified, with Frame = ‘*’, Point = ‘m1’, and Locations of 2.25 and 0.

Sample file: COPYMAG1.MS2

Page 25: What's New in MultiSurf.pdf

What’s New in MultiSurf • Other new entities

MultiSurf What’s New in MultiSurf 4.7 • 21

Other new entities

PolyGraphPolyGraph is a new addition to both the ‘Poly’ and ‘Graph’ families. It consists oftwo or more graphs strung together, and reparameterized to produce a single graphwith t parameter 0 to 1. As a member of the graph class, it has no color or visibility.Its characteristic data is very simple: a list of component graphs, accompanied withthe t parameter values where the PolyGraph transitions from one component graphto the next. This provides a way to construct more complex graphs than are possibleor convenient with BGraphs alone.

Example: Suppose you want to make a mast as a SweepSurf, with linear taperstarting at 53% of the tube length, and X and Y dimensions tapering down to 60% atthe truck. Make a BGraph ‘h1’, type-1 with values {1, 1} to represent the straightportion. Make another BGraph ‘h2’, type-1 with values {1, 0.60} to represent thetaper. Assemble ‘h1’ and ‘h2’ into a PolyGraph ‘h3’, with transition t values of {0.53,1.0}.

Example: suppose you need a graph that is four cycles of a sine wave. A type-3BGraph with values {0, 0.775, 1.640, -1.640, -0.775, 0} makes a pretty respectablesingle sine wave cycle. So, make this BGraph and call it ‘1cycle’.

Make a PolyGraph ‘4cycle’ with components { ‘1cycle’, ‘1cycle’, ‘1cycle’, ‘1cycle’ }and transition values of { 0.25, 0.50, 0.75, 1.0}

Page 26: What's New in MultiSurf.pdf

What’s New in MultiSurf • Other new entities

22 • What’s New in MultiSurf 4.7 March 2002

In most situations, a PolyGraph should be continuous, that is, the component graphsshould match in value at the junctions. (Otherwise curves and surfaces made fromthem could have discontinuities and tears.) However, this condition is not checkedor enforced. In the ‘mast_taper’ example above, the graph is continuous because thefirst value of ‘h2’ is the same as the last value of ‘h1’. In the ‘4cycle’ example, thegraph is continuous because all 4 component graphs have 0 values at both ends.

Sample file: 4CYCLE.MS2

RPYFrame“RPY” stands for “roll, pitch, yaw”, the three standard angles for describing theinstantaneous attitude of a ship, and by extension, other vehicles. The characteristicdata for an RPYFrame is similar, with one exception, to that for an EulerFrame: itincludes a point where the RPYFrame is located; a parent frame (default = ‘*’, theglobal coordinate system), and 3 angles. However, the three angles are aboutdifferent axes and are applied in a different sequence, making the RPYFrame easierto apply in many situations.

An RPYFrame has one additional piece of data: an orientation attribute, which iseither 0 or 1. This attribute determines the RPYFrame’s handedness according to thefollowing rules: in a right-handed frame, if you point the index finger of your righthand along the x axis and your middle finger along the y axis, then your thumbpoints in the positive z direction; in a left-handed frame, substitute your left hand.

Note: To date in MultiSurf, frames have always been right-handed coordinatesystems. Enough applications have shown up for left-handed frames that wedecided to introduce this option with the RPYFrame. If you wish to work exclusivelywith right-handed frames, just leave the orientation attribute at 0 for all your frames.

Construction of an RPYFrame starts by making a parallel copy of the parent frame atthe location of point. Then the three rotations are applied as follows, in this order:

1 Roll -- rotation about the x axis of the RPYFrame2 Pitch -- rotation about the y axis of the RPYFrame3 Yaw -- rotation about the z axis of the RPYFrame.

The positive direction of any of these rotations is indicated by a right-hand or left-hand rule, depending on the handedness of the parent frame: if you grip any one ofthe axes with the appropriate hand, thumb along the axis in the positive direction,your fingers are curling in the direction of positive rotation.

Finally, if orientation is 1, the z axis is reversed. Thus the RPYFrame will have:

opposite “handedness” from its frame support when orientation is 1,the same “handedness” as its frame support when orientation is 0.

An EulerFrame inherits the handedness of its parent frame, consequently anEulerFrame made from a left-handed frame will be left-handed. Frames made fromthe Frame3 entity are always right-handed. (EulerFrame and Frame3 do not have theorientation parameter which could logically allow their handedness to be reversed.)

Sample files: RPY.MS2, RPY-JET.MS2

Page 27: What's New in MultiSurf.pdf

What’s New in MultiSurf • Animation dialog

MultiSurf What’s New in MultiSurf 4.7 • 23

Note: EulerFrames have been broken throughout the life of MultiSurf 4.5. That is,EulerFrames did not apply the second and third rotations correctly, as specified inthe documentation; instead, because of a programming error, they do somethingdifferent, and not just a little bit different. This is witnessed by the fact that whenyou open sample file FRAME2.MS2, in MultiSurf 4.5, frames ‘F2’, ‘F3’ and ‘F4’ don’tlook like the picture in the manual (p. 6-84). If you have a model that utilizes anEulerFrame, it is likely to open differently in MultiSurf 4.7, probably with errors,because the corrected EulerFrame has a different orientation. (If you suspect that amodel uses an EulerFrame, but aren’t sure, open Edit/Model File and search forEulerFrame.) If you experience this problem, you should [email protected]. We have a fairly simple procedure for dealing with thesituation, and should be able to quickly get you back on an even keel.

PolySnake2PolySnake2 is a “balanced” PolySnake, analogous to PolyCurve2. Its supports arejust a list of snakes (in the proper sequence for assembly). MultiSurf computes andassigns transition t parameter values such that the velocity of the resultingPolySnake2 is continuous at each junction. This generally produces a snake that ismuch more easily fitted with accurate NURBS approximations - the same basicadvantage as a PolyCurve2 over a PolyCurve.

Animation dialogMultiSurf 4.7 has a new capability for displaying animated models. This is based onthe relational structure of models, and the “smart object” concepts of relationalgeometry. In a MultiSurf model, each object knows what its job is, and is aware ofany relationships it has to other objects. When any object changes, it notifies all of itsdescendants that they are out of date. When any object receives notification that it’sout of date, it knows how to recalculate and redisplay itself, and will do soautomatically. The relational structure of the model ensures that the updates aredone in the appropriate top-down sequence to efficiently reconstruct a fullyconsistent model. When the model is not too complex, all this updating andredisplay can take place in a fraction of a second -- fast enough to allow continuousdisplay of a dynamically updating model.

An animated model is constructed so its configuration ultimately depends on justone or a few AbsBeads or AbsRings, and will transition or “morph” through acontinuous sequence of configurations as these beads or rings travel through their tparameter spaces from 0 to 1. Then in order to animate the model, all we have to dois to automate the linear motions of these few beads and rings in t, and everythingelse will follow.

A preliminary version of animation capability has existed in the Animate commandsince version 4.0. The enhancements in MultiSurf 4.7 include:

A dialog to set up the animation parametersSupport of multiple periods, allowing more complex motionsStorage of animation parameters in the model fileContinuous animation, Stop button to terminate

Page 28: What's New in MultiSurf.pdf

What’s New in MultiSurf • Animation dialog

24 • What’s New in MultiSurf 4.7 March 2002

Tools/Animation/Setup dialog

In this dialog we get to name from 1 to 5 AbsBeads or AbsRings that drive ananimated model. Each bead or ring has a corresponding period. They can have thesame or different periods; multiple periods generally result in more complex andinteresting motions. A period of 0 is interpreted as “no motion”; any bead with a 0period stays put at its prescribed t position throughout. OK starts the animation.

Tools/Animation/Go is a shortcut to restart the animation without passing throughthe setup dialog. This option is grayed out until animation setup has been performedat least once in this model and session.

Stop Button. When animation is started through either the setup dialog or “Go” orthe Animate command, a button labeled “Stop” will appear in the upper left cornerof the screen, just below File on the top-level menu. Animation will proceed until theStop button is clicked. All beads and rings are then returned to their nominalpositions.

Animation information stored in the model fileWhen you click OK in the Animation/Setup dialog, a “Postline” is written at the endof the model file (after the “EndModel” line), containing the setup information. If anAnimate Postline exists in the model file prior to the OK of an Animation/Setupdialog, that Postline will be replaced by the new information. If you Save the filewith this information attached, then whenever the model is opened again, thePostline information will be used to initialize the Animation Setup dialog. Forexample the Postline for the above animation setup would read: “Animate go1 16.00go2 4.00”. Note that even if this information exists in the model file, when themodel file is closed and reopened you must then open and OK the Animation Setupdialog before the Tools/Animation/Go menu choice will be enabled.

Page 29: What's New in MultiSurf.pdf

What’s New in MultiSurf • Animation dialog

MultiSurf What’s New in MultiSurf 4.7 • 25

Change in Animate commandThe syntax of the Animate command has been changed to support multiple periodsand to avoid the need to select objects before starting the animation. In fact, the newcommand syntax is exactly the same as the Postline:

Animate bead/ring1 period1 [ bead/ring 2 period2 [ ….] ]

Other actions during animationMultiSurf 4.7 will respond to many menu choices and commands during animation.For example, you can change the viewing parameters using all the normal viewcontrols; you can select objects and edit them; you can combine animation with theSpin command. While a dialog is active, the animation will be suspended, but it willresume after the dialog is closed.

The simplest example of animation is uniform motion along a straight path. Make astraight line ‘l0’ to represent the path, and a bead ‘go’ on that line. Animate ‘go’ witha period of, say 5 seconds. Then the bead will slide along the line at a uniform rate,completing the length of the line in 5 seconds. When it gets to the t = 1 end of theline, it jumps back to t = 0 and repeats.

To make a moving object, say a boat, that is “harnessed to” this moving bead thereare at least two possibilities:

1 Build the boat from RelPoints, all relative to ‘go’2 Have a stationary boat somewhere, probably on a turned-off layer, and make the

moving boat from CopySurfs which use ‘go’ for their Frame1 support.

(The second approach is more flexible and is recommended. An example of this canbe seen in pitchpole.ms2, the sample model referenced in the previous section onCopyBeads and CopyRings).

For accelerated motion along a line, just relabel the line. (Sample file DRIP.MS2.) Formotion along a curve, put ‘go’ on a curve rather than a line. To make the boat “steer”itself along the curve, use a Frame3 made from ‘go’, a TanPoint made from ‘go’ and aRelPoint relative to ‘go’, with a Z offset. (Sample files SLALOM.MS2, GLIDER.MS2,TACK.MS2.)

Uniform rotary motions are easy to make by putting the driving bead ‘go’ on acomplete circle - for example, a type-6 Arc, or a 0-pitch Helix. The bead just goesround and round the circle and can drive all kinds of machinery. PISTONS.MS2,SWIM.MS2, SWIM1.MS2 and FLUTTER.MS2 are good examples of this.

Use multiple periods when you have two or more things going on in the animationthat aren’t synchronized in their timing. For example, SOLAR.MS2 has a planet in a16-second orbit around its primary, simultaneously rotating with a 4-second period.

Page 30: What's New in MultiSurf.pdf

What’s New in MultiSurf • Create/Edit Dialog enhancements

26 • What’s New in MultiSurf 4.7 March 2002

Create/Edit Dialog enhancements

1 Full names. The Create/Edit dialog now uses full names, (i.e. entity name plusobject name) in displaying the names of supports.

2 Auto size. The dialog and the list box listing the attributes available for editingresize themselves, so for most objects there is no need to scroll down to accessthem all.

3 Type dropdowns. For most entities that have types (Arc, EdgeSnake, BlendPoint,XYZBead, etc.) there is a dropdown for selecting type, with a short description ofthe distinctive characteristic of each type; for example the Arc types are shownas:

1. Start at pt1, through pt2, end at pt32. From pt1, with pt2 as center, to pt2-pt3 line3. Full circle from pt1, pt2 as center, in plane of pt34. Start at pt1 tangent to pt1-pt2 line, end at pt35. Start at pt1, end at pt3 tangent to pt2-pt3 line6. Semicircle from pt1, pt2 as center, in plane of pt3

and you can choose from this list to select the type.

ErrorView enhancements

Error Details windowThe error view has a window that reports additional useful diagnostic informationabout some object errors. For example, when a ProjSnake which has failed ishighlighted in the error view listbox, the Error Details window will display“Projection failed at t = XXX”, where XXX is the t parameter location where theproblem occurred. With this clue, you might be able to go to that particular place (forexample, put a bead at that t position on the supporting curve) and understand whythe projection failed at that location.

As another example, if your TrimSurf gets error 317, “Snakes don’t connect up end-to-end to make closed loops”, the Error Details window might display “Snakes 4 and5 failed to join up; u,v-distance .00241 vs. tolerance .00010.” This reveals the locationof the problem, so you can investigate that particular junction and discover why itisn’t sufficiently accurate.

Option to exclude error 284’sWhen an object fails to evaluate for any reason, its descendants are all marked asbeing invalid - error code 284, “Object is in error because one of its supports is inerror”. When there are lots of such descendants, they congest the Error View andmake it hard to spot the “real” errors that are causing all the trouble.

Page 31: What's New in MultiSurf.pdf

What’s New in MultiSurf • Command Dialog enhancements, new commands

MultiSurf What’s New in MultiSurf 4.7 • 27

A new checkbox in the Error View dialog makes showing the objects with error 284optional.

Command Dialog enhancements, new commandsCommand Dropdown. The command dialog has a dropdown that lists the last 20commands that have been entered. You can click on any one of them to put it intothe command window, either for re-execution or as a base for typing in changes.

Spaces in paths and filenames. The command window was previously unable tohandle path names and file names with spaces. Now you can use double quotesaround the path or file name to handle spaces. For example:

setpath “c:\temp\test space”

file.export3d.pat “demo 3A”

New commandsTo learn the full syntax and options for any command, use the command:

Help command

where command is the command you want to learn about. For example, “Helprenameobjects”, will display help information for the RenameObjects command.

RenameObjectsThis command is a facility for renaming a group of objects, giving them a sequentialset of names. For example, suppose you started a boat with 3 master curves ‘MC1’,‘MC2’, ‘MC3’, but then you found you needed to insert two more master curvesahead of ‘MC2’ and one behind - so now your master curves, from bow to stern, are‘MC1’, ‘MCA’, ‘c0’ (oops, forgot to give that one a name), ‘MC2’, ‘MCB’, and ‘MC3’.If you select them in this order and give the command:

RenameObjects MC 1

They will be renamed as ‘MC1’ to ‘MC6’, in order.

The first parameter is the base name; the second is the starting index. Of course, ifthe set of names you are requesting would conflict with names of any unselectedobjects, you’ll get an error message instead, and no names will change.

NURBS-exactThis command reveals whether the selected curve, snake or surface is recognized bythe program as being exactly representable as NURBS, and treated as such duringNBS and IGES export. Objects which are not recognized as NURBS-exact are subjectto approximation on export, see “IGES and NBS Export” on page 4.

CurrentLayerThis command allows changing the current layer setting through the commandinterface. Since a handy graphic interface (Layer Settings dialog) exists for doing this,the command is not particularly useful for interactive use, but it is quite useful incommand scripts that create multiple objects.

Page 32: What's New in MultiSurf.pdf

What’s New in MultiSurf • Command Dialog enhancements, new commands

28 • What’s New in MultiSurf 4.7 March 2002

WarningsThis command scans all objects in the model, looking for a certain set of modelingflaws that are not trapped as errors, but which occasionally cause trouble for users. Ifany problems are detected, they are reported in a .TXT file which can be opened inNotepad. See “Model Warnings” on page 34.

DXFoutThis command provides an alternative DXF export facility, which optionally writeslayer information into the DXF file. The command has a kind parameter that specifies4 alternatives for the treatment of layers:

kind = 0: No layer information is output; by default all DXF objects are put on Layer0

kind = 1: DXF objects are on the same layers 0 to 255 as in the MultiSurf modelkind = 2: Each DXF object is on its own layer, using the object name as the layer namekind = 3: Each object is on its own layer, and contour objects are further broken down

into one layer per cut, named for example “stations_3_X=5.26”.

DXFinThis command provides an alternative DXF import facility, however, werecommend that you use the File/Import/DXF menu option which offers moreconvenience and has some advantages over the command method. See “DXFImport” on page 8 and the summary below.

If you use DXFin, you must first use the SetPath command, (e.g. SetPathc:\MsurfWin\Prj027) to point to the folder containing the DXF file.

Both File/Import/DXF and the DXFin command have these advantages over the oldDXF2MSF utility:

1 They do not require you to use an MS-DOS window, move files around betweenfolders, etc.

2 They accept DXF files conforming with AutoCAD Release 12, 13, 14 and 2000.3 They allow you to import DXF data into any existing model, or an empty model.4 They allow you to specify a layer for the imported objects.5 Units will be converted, if the DXF and MultiSurf model have different units.6 There is an option to create FrameAbsPts rather than AbsPoints, resulting in

movable and relocatable geometry.

File/Import/DXF has these additional advantages over the DXFin command:

1 You can set “Point merging tolerance”.2 You can specify an insert frame, to change position or orientation.3 Allows you the option of preserving ACAD colors.

TempCopyThis command provides a way to make an in-place, static copy of an object you areabout to change, so that as you change it, you can compare its changed positionand/or shape with the original. Select one or more objects and give the TempCopycommand. You can specify a color for the copy; for example: “tempcopy 12” createsa light red copy (the default color is 7, light gray).

Page 33: What's New in MultiSurf.pdf

What’s New in MultiSurf • View/Set View options

MultiSurf What’s New in MultiSurf 4.7 • 29

The result of TempCopy is simply to create a temporary .3DA file from the tabulateddata for the object, and then a Wireframe object based on that 3DA file. Thewireframe can contain copies of any visible objects except point entities. (For a“TempCopy” of any point entity, just select the point and create an AbsPoint.)

You can select and delete the TempCopy objects at any time. Their names all startwith ‘temp_’, so you can easily select them by name. They are automatically deletedfrom the model during File/Save.

If a TempCopy Wireframe object somehow escapes getting deleted when you closethe model, you’ll get a “File not found” error on that object the next time you openthe model. You can just select and delete the Wireframe object at that time.

View/Set View optionsWhile working in wireframe view there is sometimes a need to set the viewparameters so the viewing direction is either normal (perpendicular) to, or parallelto, some geometric element. For example, suppose you have constructed a windowon a flat cabin surface that is not parallel to any of the coordinate planes. In order toextract a CAD drawing of the window outline for manufacturing, you want to set aviewing direction normal to the plane of the cabin side surface.

Two new options on the View menu provide this capability.

View/Set View/Normal To allows setting the view “normal to” a variety of selectedobjects:

• A Plane• Any three points (“normal to” means normal to the plane of the three points)• A Frame (normal to any of the 3 coordinate planes of a Frame)• A Magnet or Ring ( “normal to” means normal to the host surface, at the location

of the magnet or ring)• A Curve (with the exception of a Line) or Snake that is at least approximately

planar (“normal to” means normal to the plane of the curve or snake)• A Surface that is at least approximately planar (“normal to” means normal to a

plane that is least-squares fit to the tabulation of the surface.)

View/Set View/Along allows setting the view “along” a variety of selected objects:

• A Line• Any two points (“along” means along the line connecting them)• A Plane (along some direction parallel to the plane)• Bead or Ring (“along” means along the tangent to the supporting curve or snake,

at the location of the bead or ring)• A Frame (along any of its 3 axes)

Page 34: What's New in MultiSurf.pdf

What’s New in MultiSurf • Select/By Name dialog enhancements

30 • What’s New in MultiSurf 4.7 March 2002

Select/By Name dialog enhancementsSelect/By Name is a useful option for selecting an object or a set of objects when youknow their names. This dialog has had three enhancements:

1 “Ignore layers” checkbox. This new control allows selection of objects fromturned-off layers without changing the layer settings.

2 “Ignore filters” checkbox is disabled when picking supports. To maintain theintegrity of the model, it is essential that any supports selected be in the correctobject class. During selection of supports, appropriate filters are automaticallyactivated to ensure this.

3 Dialog retains its settings. When you return to the Select By Name dialog, thelist of names in the “Name(s)” field and the checkbox settings will be the same aswhen you last OK’d it. One useful application of this is as an easily restorableselection set. Suppose you have a particular set of surfaces that you need toexport several times, with geometry variations. You can list the export surfaces inthe Select By Name dialog; then when they are ready to export, just Select/ByName and OK.

Smart cursor enhancements“Smart cursor” is shorthand for the “lowest dimensionality filter” explained onpages 3:10 and 7:24 of the 4.0 manuals. This feature has been enhanced to furtherreduce the number of situations where you need to use filters in order to select aparticular object or set of objects.

Select Object dialog lists all choices. The Select Object dialog that pops up when thecombination of cursor position and filter settings results in an “ambiguous” selectionwill now contain all objects that pass the current filter settings, rather than just thoseof the lowest dimensionality class. This dialog generally appears when there are twoor more objects in the lowest dimensionality class within the active area of thecursor.

Example: Suppose that the cursor surrounds 2 points, and parts of 2 curves and asurface. The Select Object dialog will contain all 5 objects. The points will be listedfirst.

Degenerate curve treated as a point. A “degenerate” curve (or snake) is one that hasno arc length; the entire curve is all at the same point. Sometimes this results from amistake in selecting supports -- for example, selecting the same point twice, insteadof two different points, when creating a Line. In other situations it’s deliberate – forexample, the type-1 EdgeSnake on the deck surface of 2CABINS.MS2, which isrequired if you want to make a TrimSurf from the part of the deck outside the cabin.Selection of a degenerate curve usually required turning off the “points” filter,because any point at the same location would take precedence. MultiSurf 4.7recognizes the degeneracy, and classifies the degenerate curve in the “points”category for purposes of selection.

Page 35: What's New in MultiSurf.pdf

What’s New in MultiSurf • Tools/Special/Freeze Fit

MultiSurf What’s New in MultiSurf 4.7 • 31

Tools/Special/Freeze Fit[Available when the selection set contains exactly one object from the following listof entities:

BFitCurve NUBFitCurve

BFitSnake NUBFitSnake

BFitSurf NUBFitSurf

The common feature of these entities is that they all embody curve or surface fittingoperations, using either uniform or non-uniform B-spline math.]

Tools /Special/Freeze Fit provides access to the functionality that has been availablethrough the “BFreeze” command. It accesses the curve-fit or surface-fit results fromthe fitted object, creating free-standing geometry (consisting of NURBS curves,snakes and/or surfaces, and the point objects needed to support them) thatduplicates the fitted curve or surface. The term “freeze” implies that a supportrelationship is broken: the “frozen” curve or surface and its generated supports donot depend on the fitted curve or surface or their supports.

There are two Freeze Fit dialogs with slightly different controls, for freezing curvesand snakes, or surfaces. Here is the dialog for freezing a fitted surface:

The dialog caption reflects the selected object on which the Freeze operation isperformed. (It is important to realize that this object is totally unaffected by theFreeze operation; we read its data, but do not change it in any way.)

Page 36: What's New in MultiSurf.pdf

What’s New in MultiSurf • Tools/Special/Freeze Fit

32 • What’s New in MultiSurf 4.7 March 2002

The upper area of the dialog reports the characteristics of the selected fitted curve orsurface object: the basis object, the spline types and number of control points used,and the goodness-of-fit statistics. (This is the same information available fromTools/Clearance with a BFit or NUBFit object selected.)

The “Name” window, along with the “Index base” buttons, allows specification ofthe group of names to be used for the generated objects. A qualified root name issuggested when the dialog opens. “Qualified” means that this name is available forthe principal (curve, snake or surface) object to be generated, plus all derived namesneeded for supporting curves and points are also available. In the above example,the NURBSurf will be named ‘A’, and its control points will be named ‘A1_1’ to‘A7_17’.

The “Result” radio buttons allow some control over the composition of thegenerated set of objects, when freezing a surface. The first choice, producing a BSurf(from a BFitSurf) or a NURBSurf (from a NUBFitSurf) is always available. The othertwo choices, producing BLoftSurfs with BCurve or NURBCurve master curves, willbe available only if the fit uses uniform knots in the v or u direction respectively. (Inthe above case, the first BLoftSurf choice is grayed out, because the fitted surface isnon-uniform in the v direction.) These three choices have exactly the same accuracy;in each case the resulting “frozen” surface duplicates the fitted surface exactly.

Generally, if the resulting surface is to be used in a MultiSurf model, the BLoftSurfchoices will provide more manageable geometry. The BLoftSurf is supported by amoderate number of master curves, each of which is supported by a moderatenumber of control points; this 2-tiered structure is much more understandable thanthe mass of control points that support a BSurf or NURBSurf.

Note that in the second BLoftSurf alternative, the u,v parameters are exchangedbetween the basis and frozen surfaces. This will cause a problem if your intention isto Edit/Replace the basis surface with the frozen BLoftSurf, and the basis surfacehosts any magnets or snakes.

The “Use existing points” checkbox, when checked, allows the generated curve orsurface to utilize any existing point that is within a small tolerance of the locationrequired for a generated point, rather than generating a new point essentially on topof the old one. Checking “Using existing points” will generally result in a morerelational model. For example, if you have two surfaces that adjoin along an edge,and you approximate each with a BFitSurf or NUBFitSurf such that the two fittedsurfaces have the same type, the same number of control points and the same knotsalong the shared edge, the second surface frozen will use the edge control pointsgenerated during freezing of the first surface. This stitches the two surface edgestogether in a durable fashion. On the other hand, if you want the freezing to generatethe full complement of control points, independent of existing geometry, uncheckthis box.

The “Index base” choice selects the starting index for numbering generated curvesand control points. If there will be 8 control points for a frozen curve named ‘B’, youcan have them numbered ‘B0’ to ‘B7’ (base 0) or ‘B1’ to ‘B8’ (base 1).

When freezing a fitted curve or surface, all generated points are AbsPoints. Whenfreezing a fitted snake, all generated points are AbsMagnets on the host surface of

Page 37: What's New in MultiSurf.pdf

What’s New in MultiSurf • Tools/Special/Freeze Fit

MultiSurf What’s New in MultiSurf 4.7 • 33

the snake. Generated curves are either BCurves (if the curve or surface has uniformknots in this direction) or NURBCurves (if the curve or surface is non-uniform in thisdirection). One or two KnotLists may also be generated (one for each non-uniformdirection). All generated objects are placed on the current layer.

Applications of Tools/Special/Freeze FitSimplifying a “heavy” NURBS surfaceFrequently surfaces that arrive in IGES files have a very large number of controlpoints. This makes them slow to load and edit, and tedious or impossible to modify.Frequently you can obtain a very close BFit or NUBFit approximation with a modestnumber of control points, and then Freeze Fit to replace the heavy surface with amuch lighter and more easily editable one.

Preparing geometry for IGES exportBFit and NUBFit approximations prior to IGES export allow management of theapproximations on a surface-by surface basis. Freeze Fit can be part of this process.However, note it is usually just as effective to export the BFit or NUBFit surfacedirectly - you get exactly the same results in the IGES file.

Access to NUBFit knotsThe knotlists used in a NUBFit object are stored internally and not directlyaccessible. Freeze Fit will turn them into KnotList objects, which can be used inNUBFitting adjacent surfaces to achieve accurate joins in the exported IGES. If allyou want from a Freeze Fit operation is the KnotLists, you can easily select anddelete the other generated objects.

Replacing an expensive intersection or procedural objectIntSnakes generated by surface-surface intersections, and Procedural objectsinvolving intersections and projections, are computationally intensive and maymake your model slow and unresponsive. They are also vulnerable to radicalfailures caused by possibly small geometry changes. When the supporting geometryis in a final configuration, consider replacing that expensive snake or surface with alight, robust BSnake or NURBSurf, generated by fitting followed by Freeze Fit.

Breaking a connection between parts of a modelSuppose you have a complex hull and want to build a deck and superstructure on it.The hull is already under construction and isn’t going to change. A natural first stepis to make a snake on the hull for the deck edge, then everything beyond depends onthat snake. But that means the whole complex hull model has to be part of yoursuperstructure model. If you fit and freeze that snake as a curve, then build onwardfrom the curve, you can isolated the superstructure in a separate model.

Breaking dependence on external filesTabCurves and TabSurfs supported by 3DA files are a good way to import curveand surface data, for example from a DXF file (via File>Import>DXF). But if youbuild directly on the TabCurves and TabSurfs, your model will always depend onthose files. If you fit and freeze the TabCurves and TabSurfs, you can delete themfrom your model and build on the standalone curves and surfaces that result.

Page 38: What's New in MultiSurf.pdf

What’s New in MultiSurf • History messages

34 • What’s New in MultiSurf 4.7 March 2002

Moreover, you will be able to edit and modify the “frozen” objects, whereas the Tabobjects can only be modified by changing the data in their files.

History messagesHistory View messages have been added for the following actions:

Dragging a pointEdit/ReplaceIGES ImportTools/Special/AutoCurveTools/Special/BCurveFitTools/Special/Relax Control PointTools/Special/Similar labelTools/Special/Arc-length relabelTools/Special/Freeze Fit

PLX export of TrimSurfsThe PLX file is the connection with MultiSurf’s MSPlex add-on, which providesflattening of compound curved (or developable) surfaces. In the marine field,MSPlex is used primarily for generating NC cutting profiles and forminginstructions for compound plating on round-bottom hulls. Exporting the PLX file isdone through the File.Export3D.PLX command. MSPlex accesses this commandthrough OLE automation.

In MultiSurf 4.x, TrimSurfs were excluded from PLX export. (Actually, you couldexport a TrimSurf, but what got expanded was the whole base surface rather thanthe trimmed portion.) In MultiSurf 4.7, the File.Export3D.PLX command has beenupgraded to support TrimSurfs. This provides great new flexibility for MSPlex users.

Note, however, this limitation: While TrimSurfs in general can have any number ofholes, TrimSurfs for flattening are not permitted to have holes. Here is one way todeal with this; suppose you have a TrimSurf ‘ts1’ with one interior boundary loop:

1 Make a second TrimSurf ‘ts2’ that has the outer boundary of ‘ts1’ (use the samebase surface and the same trimming snakes);

2 Mark the interior trimming boundaries by making CopySnakes on ‘ts2’;3 Export ‘ts2’ for flattening. (Cut the hole after forming.)

Model WarningsThere is a small set of MultiSurf model defects that have been tolerated oroverlooked in past program versions, but which from time to time cause strangebehavior in models. Probably they should have been treated as errors from thebeginning. In MultiSurf 4.7 there is a mechanism for alerting the user to suchproblems. In the great majority of cases they represent modeling errors and themodel will benefit from their being fixed. Some of these conditions may be treated aserrors in future program versions.

Page 39: What's New in MultiSurf.pdf

What’s New in MultiSurf • Model Warnings

MultiSurf What’s New in MultiSurf 4.7 • 35

If any such “warning conditions” are detected during File/Open, a message box willappear, as follows:

If you respond “Yes”, Notepad will open and display the file. The file will be named%msfwarn.txt and will be located in the same folder as the MS2 file being opened. Inthis case the complete contents of the file were as follows:

08-Sep-2000 17:53:36 Warning conditions opening model fileC:\MSurfDev\Mdiview\warnings.MS2

1. Relabel v0 is not monotonic increasing (at t = 0.340). 2. PolyCurve2 c0 has a gap of 1.980 between components 2 and 3

This example displays two of the three warnings currently implemented:

1 Relabel non-monotonic. A Relabel should be a monotonic increasing function ofits parameter t (i.e., it should not go downhill). A non-monotonic relabel causespart of the curve to be traversed three or more times as the t parameter runs from0 to 1. Dragging of beads behaves strangely; surfaces made from curves withsuch relabels have effectively folds or pleats that cause magnets to behavestrangely. Most of the cases we have seen were evidently created bySimilarLabel; this has been corrected.

Such a problem relabel can be selected By Name and displayed with Graphprofile. If should be fairly apparent which values need to be adjusted to removethe problem. (A Relabel with monotonic increasing values will always be amonotonic increasing function.)

2 Disconnected PolyCurve (or PolySnake). There is no requirement that thecomponents of a PolyCurve actually join. We have seen many cases where onecomponent was just inadvertently left out. This is often not apparent in thewireframe view, because the display “jumps” from one component to the other,making it look as if they are in fact connected.

3 Disconnected BlendSurf or SubSurf. There is no requirement that the fourboundary curves of a BlendSurf, or the four boundary snakes of a SubSurf,actually connect at the four corners. If they don’t, then the BlendSurf or SubSurfdoes not actually respect all its boundaries

The automatic survey of model warnings that takes place during File/Open isrestricted to visible objects on active layers, so as not to impact File/Open time. Thesame model warnings survey capability is available through the “Warnings”

Page 40: What's New in MultiSurf.pdf

What’s New in MultiSurf • Edit/Hide/Unselected

36 • What’s New in MultiSurf 4.7 March 2002

command. This performs a comprehensive survey, applying the same tests to allobjects in the model; therefore it may take considerably longer.

Edit/Hide/UnselectedThis is a new option on the edit menu. It hides any currently visible objects that arenot in the selection set. This is handy for reducing the clutter when evaluating ormodifying the shape, or investigating the behavior of a specific object. For example,select a BCurve; Select/Supports/First generation; then Edit/Hide/Unselected. Youare left with just that one curve and its control points visible.

DXF2MSF enhancementsThe DXF2MSF utility has been enhanced in several ways; in particular, to processAutoCAD 13, 14 and 2000 DXF files, and to write an .MS2 file instead of .MSF.However, the File/Import/DXF menu option offers more convenience andadditional choices; see “DXF Import” on page 8.

IGES Export of Points and CurvesFile/Export3D/IGES now exports points, curves and snakes, as well as surfaces.Points of all kinds are exported as Type 116. Curves and snakes which are exactlyrepresentable by NURBS are exported without approximation; other curves andsnakes are approximated (in 3-D) as non-uniform cubic B-splines (Type 128).

Double-click editing of draggable points disabledIn the past, double-clicking on an object in the wireframe view would bring up itsEdit dialog. In the case of draggable points this feature was often a nuisance, so ithas been discontinued. The problem arose when selecting a point for dragging, thenpressing the left button to commence dragging. Unless there was a delay of abouthalf a second between these button actions, Windows would interpret them togetheras a double-click, so instead of commencing dragging you would be interrupted bythe Edit dialog.

Double-click editing still works for all entities except draggable points. To edit aselected draggable point, you can use the key combination <alt-Enter>, or the menuchoice Edit/Attributes, or the corresponding toolbar button.

Scaling of points during Component/LoadThe File/Component/Load dialog contains an option to scale objects during thecomponent loading process. Previously, this feature had effect only on AbsPoints,RelPoints, and PolarRelPts. In MultiSurf 4.7, all point types are handled when thescaling is uniform (i.e., when scale factor is the same for all three directions). Whenscaling is not uniform, only AbsPoints, RelPoints, and PolarRelPts are scaled.

Page 41: What's New in MultiSurf.pdf

What’s New in MultiSurf • Transparency option in Render view

MultiSurf What’s New in MultiSurf 4.7 • 37

Transparency option in Render viewA new checkbox, “Transparent”, in Render Options dialog (from View/Renderwhen no Render view is open , and from View/Set Render Options when a Renderview is open), allows rendering surfaces and solids with a degree of transparency.They appear as translucent surfaces, so you can see through to what’s inside orbehind them. The degree of transparency (default 0.50) can be changed with theSetTransparency command, in a range from 0 to 1. When transparency is 0, the effectis the same as when Transparent checkbox is off. When transparency is 1, thesurfaces virtually disappear, only an extremely faint shadow of the model can beseen. Midrange values are often the most useful.

Page 42: What's New in MultiSurf.pdf

What’s New in MultiSurf • Improved accuracy

38 • What’s New in MultiSurf 4.8 March 2002

What’s New in MultiSurf 4.8

Improved accuracyThe biggest enhancements in MultiSurf 4.8 are “under the hood” -- a coordinated setof technical developments that provide large accuracy gains during “Fast”evaluation of geometry. Although the way geometry is specified in a MultiSurfmodel is essentially exact, for performance reasons we have had to accept evaluationmethods of somewhat limited accuracy - usually not much of a practical problem,and usually manageable by increasing and coordinating divisions -- but over theyears we’ve seen our share of troublesome accuracy problems. Accuracy issues arediscussed in the General Reference manual, p. 4-16, under the heading of “HowMuch Accuracy Is Enough?”

One effect of this improvement is that coordination of divisions is not nearly as largean issue as it was previously. For example, the QUILT.MS2 model (“Fairness ofCurves and Surfaces”, p. 4-27), which was included to illustrate adverse fairnesseffects of uncoordinated divisions, is no longer problematic - its curvaturedistribution now comes out just as smooth with its uncoordinated divisions as withthe divisions fixed.

Hermite interpolationIn previous versions of MultiSurf, “Fast” evaluation was based on linearinterpolation in stored tables for curves and surfaces. In MultiSurf 4.8, we haveimplemented two alternative methods for “Fast” evaluation: exact NURBS, andHermite interpolation. The choice of methods is performed automatically by theprogram.

For objects that are exactly representable by NURBS - many MultiSurf objects are -then NURBS math is used, providing a fast and extremely accurate evaluation.

For objects that are not exactly representable by NURBS - many MultiSurf objects arenot - we store a table of values and derivatives (at the density specified by divisionsx subdivisions x divisions multiplier), and then perform Hermite cubic interpolationin this table. For objects with the typical 8x4 default divisions, this procedure isroughly 1000 times more accurate than the linear interpolation method it replaces. Inaddition, the accuracy of Hermite interpolation increases much more rapidly withrespect to the number of divisions - proportional to the fourth power of thedivisions, rather than the square.

Page 43: What's New in MultiSurf.pdf

What’s New in MultiSurf • Breakpoints

MultiSurf What’s New in MultiSurf 4.8 • 39

BreakpointsA related accuracy development is the recognition and storage of breakpoints forcurves and snakes. MultiSurf 4.8 stores breakpoints for all types of curves andsnakes. Breakpoints are taken into account during evaluation, so curves neither “cutthe corners” at breakpoints, nor depend on carefully selected divisions, but insteadare evaluated with accuracy similar to the rest of the curve.

A degree-1 breakpoint is a place on a curve where the slope and/or velocity isdiscontinuous. For example, degree-1 breakpoints occur at each junction of aPolyCurve, unless the component curves happen to have the same direction andvelocity. Degree-1 breakpoints are typical at the control points of a type-1 BCurve orCCurve (i.e., a polyline).

Examples of degree-1 breakpoints: In BSPL1-3.MS2, ‘type-1’ has degree-1breakpoints at t = 0.25, 0.50, 0.75. In POLYCRV1.MS2, PolyCurve ‘midsection’ hasdegree-1 breakpoints at t = 0.40 and 0.60; although the component curves are tangentat the junctions, they have different velocities, so the breakpoints are degree-1.

A degree-2 breakpoint is a place on a curve where slope and velocity arecontinuous, but curvature is discontinuous. For example, a place where a line joins acircular arc with tangency is a breakpoint of degree 2 if the velocity is the same onthe line and arc. Degree-2 breakpoints are typical at the knots of a type-2 BCurve orCCurve.

Examples of degree-2 breakpoints: In BSPL1-3.MS2, ‘type-2’ has degree-2breakpoints at t = 1/3 and 2/3. In POLYCRV2.MS2, PolyCurve2 ‘midsection’ hasdegree-2 breakpoints at (approximately) t = 0.378401 and 0.526999. (These “odd-ball”numbers are just the result of the “balancing” calculation that enforces continuousvelocity across each breakpoint of a PolyCurve2.)

The Breakpoints command gives a window on the presence and location ofbreakpoints on curves and snakes. Select one curve or snake, open Window/Command, type the command “Breakpoints” (without the quotes), and hit OK. Themessage box will show up to ten breakpoints (the degree and t location). A text file“%brkpts.txt” is saved with the same information, but without the ten breakpointlimit.

BreaklinesBreaklines are to surfaces as breakpoints are to curves and snakes. A breakline is a u= constant or v = constant line on a surface where there is a discontinuity of slope,velocity or curvature. MultiSurf 4.8 recognizes and stores breaklines on all surfacetypes. Rather than cutting corners at a breakline, or relying on carefully selecteddivisions, we take breaklines fully into account in the Hermite surface interpolationscheme.

Breaklines have degrees, similar to breakpoints. A degree-1 breakline is adiscontinuity in slope (a crease or knuckle line) or velocity. A degree-2 breakline is adiscontinuity of curvature only.

Page 44: What's New in MultiSurf.pdf

What’s New in MultiSurf • Smooth wireframe display

40 • What’s New in MultiSurf 4.8 March 2002

Breaklines in surfaces are mostly inherited from their parent curves; for example, aCLoftSurf will have a u-breakline wherever any of its master curves has abreakpoint. For example, surface ‘hull’ in DEMO.MS2 has a single degree-2 breaklineat u = 0.50, inherited from the degree-2 breakpoint at t = 0.5 in each of its (type-2)master curves.

Example of degree-1 breaklines: surface ‘s0’ in DEFSWEEP_POLYCURVE2.MS2 hasfour degree-1 u-breaklines, at the locations of the four degree-2 breakpoints of itspath curve, PolyCurve2 ‘path’. (You might expect the breaklines to be degree-2,since the straight parts of the pipe are in fact tangent to the bends; but the velocity isnot continuous at these junctions, even though the path has degree-2 continuity.)

Example of degree-2 breaklines: BSURF.MS2 has a single degree-2 breakline at v =0.50, reflecting the fact that it is only type-2 in the v-direction (transverse).

Note that contours do not yet take breaklines into account; they are computed on auniformly-spaced table, and can still be seen “cutting corners” in the vicinity of adegree-1 breakline.

It is possible to have a knuckle line or crease that does not lie along a constant-u orconstant-v line. Such a line is not recognized as a breakline in MultiSurf 4.8. Forexample, open DEMO.MS2 and change the CLoftSurf ‘hull’ to type-1. This implies aknuckle line along MC2 at roughly v = 0.5, but the v is not constant, varying from0.512 to 0.444 as u varies from 0 to 1. (Turn on visibility 2 for the surface, the v =constant lines, to make this clear.) This knuckle is not recognized as a breakline. Inthe display of the surface, you can see that the knuckle appears rounded off. In thissituation it would be better to make the surface as a type-1 BLoftSurf, or twoRuledSurfs, to accurately represent the knuckle.

The Breakpoints command also displays the breaklines of surfaces. (Note, thecommand is still “breakpoints”, not “breaklines”.)

Smooth wireframe displayOne benefit of storing the derivative information of the Hermite table is that we candisplay the wireframe as cubic curves rather than polylines. In Settings/Preferences/ Program there is a checkbox labeled “Smooth wireframe” to select thisoption. For most models, this produces a much nicer wireframe view.

Bloops and spikes. During the transition to Hermite interpolation and breakpoints,there has been a small set of models where the “Smooth wireframe” display optionproduces anomalous results, ranging from small “bloops” to outrageous spikes.Most of these revealed program bugs, usually incorrect derivatives, which have beencorrected. We are very interested in seeing any models where the “Smoothwireframe” display appears inconsistent with the intended geometry. Meantime,switching “Smooth wireframe” off may correct the problem.

Page 45: What's New in MultiSurf.pdf

What’s New in MultiSurf • Breakage of existing models

MultiSurf What’s New in MultiSurf 4.8 • 41

Breakage of existing modelsInspired by the potential of heightened accuracy in general, we have tightened upsome accuracy requirements and introduced some new error checking for variousentities. This may cause “breakage” of some existing models; i.e., when the model isopened (or possibly later, when some turned-off layer is activated, or a hidden objectis displayed) one or more objects that were valid in a previous version of MultiSurfwill now be in error. Of course, any descendants of such an object will also get error284’s.

By far, the most common breakage we have seen is associated with the followingthree errors:

Error 435: Relabel values outside the range of 0 to 1.

This is a new requirement, to avoid some strange results that occurotherwise. Most of the Relabels that fail this test were evidently produced bythe Similar Label or Arc-Length Relabel tools. The FixRelabel command (seeunder “Commands” below) is an easy way to make repairs.

Error 319: PolyCurve or PolySnake components don’t join end-to-end.

This is a new requirement, to prevent degree-0 breakpoints or “jumps” at thesupposed junctions, and various weird behavior in surfaces derived fromsuch curves. We’ve been surprised how often this occurs – people just left outwhole pieces, and MultiSurf didn’t blink. Obviously, when the gap is large, aproper repair involves furnishing the missing piece.

“Error details” (in the Error View dialog) shows how large the gap is. Smallgaps can result from sloppy modeling, for example, using two beads that areonly fairly close together as endpoints for two components, when they coulduse the same bead. Errors will usually be easy to identify and repair byediting supports of the component curves or snakes.

Error 266: IntSnake failed to converge; several other IntSnake errors.

An entirely new calculation for IntSnake has been implemented, whichusually results in much more accurate and reliable intersections. However,there are some cases in which the new calculation fails, where the old one didnot.

If the location of the failure (reported in the “Error details” field in the ErrorView dialog) is at a “border point”, i.e. at a small negative t, or t slightlyabove 1 – then increasing divisions will often fix it. (In fact, this is worthtrying for any error 266.)

If you can’t get the IntSnake to work, try creating an IntSnake2 with the samesupports. This reverts to the older IntSnake calculation used in previousversions of MultiSurf.

Page 46: What's New in MultiSurf.pdf

What’s New in MultiSurf • Commands

42 • What’s New in MultiSurf 4.8 March 2002

Commands

Breakpoints commandDisplays information about the breakpoints of a curve or snake, or the breaklines ofa surface. (See above under Breakpoints and Breaklines.)

CreateCopies commandCreateCopies [colorvis [sup_no]]

With one “pattern object” plus N new supports selected, CreateCopies creates Nnew objects, each being a copy of the pattern object, but with one of the newsupports replacing a specified support in the pattern object.

colorvis takes two possible values, 0 or 1.

If colorvis = 0, (the default value), each copy takes its color,visibility and orientation from the pattern object.

If colorvis is 1, it takes these values from the new support object.

sup_no is a value from 0 to the pattern object’s total number of supports

If sup_no is positive, it specifies which one of the pattern object’ssupports will be replaced: 1 = first, 2 = second, etc.

If sup_no is 0, (the default value), the new support replaces thefirst support of the pattern object, but skipping over a leadingRelabel, if one is present.

For a pattern object with only one support, only that one support can be replaced.

Example: SAILBOAT.MS2 has 11 starboard-side surfaces. Suppose we want to create11 MirrSurfs on the port side. First make a MirrSurf (say ‘hull1’) from ‘hull’, reflectedin the predefined plane ‘*Y=0’. ‘hull1’ will be the pattern object; the other 10starboard-side surfaces (excluding ‘hull’) will be the new supports. Select ‘hull1’ andthe other 10 starboard-side surfaces (with ‘hull1’ first), go to Window/Command,and give the command:

CreateCopies 1

The other 12 MirrSurfs will be created. Because we used colorvis = 1, the MirrSurfcolors and visibilities will be taken from the support, not the pattern object.

Page 47: What's New in MultiSurf.pdf

What’s New in MultiSurf • Commands

MultiSurf What’s New in MultiSurf 4.8 • 43

CreateCopies works with any entity type that has supports. Here’s a list of entitytypes for which we’ve found CreateCopies especially useful:

Points Curves/Snakes Surfaces

CopyPoint BfitCurve BfitSurf

MirrorPoint CopyCurve CopySurf

OffsetPoint MirrCurve MirrSurf

ProjPoint OffsetCurve NUBFitSurf

RotatePoint ProjCurve OffsetSurf

TanPoint NUBFitCurve ProjSurf

AbsBead RotateCurve RotateSurf

ArcLenBead BfitSnake OffsetPlane

CopyBead CopySnake

IntBead EdgeSnake

XYZBead IntSnake

AbsMagnet NUBFitSnake

CopyMagnet ProjSnake

ProjMagnet ProjSnake2

XYZMagnet UVSnake

AbsRing

ArcLenRing

XYZRing

CreateCopies tutorial

Here’s a quick tutorial which demonstrates a common use for CreateCopies. In thisexample, the process to create a transom with TrimSurf is accelerated by usingCreateCopies.

1. Open model QuickTrim.ms2 from the MultiSurf Samples folder.2. Select the blue Ruled Surface 's5'.3. Zoom to selection or F104. Select the visible magenta Edge Snake 'snake2'.5. Ctrl-Select all the surfaces except 's4', which is the supporting surface of 'snake2'.

The selection set should look something like this:'snake2' (pattern object is first)'s3''s2''s1''s0''s5'

Page 48: What's New in MultiSurf.pdf

What’s New in MultiSurf • Commands

44 • What’s New in MultiSurf 4.8 March 2002

6. Go to Window/Command, type in "createcopies". (Don't worry, you don't have totype it in every time.) <OK>.

7. 5 new objects created. <OK>8. Select 'snake2' and Ctrl-Select the blue transom surface 's5' twice.9. Create ProjSnake2. The supports should be pre-selected. <OK>10. With the new ProjSnake2 in the selection set, Ctrl-Select the EdgeSnakes that you

just made with createcopies, on the remaining hull surfaces. (no need to selectthe EdgeSnake on the transom surface.)

11. Window/Command; "createcopies" is there <OK>12. 4 new objects created! <OK>13. Create an EdgeSnake on the transom surface at the centerline. (v=0 edge)14. Now you have all the supports needed to trim out the Transom. Select the 2

EdgeSnakes on the transom as well as the ProjSnake2s to create the TrimSurf.

FixRelabel commandFixRelabel

A Relabel object is really a simple form of a B-spline curve, whose "control points"are a series of t parameter values — numbers, rather than points. A “legal” Relabelhas t parameter values, starting with 0 and ending with 1, which are monotonicincreasing—the list of parameter values are a non-decreasing sequence (i.e. eachvalue is greater than or equal to the one before it). The FixRelabel command can beused to adjust the t values to make an “illegal” Relabel legal.

To use the command, select a single Relabel, open Window/Command and type:

FixRelabel <OK>.

As example, assume the original Relabel ‘rel’, has the t parameter list:

{0.0, 0.2, 0.3, 0.5, 0.4, 1.05, 1.0}

Using the FixRelabel command with rel selected would change rel’s parameter listto:

{0.0, 0.2, 0.3, 0.45, 0.45, 1.0, 1.0}.

Host commandHost

MultiSurf makes a lot of use of embedded points (beads, magnets, and rings) andembedded curves (snakes). Each embedded object has a unique host object, thehigher-dimensional object it's embedded in. You can identify an object's host byselecting the object, then Window/ Command and give the command Host. Forexample, select a magnet, type the command "host", click <Ok> and MultiSurf willdisplay the name of the surface that is host to the magnet. If the selected object is aring, you will learn both its host snake and its host surface.

Page 49: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Projected Snake Entity: ProjSnake2

MultiSurf What’s New in MultiSurf 4.8 • 45

Guests commandGuests

The converse relationship to "host" is "guests". To find what objects are embedded ina given surface, select the surface and give the command "guests" (similar procedurefor a curve or a snake).

SetPath commandSetPath drive:\path

Several commands operate by reading or writing files. Such commands have a filename as one of their parameters. In most cases, it is convenient to precede the use ofone of these commands by the SetPath command, which designates a fully-qualifieddirectory path (i.e. folder) to be used by subsequent file related commands.

For example, a user could open Window/Command, type the command

SetPath c:\msurfwin\samples

and then click OK. Following the use of this SetPath command, any other commandsusing files will use the designated folder. For example, the subsequent command

File.Open wingroot

will open the file WingRoot.ms2 that resides in the directory c:\msurfwin\samples.

New Projected Snake Entity: ProjSnake2This new entity extends the capability of ProjSnake, by adding the possibility ofspecifying a “draft angle”.

The characteristic data is as follows:

Relabel (As with any curve or snake, a way to change the parameterization)Curve = parent curveMagnet/Surface = designates the surface on which the ProjSnake2 will lieMirror/Surface = a plane, Line, point, or surface entityDraft angle (only active if Mirror/Surface is a plane) = draft angle in degrees; signspecifies whether to draft outward or inward

A ProjSnake2 is the projection of Curve onto a Surface. Each point of the curve isprojected along a straight line to locate the corresponding point on the ProjSnake2.The projection can be done using any valid type of Mirror/Surface:

When Mirror/Surface is a plane, with no draft, the projection lines are normal(perpendicular) to the plane. Note: If you want to specify a draft angle,Mirror/Surface must be a plane, and in this case the projection lines are at anangle, not normal to the plane.

When Mirror/Surface is a Line, the projection lines radiate from the axis line andare normal (perpendicular) to the Line.

When Mirror/Surface is a point, the projection lines radiate from the point.

Page 50: What's New in MultiSurf.pdf

What’s New in MultiSurf • New Plane Entity: OffsetPlane

46 • What’s New in MultiSurf 4.8 March 2002

When Mirror/Surface is a surface (it must be the same surface the ProjSnake2 is tolie on), the projection is along the local normal direction to Surface; each point ofthe ProjSnake2 will be at the foot of a line from the corresponding point on Curvedropped normally to the Surface (usually this is the closest point on the surface).

Magnet/Surface specifies the surface the ProjSnake2 will lie on. It can be either amagnet (including rings) or a surface:

When Magnet/Surface is a magnet or ring, it serves three purposes:

(1) It specifies which surface the ProjSnake2 is to lie on: the surface that is host toMagnet.

(2) In case of multiple intersections of the surface with the projection lines, theProjSnake2 will be made from the intersection whose t=0 end is nearest toMagnet.

(3) It provides a starting point for the search procedure MultiSurf uses to locatethe first point (t=0) of the ProjSnake2.

Whenever you create a ProjSnake2, we recommend you use a magnet or ring forMagnet/Surface, locating it reasonably near where the ProjSnake2 should begin.

When Magnet/Surface is a surface, it tells directly which surface the ProjSnake2 isto lie on. In case of multiple intersections of Surface with the projection lines, theProjSnake2 will be made from the intersection whose t=0 end is nearest to u=0.5,v=0.5. The search for an intersection for the t=0 end will begin at u=0.5, v=0.5.

relabel is used to relabel the snake. The program's default relabel ‘∗’ produces the"natural" labeling, in which the parameter t's distribution corresponds to the labelingof the basis curve.

DraftTo make a molded part easier to remove from a mold, you can use a ProjSnake2 witha draft angle as one of the parents for a tapered surface. The plane specified forMirror/Surface will be used as the neutral plane for the draft.

Draft angle is specified in degrees.

If the ProjSnake2 is drafted in the opposite direction from what you want, reversethe sign of the Draft angle.

New Plane Entity: OffsetPlaneThe characteristic data is:

Plane = Basis plane.Offset = Signed normal distance from Basis plane.

The Offset Plane is an infinite plane at constant offset value from its basis plane. Thepositive normal is in the same direction as the basis plane's positive normal. (If theOffset Plane comes out offset in the opposite direction from what you intend, reversethe sign of Offset.) A visible plane is displayed as a rectangle, sized slightly largerthan the rectangular box enclosing the current wireframe model. To create this

Page 51: What's New in MultiSurf.pdf

What’s New in MultiSurf • TrimSurf now has types 2 and 3

MultiSurf What’s New in MultiSurf 4.8 • 47

plane, pick the default plane that you want to be parallel to and then the offsetdistance from this plane.

TrimSurf now has types 2 and 3MultiSurf 4.8 has two new types (types 2 and 3 ) of Trimmed Surface. Previousversions of MultiSurf use Trimmed Surfaces that ignore the trimming loop divisionsfor triangulation (type 1). These types allow the triangulation of the TrimSurf to becoordinated with the divisions and/or subdivisions of the trimming loop snakes.Type 2 uses only divisions to control triangulation, type 3 uses divisions and sub-divisions for triangulation.

Triangulation is division of a TrimSurf into triangles for Render view displaypurposes, and some types of export (POV, PNL, UTP). The triangulation also playsan important role in flattening (expanding) surfaces using the MS-PLEX andFlattener utilities. Control of subdivision along TrimSurf edges enables thepossibility of constructing “watertight” junctions between the triangulations ofadjacent surfaces, important in some applications.

Trimmed Surfaces (type 2): Use Trimming Loop Divisions to TriangulateSurface EdgesOn Trimmed Surfaces, the division into triangles is controlled by a combination ofthe “No. triangles” attribute of the Trimmed Surface and the divisions of the parentbounding snakes. The bounding snake divisions control the triangles along the edgesof the Trimmed Surface (subdivisions have no effect). “No. triangles” controls thetriangles used to fill the interior of the surface.

You can see the triangles by turning on triangles in the “Visibility” attribute. Thegoal is to have approximately uniformly sized triangles (Fig. 1). If the triangles alongone or more edges are much smaller (Fig. 4) or larger (Fig. 3) than the triangles in theinterior, you’ll need to adjust the bounding snake divisions.

Fig. 1. Number of edge triangles okay. Fig. 2. Number of edge triangles also okay.

Fig. 3. Too few triangles along edges. Fig. 4. Too many triangles along edges.

Page 52: What's New in MultiSurf.pdf

What’s New in MultiSurf • Tools/Spin

48 • What’s New in MultiSurf 4.8 March 2002

Trimmed Surfaces (type 3): Use Trimming Loop Divisions x Subdivisions toTriangulate Surface EdgesA type-3 Trimmed Surface functions identically to the type-2 Trimmed Surface,except that the sub-divisions of the bounding snakes are included in the control ofthe triangulation.

Recommendations for flatteningOur recommendation is to use between 200 and 400 triangles per surface. It really iseasiest to work with the triangles displayed. Use on the order of 200 triangles if thesurface has only a small amount of curvature or closer to 400 triangles if the surfacehas high or complex curvature. Then look at the triangles along the edges and adjustthe divisions of the bounding snakes, if necessary, so that the edge curves areadequately resolved (Figs. 1 and 2), but there is not a large number of narrow,“slivery” triangles (Fig. 4).

MS-PLEX (Optional Add-on) And Trimmed SurfacesIn the event that there is difficulty with flattening a type-2 or type-3 TrimmedSurface in MS-PLEX, and you have tried the suggestions as outlined in theTroubleshooting section of the MS-PLEX documentation, try changing its type to 1.Follow the usual procedure for surface flattening and see if it now succeeds.

Tools/SpinThis new function allows you to spin your model about the "Look Point". The modelremains spinning until you stop it by pressing the stop button.

Set the "Spin period" in Settings\Preferences\Program\Display Controls. The Spinperiod is the time in seconds required for the model to spin entirely around the LookPoint once. Negative values spin the model in the opposite direction.

Ctrl + PgUp or Ctrl + PgDn - nudging normal to the screenSelect a draggable point, hold down the Ctrl key and hit the PageUp or PageDownkey; the point will be moved normal to the plane of the screen. Each time you pressthe PageUp button, the point moves by the Nudge distance (set in the Settings/Dragging dialog), out of the screen or towards you. Ctrl combined with PageDownis the opposite, into the screen. If the Shift key is held down also, the movement willbe 1/10 of the Nudge distance. You may also hold down the PageUp or PageDownbutton and the point will repeatedly move by the Nudge distance.

There’s another change in Nudging that you should be aware of. Nudging nowterminates when the Ctrl key is released. (In previous versions, Nudging had to beactively terminated by pressing either the <Enter> or <Esc> key.) If you don’t likethe results of Nudging, just Undo to get back to the previous state of the model.

Page 53: What's New in MultiSurf.pdf

What’s New in MultiSurf • 3D DXF export has more options

MultiSurf What’s New in MultiSurf 4.8 • 49

3D DXF export has more optionsExport3D/ DXF now has more options as can be seen below.

After deciding which set of objects to export, you can now choose to limit this setfurther by choosing which types of objects you want to export.

You can choose to export surfaces as polylines or polygon meshes.

Layer options for the exported objects are now:

• Export all objects to single layer• Use model layers• Objects on individual layers• Objects and each contour cut on individual layers

Bold highlighting available for selected objectsYou may now choose to indicate selected objects by a bold line rather thanMultiSurf's standard dashed line. To get this option, go toSettings/Preferences/Program and check Bold Highlighting at the bottom.

Page 54: What's New in MultiSurf.pdf

What’s New in MultiSurf • Offset Table Macro has changed

50 • What’s New in MultiSurf 4.8 March 2002

Offset Table Macro has changed The old version of this macro required XContours, YContours and ZContours forthe Transverse, Buttock and Waterplane contours. Now CvContours can be used, aslong as they have the proper orientation. A CvContour can be used if it is orientedparallel to the xy-plane.