tuto shipflow

119
FRIENDSHIP SYSTEMS GmbH · Benzstrasse 2 · 14482 Potsdam · Germany · www.friendship-systems.com · January 2011 User Guide FRIENDSHIP-Framework

Upload: jorge-hernandez

Post on 13-Apr-2015

101 views

Category:

Documents


1 download

TRANSCRIPT

User GuideFRIENDSHIP-Framework

FRIENDSHIP SYSTEMS GmbH Benzstrasse 2 14482 Potsdam Germany www.friendship-systems.com January 2011

Content

Part A | General Overview ......................................................................................................................7A.1 Introduction ....................................................................................................................................................................8 FRIENDSHIP-Framework ................................................................................................................................................8 Design Principles .............................................................................................................................................................8 About this Guide ...............................................................................................................................................................8 A.2 Graphical User Interface ................................................................................................................................................9 Windows ...........................................................................................................................................................................9 Mouse and Keyboard Gestures .....................................................................................................................................11 Workspaces ...................................................................................................................................................................12 Settings ..........................................................................................................................................................................13 A.3 Commands....................................................................................................................................................................14 Introduction ....................................................................................................................................................................14 Update Mechanism ........................................................................................................................................................14 Global and Type Commands .........................................................................................................................................14 Command Structure .......................................................................................................................................................14 Creation Commands ......................................................................................................................................................15 Automatic Type Conversion ...........................................................................................................................................15 A.4 Basic Types ..................................................................................................................................................................16 Introduction ....................................................................................................................................................................16 FBool ..............................................................................................................................................................................16 FUnsigned ......................................................................................................................................................................16 FInteger ..........................................................................................................................................................................16 FDouble..........................................................................................................................................................................16 FVector3.........................................................................................................................................................................16 FSeries ...........................................................................................................................................................................16 FString............................................................................................................................................................................16 A.5 Parameters ....................................................................................................................................................................17 Introduction ....................................................................................................................................................................17 Parameter ......................................................................................................................................................................17 Series Parameter ...........................................................................................................................................................17 String Parameter ............................................................................................................................................................17 A.6 Point Modeling .............................................................................................................................................................18 Introduction ....................................................................................................................................................................18 3D Point .........................................................................................................................................................................18 Curve Intersection ..........................................................................................................................................................18 Surface Intersection .......................................................................................................................................................19 Projection .......................................................................................................................................................................19 A.7 Curve Modeling ............................................................................................................................................................20 Introduction ....................................................................................................................................................................20 Line ................................................................................................................................................................................20 Circle ..............................................................................................................................................................................21 Ellipse .............................................................................................................................................................................21

Page 2 of 119

BSpline ...........................................................................................................................................................................21 NURBS ...........................................................................................................................................................................21 CSpline ...........................................................................................................................................................................22 Interpolation ...................................................................................................................................................................22 Fillet................................................................................................................................................................................22 FSpline ...........................................................................................................................................................................23 Generic Curve ................................................................................................................................................................23 Offset Curve ...................................................................................................................................................................24 Intersection.....................................................................................................................................................................24 Projection .......................................................................................................................................................................25 Surface Curve ................................................................................................................................................................25 Poly Curve ......................................................................................................................................................................25 NACA Curve ...................................................................................................................................................................25 NACA-4-Digits Curve .....................................................................................................................................................26 Curve Engine .................................................................................................................................................................26 A.8 Surface Modeling .........................................................................................................................................................28 Introduction ....................................................................................................................................................................28 BSpline ...........................................................................................................................................................................28 NURBS ...........................................................................................................................................................................29 Ruled Surface ................................................................................................................................................................29 Lofted Surface ................................................................................................................................................................29 Surface of Revolution .....................................................................................................................................................29 Coons Patch ...................................................................................................................................................................30 Fillet Surface ..................................................................................................................................................................30 Interspace Surface .........................................................................................................................................................30 Sub Surface ...................................................................................................................................................................31 Poly Surface ...................................................................................................................................................................31 Meta Surface ..................................................................................................................................................................32 A.9 Transformations ...........................................................................................................................................................34 Introduction ....................................................................................................................................................................34 Translation .....................................................................................................................................................................34 Rotation ..........................................................................................................................................................................34 Scaling ...........................................................................................................................................................................34 Transformation Chain .....................................................................................................................................................34 Matrix4 ...........................................................................................................................................................................34 Cartesian Shift ................................................................................................................................................................34 Delta Shift .......................................................................................................................................................................35 Surface Delta Shift .........................................................................................................................................................36 Generalized Lackenby ...................................................................................................................................................36 Delta Sum ......................................................................................................................................................................37 Delta Product .................................................................................................................................................................37 Coordinate System .........................................................................................................................................................37 A.10 Images ...........................................................................................................................................................................39 Introduction ....................................................................................................................................................................39 Image Point ....................................................................................................................................................................39 Image Curve...................................................................................................................................................................39 Image Surface ................................................................................................................................................................39

Page 3 of 119

Image Offset Group ........................................................................................................................................................39 Image Surface Group .....................................................................................................................................................39 Image Panel Mesh Group ..............................................................................................................................................39 A.11 Surface Meshes and Volume Grids ............................................................................................................................40 Introduction ....................................................................................................................................................................40 Mesh Engine ..................................................................................................................................................................40 Panel Mesh Group .........................................................................................................................................................40 Unstructured Panel Mesh ...............................................................................................................................................40 Structured Panel Mesh ...................................................................................................................................................41 Blade Mesh Engine ........................................................................................................................................................41 A.12 Features ........................................................................................................................................................................42 Introduction ....................................................................................................................................................................42 Feature Definition ...........................................................................................................................................................42 From Selection ...............................................................................................................................................................44 Nesting ...........................................................................................................................................................................44 Syntax Essentials ...........................................................................................................................................................45 A.13 Variation and Optimization ..........................................................................................................................................48 Introduction ....................................................................................................................................................................48 Variant Management ......................................................................................................................................................48 Design Variable ..............................................................................................................................................................49 Inequality Constraint ......................................................................................................................................................49 Equality Constraint .........................................................................................................................................................49 Design Engines ..............................................................................................................................................................50 Ensemble Investigation ..................................................................................................................................................51 Exhaustive Search .........................................................................................................................................................51 Sobol ..............................................................................................................................................................................51 Brent...............................................................................................................................................................................51 Nelder Mead Simplex .....................................................................................................................................................51 Tangent Search ..............................................................................................................................................................51 Newton Raphson ............................................................................................................................................................51 NSGA-II ..........................................................................................................................................................................52 MOSA .............................................................................................................................................................................52 Design Engine Table ......................................................................................................................................................53 Diagrams ........................................................................................................................................................................54 A.14 Integration.....................................................................................................................................................................57 Introduction ....................................................................................................................................................................57 Definition ........................................................................................................................................................................57 Configuration ..................................................................................................................................................................58 Computation ...................................................................................................................................................................58 Setup ..............................................................................................................................................................................60 Custom Integration .........................................................................................................................................................60 Generic Integration .........................................................................................................................................................62 COM Interface ................................................................................................................................................................64 Generic Results ..............................................................................................................................................................65 A.15 Parallel and Distributed Computing ...........................................................................................................................66 Introduction ....................................................................................................................................................................66

Page 4 of 119

General Settings ............................................................................................................................................................66 SSH Resource Manager ................................................................................................................................................66 Resource Manager Setup ..............................................................................................................................................66 Remote Application ........................................................................................................................................................68 Task Monitor ..................................................................................................................................................................69 A.16 Visualization .................................................................................................................................................................70 Introduction ....................................................................................................................................................................70 GL Image .......................................................................................................................................................................70 GL Picture Frame ...........................................................................................................................................................70 GL Clipping Cube Setup ................................................................................................................................................70 Timer ..............................................................................................................................................................................71 Linear Dimension ...........................................................................................................................................................71 Label ..............................................................................................................................................................................72 Legend ...........................................................................................................................................................................72 Bar Chart ........................................................................................................................................................................72 Skybox ...........................................................................................................................................................................73 2D Window Setup ..........................................................................................................................................................73 A.17 Import and Export ........................................................................................................................................................74 Introduction ....................................................................................................................................................................74 Current Design ...............................................................................................................................................................74 IGES ...............................................................................................................................................................................74 Offsets ............................................................................................................................................................................74 OpenNURBS ..................................................................................................................................................................75 STL.................................................................................................................................................................................75 COLOUR STL ................................................................................................................................................................75 PFF ................................................................................................................................................................................75 Panel Mesh ....................................................................................................................................................................75 Techplot (Subset) ...........................................................................................................................................................75 Wave Pattern (nuShallo) ................................................................................................................................................75 Configuration SHIPFLOW ..............................................................................................................................................76 Configuration FS-Modeler ..............................................................................................................................................76 Wakefield .......................................................................................................................................................................76 Wavefront OBJ Connector .............................................................................................................................................76 GridPro (stl.tmp) .............................................................................................................................................................76 Plot3D ............................................................................................................................................................................76 GeomTurbo ....................................................................................................................................................................77 A.18 Batch Mode ...................................................................................................................................................................78 Introduction ....................................................................................................................................................................78

Part B | Examples ..................................................................................................................................79B.1 Getting Started .............................................................................................................................................................80 Introduction ....................................................................................................................................................................80 Geometry Variation ........................................................................................................................................................80 Parametric Hull Surface .................................................................................................................................................83 Parametric Diffuser Surface ...........................................................................................................................................86 Integrate External Software ............................................................................................................................................90

Page 5 of 119

B.2

Hull Design ...................................................................................................................................................................94 Introduction ....................................................................................................................................................................94 Section Visualization ......................................................................................................................................................94 Offset Data .....................................................................................................................................................................94 Offset..............................................................................................................................................................................94 Offset Group...................................................................................................................................................................94 Offset Group Assembly ..................................................................................................................................................94 Section Group ................................................................................................................................................................95 Hydrostatic Calculation ..................................................................................................................................................95 Lackenby Variation .........................................................................................................................................................97 Design of Basic Curves ..................................................................................................................................................98 Sectional Curves ............................................................................................................................................................99 Surface Design .............................................................................................................................................................100 Shipflow Integration ......................................................................................................................................................101 Shipflow CHAPMAN .....................................................................................................................................................103

B.3

Maritime Propeller Design .........................................................................................................................................104 Introduction ..................................................................................................................................................................104 Generic Blade ..............................................................................................................................................................104 Propeller .......................................................................................................................................................................106 Wakefield .....................................................................................................................................................................106 Fillet Modeling ..............................................................................................................................................................107

B.4

Turbomachinery Components ..................................................................................................................................109 Introduction ..................................................................................................................................................................109 Rectangular Volute .......................................................................................................................................................109 Wing Design .................................................................................................................................................................111 Stream Section .............................................................................................................................................................114 Axial Compressor .........................................................................................................................................................116

References .............................................................................................................................................................................119

Page 6 of 119

FRIENDSHIP-Framework User Guide

Part A | General Overview

Page 7 of 119

FRIENDSHIP-Framework User Guide A.1 Introduction

A.1

IntroductionDesign PrinciplesA typical design procedure within the FRIENDSHIPFramework starts with a fully-parametric model of the considered shape. During the geometry setup, objects are related to each other via introducing dependencies. Changes that are applied to one object are internally passed to dependent objects for update purposes. Surfaces are no longer described via basic point data. More intuitive descriptors (e.g. user-defined distributions which describe product properties) help to modify geometry smartly in a way that the resulting surfaces cover high fairness for geometrically feasible designs. Note that no black-box models are used, the engineer is completely free to set up any individual design. In the second step, parts of the geometry are linked to variation engines. Any floating-point number of the model setup can be varied. The user chooses a specific engine and defines bounds for variables as well as constraints and objectives. In order to be able to assess the manual or automatic variants, external (mostly analysis) software is coupled and configured. The engines simply evaluate parameters that request an external value. This transfers external data into the FRIENDSHIP-Framework. Based on this integration along with parametric geometry variation sophisticated formal optimizations can be carried out.

FRIENDSHIP-FrameworkThis software allows design and optimization of any flowexposed functional surfaces, in particular Ship Hulls and their Appendages Propellers Compressor and Turbine Blades Wings Pump Devices Casings, e.g. Volutes Diffusers

Having the focus on efficient variation, a smart parametric modeling technique (CAD) is combined with any in-house or commercial simulation code e.g. for CFD analysis of the geometry. Variation and Optimization Apart from parametric and conventional CAD functionality, this software comes with a set of embedded variation and optimization strategies. These algorithms can be comfortable linked to the geometry and perform automatic variant creation. For that purpose, comprehensive variant and constraint management are provided. Integration Any program or tool which is needed for geometry design and analysis can be coupled. Convenient integration mechanisms make the external program an inherent part of the FRIENDSHIP-Framework. By doing so, design and analysis expertise is centralized in order to streamline the design process.

About this GuideThis guide encapsulates the essence of the programs functionality. Additional detailed documentation and sample files are directly provided within the program environment. General Overview The first part of this guide describes the graphical user interface and general creation of geometry as well as basic variation, integration and visualization matters. Examples

In addition to configuration and execution of external programs, comprehensive post-processing functionality is available. Result data gets visualized and tables are generated so that the entire design process finally takes place within a single workbench.

Following this, selected applications from the maritime field and from turbomachinery are given. These demonstrative examples are guided stepwise and help to transfer the Know-How to own sophisticated projects. As a starting point, see also the introduction example of the Getting Started section.

Page 8 of 119

FRIENDSHIP-Framework User Guide A.2 Graphical User Interface

A.2Windows

Graphical User Interfacemaking the project read-only. These attributes are accessible via the ObjectEditor. Object Documentation The third column contains an icon that indicates whether documentation is available for the corresponding object. Via a single mouse click onto the icon, documentation can be accessed either for writing or reading (if not empty) via the DocumentationBrowser. Type Documentation In contrast to the mentioned object documentation, type documentation is also available via the DocumentationBrowser. Affiliation The affiliation is changed by clicking onto the initially green-colored circle icon in the fourth column of the tree. Objects belong to the current project by default. However, there are additional states possible to be set that allow keeping certain objects in the user configuration file of the program. Then, an object with changed affiliation is always available, even if no project is loaded. This is because it is provided by the configuration file. Such a mechanism is useful only for a small subset of recurrent objects. Objects with an affiliation for a temporary state are not stored in the project or configuration file.

The graphical user interface (GUI) comes with a set of different windows which are explained in the following sections. ObjectTree The entire project setup is organized in the ObjectTree. Similar to a Windows Explorer, objects can be moved via Drag&Drop and renamed. Dependencies among objects are kept for renaming. The user is free to set up an entirely user-specific project organization where e.g. scopes (like folders) help to introduce structures.

Project The first element of the ObjectTree is the current project. This object carries the project documentation which can be shown on project opening. It also contains a toggle for

Page 9 of 119

FRIENDSHIP-Framework User Guide A.2 Graphical User Interface

Administration The administration branch is also available via context menu (right mouse button) as well as any available root node. For instance, lights, cameras and toolbars can be configured in here. In particular, export options are accessible. ObjectEditor This window allows setting the attributes of selected object(s). If more than one object is selected, the common attributes are given which can be set at once for each object.

background color or point and line sizes as well as camera and light options. Filters and Principal Views At the bottom of these windows, different filter mechanisms and principal views are provided. In particular, the name filter helps to only show the objects that contain certain text fragments in their full names. Names and name fractions need to be separated by commas for multiple filtering. Grid View For each 3D window a special grid view can be visualized which helps e.g. to create points at certain positions etc.

In the screenshot above, the selected object is indicated at the top of the editor. Forward and backward navigation is available by using the arrow icons in order to switch between selections. Multiple selections will show the names of each selected object. Next, the object type (here: FParameter) and the objects name is given where the latter can be changed (this can also be done directly in the object tree. On the right-hand side, the automatic update button is shown for some types, see also the parameter for more information. For any object, the type-specific attributes can be set with this editor. These attributes are categorized, e.g. in the screenshot above there is only one category, namely General. Attribute Editors An editor field of an attribute mostly behaves like the console, e.g. object creation via creator commands as well as auto-completion is available. Note that all attributes and further functionality of an object can be also reached via simple console commands, see section commands for more information. 3DView Objects get rendered and displayed within this window. Settings of this window are accessed via context menu (right mouse click into the view). It allows changing the

Grid view options are available via the settings dialog (Appearance) in order to configure the grid style. The plane elevation can be set at the bottom of the 3DView next to the icon. The cursor position of the mouse is taken as next elevation when switching to another principal plane, see shortcuts F6 and F7. Points can be quickly created within the grid, see the corresponding shortcut. A snap-to-grid mode is also available via the 3DView button ( ) for convenient point positioning on a grid. Console Commands can be accessed for selected object(s) via the console. If a selection is available, the command list is given by typing in a dot (.) along with the auto-completion.

If no selection is given, type the objects name plus dot and auto-completion in order to receive the commands, e.g. myObject + . + auto-completion (without quotation marks and plus characters).

Page 10 of 119

FRIENDSHIP-Framework User Guide A.2 Graphical User Interface

Short Cuts Keyboard short cuts are given in this site. Many short cuts can be configured to the needs of the user. Dependencies This window tracks dependencies of objects. It shows supplier and client relations by simply moving an object into this editor via Drag&Drop. Such a tracking mechanism is helpful when the project gets more complex after a while. The dependencies window is not visible by default and can be set visible via the windows menu. History History steps are displayed in here. The user can move backward in history during the design process (redo/undo). SelectionSet This widget contains the current selection which can be sorted or modified manually. Sorting is sometimes important e.g. if a creator command is called which expects a certain input order. Also, a selection can be locked to avoid that it gets lost by mistake. Constraints This is a convenience widget that monitors the constraints. Constraints can be filtered and displayed by their current state. Toolbar The toolbar contains the buttons for e.g. open and save a project as well as the workspaces.

This functionality allows the creation of objects via the console by using their creator commands. Attributes of objects can be set via the console too. Actually, any object creation via the menu and attribute setting via the ObjectEditor is also accessible via the console. Furthermore, the console provides error and info messages. DocumentationBrowser A comprehensive online documentation with search functionality can be found here as well as samples for objects and design structures. Each available command for any object type is also listed along with its description. The following main sections are available: Home This is the starting site of the browser. Samples This site contains sample projects which demonstrate essential design structures and principles of the software. MyProjects User projects can be parsed automatically so that a list of projects gets generated along with project documentation. This provides a convenient view on closed projects and their user documentation. Directories are configured via the settings menu. Features User-defined directories can be parsed for feature definitions. The definitions are given in a list and can be readily imported into the current project. Detailed documentation of the definition with input description is given too. Directories are configured via the settings menu. Types Any object has a certain type which always starts with F, e.g. FLine, F3DPoint. These types are described in detail. In particular, the command list of each type is given too. Global Commands Apart from type commands, global commands provide more general auxiliary functionality. The available commands are described along with some examples.

Mouse and Keyboard GesturesDifferent mouse button combinations are required for zoom or selection of objects. The following sections mainly focus on the 3DView or the ObjectEditor. Object Reference via ALT-Key This is one of the major gestures. Instead of typing the objects entire name, this name information is easily pasted to any place by using ALT key: First, locate your cursor at the target location, e.g. any attribute editor field in the ObjectEditor. Then, keep ALT pressed and click onto the object for which the name shall be pasted. Auto-Completion Press CTRL + SPACE in order to receive either the (completed) command or the entire possible command set. This works for object names and commands. It helps to save time with regard to any command typing.

Page 11 of 119

FRIENDSHIP-Framework User Guide A.2 Graphical User Interface

General Zoom Use the middle mouse button (scrolling) in order to zoom in and out. The zoom has the focus at the mouses cursor position. Zoom In In the 3DView, keep SHIFT pressed, then click the left mouse button and select a rectangular zoom region from the upper left to the lower right corner. Zoom Out Similar to zooming in, keep SHIFT pressed, then click the left mouse button and select a zoom out region now from a lower right position to an upper left. General Rotating In the 3DView, keep the right mouse button pressed in order to rotate along objects. Rotation along Principal Axes In the 3DView, press CTRL, ALT and a for choosing the principal axis x, y or z. Use the right mouse button for rotation while CTRL, ALT and a remain pressed. Scene Moving In order to move the entire scene in the 3DView, keep the middle mouse button pressed and shift the scene. Active Scope Scopes behave like directories. Click with the middle mouse button onto a scope in the ObjectTree in order to make it active. Now, new objects will directly be created within this scope. The active scope is also indicated at the lower right corner of the program. CTRL + ALT While keeping these two keys pressed, create points within the grid view by using the left mouse button. F6 Activate and deactivate the grid view within the 3DView. F7 Switch between principal axes/planes while shifting a point in the 3DView. This allows movements of points if no principal plane or grid view has been activated. F12 This is a shortcut for the last creation command. In case F12 is used while objects are selected, the current creation command tries to involve the input for creation purposes.

Switch between Program Windows In order to quickly switch between the different windows and widgets, use CTRL + TAB. In particular, this allows switching between the last two windows that have been active when using the keyboard shortcut only once.

WorkspacesThe graphical user interface can be configured to the needs of the user. The window arrangements as well as views, colors, camera settings, lights, sizes for points and curves are stored in a workspace. Also, the background of the 3DView can be set. Workspaces are located in the toolbar. The user is free to switch between different workspaces instantly by clicking onto the name of the corresponding workspace.

Settings for the 3DView are accessible via the context menu (right mouse button within the window, last entry of the menu).

Page 12 of 119

FRIENDSHIP-Framework User Guide A.2 Graphical User Interface

SettingsProgram settings can be configured via menu > edit > settings.

Company Profile The company name and a company logo can be set which then will be included for the title page of the diagram PDF report. Feature and Project Directories Choose custom directories for your projects and feature definitions (.fdf). These directories are parsed on each program startup and on manual user refresh (icon is located at the corresponding documentation site in the DocumentationBrowser). A convenient documentation gets thus generated and displayed which enables efficient informative file browsing. For this mechanism, the users documentation of projects and feature definitions is provided.

Page 13 of 119

FRIENDSHIP-Framework User Guide A.3 Commands

A.3

CommandsGlobal Commands Global commands are frequently used for some auxiliary reasons: Trigonometric functions or control statements (loops, if-statements etc) are available. Type Commands Type commands are member and attribute commands of a certain type. For instance, the base type FCurve has a position command which is also available for each derived type, e.g. for FLine. The commands are called directly at the object, e.g. a position call for object myLinemyLine.getPos( 0.5 )

IntroductionThe functionality and fundamental concept of the FRIENDSHIP-Framework is entirely governed by commands. Almost each action a user performs is carried out by a command. This could happen by clicking a button, choosing a menu-entry, setting attributes in the ObjectEditor or explicitly entering a command into the console. See also the auto-completion description which saves an enormous amount of time while working with commands.

Update MechanismIn particular, objects are connected to each other by using commands, e.g. by receiving and utilizing values from other objects. This leads to the powerful fact that not only discrete values can be set for an object but any sophisticated so-called expressions. In the end, this generates object dependencies where an incorporated update mechanism takes care of the object state.

If an object is selected, the command is simply called on the console via.getPos( 0.5 )

For more information about curves, see the corresponding chapter. All attributes that can be set for a certain object type in the object editor are also accessible via the corresponding get and set commands. For instance, setting a start position of a line can be written asmyLine.setStartPos( [0,0,1] )

See the following screenshot for an example where the auto-completion is also given.

General geometry modeling and variation via updates of design engines are based on this idea. For instance, see how result values of a CFD simulation are stored in parameters. As a different example, instead of a discrete value, a design variable is set for a coordinate of a point for variation purposes.

Command Structure Global and Type CommandsGlobal and type commands can be distinguished. The available commands are documented in detail and can be found in the DocumentationBrowser. The following parts represent a general command structure: Name and Return Value Each command has a unique name. Also, in general, commands return a specific value. This value can be used again for further processing, e.g.myLine.getPos( 0.5 ).getY()

Page 14 of 119

FRIENDSHIP-Framework User Guide A.3 Commands

Here, the return value of getPos() is an FVector3 which provides another command that can be directly called, getY(). Arguments Some commands require input arguments which are important for execution. Default arguments are possible and indicated with = character (no explicit input required by the user). In the example above, the argument is an FDouble which has a value of 0.5.

Examples For instance, if a command expects an integer value, any double type can be set which gets converted into an integer value. This eases the design process in many situations since the user does not need to take care about types. As a more practical example, a section group can be used like offset groups, e.g. for hydrostatic calculations (which actually expects offset groups). Selection of automatic type conversions The following list shows selected types that can be converted into the type that is listed next to it. From FDouble FParameter FPoint FEntityGroup FImageOffsetGroup FSectionGroup FImageSurfaceGroup FLackenby Into FInteger, FUnsigned, FBool FDouble FVector3 FObjectList FOffsetGroup FOffsetGroup FObjectList FDeltaShift FPanelMesh FObjectList FString

Creation CommandsFor most types, creation commands are available. They are implicitly called when an object gets created via the menu (e.g. menu > create > curves). Some creation commands offer convenient mechanisms for selected objects. For instance, if two points are selected and a line is created via the menu, a specific creation command is automatically taken which involves the two points during line creation as start and end position. These creation commands can also directly be called in feature definitions or via the console for object creation.

Automatic Type ConversionSeveral automatic type conversions, so-called casts, are provided that convert one type into another automatically. Of course, this only works for a special set of type combinations.

FMeshEngine FVector3Series FStringParameter

Page 15 of 119

FRIENDSHIP-Framework User Guide A.4 Basic Types

A.4

Basic TypesFDoubleThis type is used for any floating-point number. Examples123.456, -10.5, 0.25

IntroductionBasic types are used for discrete numbers or series as well as for vector definitions. Most of the time, the user does not recognize that basic types are involved. For instance, when a floating-point number is used in any editor, a basic type gets created internally. But, and this is the reason why the user has to be aware of basic types, commands use them as input and output. Consider the following example where a curve command returns a vector position:FVector3 getPos( FDouble t )

FVector3This type is used for vector representations. The last vector example shows how e.g. parameters or any double values can be involved for simple vector settings. Examples[1,1,0], [0.5,0.5,-1.5], [myXParam,0.0,1.0]

The command expects a FDouble value as input and returns an FVector3. In an actual model setup, the call might look like this:myCurve.getPos( 0.5 )

FSeriesThis type is used for definition of number sequences. For instance, they are applied in section generation and within design engine setups. Different definitions are possible and given below. Examples User-defined discrete values:

Now, this command can be set anywhere in the model whenever a vector is expected as input (because this is the return value of the command). This expression mechanism actually allows setting up complex dependencies.

FBoolThis type is used so as to express true or false. Examplestrue, false

v1,v2,v3,v4

(e.g. 0,2,3.5,3.7,4)

Starting from v0 until vn using equidistant steps = v1-v0:v0,v1..vn (e.g. 0,2..20 or 20,18..0)

Combination with different equidistant steps from vn:v0,v1..vn,vm..vp (e.g. 0,2..20,20.5..30)

FUnsignedThis type is used for unsigned integer values. Examples0, 1, 2, 3, 123

Alternative equidistant definition for m values:v0,vn:m (e.g. 0,20:10)

FStringAny string is represented by this type. They are used for names, labels or for data exports (file name) etc.

FIntegerThis type is used for signed integer values. Examples-123, -2, -1, 0, 1, 2, 3

ExamplesLength, Result

Concatenations are possible via the + character, e.g.value = + myResult.getValue().toString() + %

Here, the value of parameter myResult is converted to a string via the command toString().

Page 16 of 119

FRIENDSHIP-Framework User Guide A.5 Parameters

A.5

Parametersa parameter so that the value update is only requested on demand (and not continously using an automatic update). On Demand also means that a request from a design engine triggers the update procedure which then provides the parameter value. Parameter values e.g. from basic calculations or simple discrete values are the candidates for an automatic update (toggle on). If an parameter is not up to date, an evaluation can be forced by the red triangle icon ( ) just above the editor field. Also, for this out of date status, the name and its type are colored dark red in the ObjectTree.

IntroductionParameters are used in order to centralize information. Defined once, parameters can be involved in a complex model setup and changes are made exclusively at a single location. For instance, a parameter that holds the length of a design might be set at different objects of the model that depend on it. If the parameter gets changed the entire model adapts automatically.

ParameterBeing probably the most frequently used object, any double value expression (command) can be set for a parameter. Typically, a parameter holds either a discrete scalar value specified by the user or any command (combination) that, in the end, returns a double value.

Creation Choose menu > create > parameters > parameter.

Series ParameterExamples for double expressions are mathematical formulas, control statements that return a double value or addressing result entries from tables. Note: Being a related entitiy, the design variable holds merely discrete values and no expressions. Automatic Update The automatic-update button is located at the top of the object editor for a selected parameter. Time-consuming, expensive update procedures can be omitted for the time being until e.g. manually requested. Set it inactive (i.e. toggle off) whenever a result of a computation is defined in Number sequences of type FSeries are defined and stored in a series parameter. Creation Choose menu > create > parameters > series parameter.

String ParameterStrings of type FString can be defined and stored in a string parameter. Creation Choose menu > create > parameters > string parameter.

FRIENDSHIP-Framework User Guide Page 17 of 119

FRIENDSHIP-Framework User Guide A.6 Point Modeling

A.6

Point ModelingFor general views, the three principal axes are indicated on which the point can be shifted. Press F7 for axis switch. Press F6 for grid view. Local Coordinate System On creation, a point refers to the global coordinate system. In order to employ a local coordinate system set the corresponding LCS attribute (category geometry).

IntroductionEach point type holds global and local x-, y- and zcoordinates. Points can be set at any place in the model whenever a vector value (FVector3) is expected. This is realized by means of an implicit point-to-vector conversion. Apart from a common 3D point, intersections and projections are available. Location: menu > create > points.

Curve IntersectionIntersections between two curves are calculated and represented by a curve intersection point.

3D PointApart from display options and a name, the point simply consists of three coordinates x, y and z that refer to either a global or a local coordinate system.

For convenience, an intersection can be quickly created and automatically configured when two curves are selected. Of course, the curve entries can be set afterwards too.

1

Creation via Menu

1

Curve Selection

Choose menu > creation > points > 3D point. Alternatively, points can be quickly created within the grid view by using the corresponding shortcut.

Select two curves either from the ObjectTree or from the 3DView. Use the CTRL or SHIFT keys for multiple selections.

2

Creation via Menu

2

Name and Scope

Choose menu > creation > points > curve intersection. Shortest Distance In case no intersection is given between two curves, this entity calculates the shortest distance. Curve Parameters The intersection point also provides the curves parameter values of the intersection via member commands for both curves, respectively:myIntersection.getParameterOnCurveA() myIntersection.getParameterOnCurveB()

Select the point in the ObjectEditor and set a name and a scope. Moving Points can be moved in the 3DView only with respect to principal planes within the assigned coordinate system. I.e. in case that a local system is set for the point, this system needs to be in a principal plane view ( ) for point movements.

Page 18 of 119

FRIENDSHIP-Framework User Guide A.6 Point Modeling

Surface IntersectionThis entity represents an intersection between a surface and a curve.

1 1 2 2

Creation via Menu

Choose menu > creation > points > projection. Creation via Menu Set Attributes

Choose menu > creation > points > surface intersection. Set Surface and Curve

Select the projection point in the ObjectTree and set the surface, the source position and the projection direction using the ObjectEditor. Please note that the direction is an arbitrary vector where the sign is ignored. Parameter Range For convenience, the surfaces parameter range can be specified which is helpful in case more than one projections are possible for the surface and the given direction.

Select the intersection point in the ObjectTree and set the surface as well as the curve using the ObjectEditor.

ProjectionThis entity represents a projection where a source vector position is projected onto a surface.

Page 19 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

A.7

Curve Modeling

IntroductionCurves are defined by means of a parameter interval that runs from zero to one, i.e. [0,1]. The parameter variable is called t. For instance, the following command returns the start position of myCurve as vector:myCurve.getPos( 0.5 )

Location: menu > create > curves. Parameterization Each curve has a unique parameterization. It can be changed via the attribute parameterization, see the last attribute of the ObjectEditor screenshot below. In particular, unit speed parameterization or parameterizations that increase the speed of the curve at the ends might help in special design situations.

For each curve type, the commandmyCurve.fv( axis, elevation )

returns the intersection position given as vector. Here, axis is an index (0=x, 1=y, 2=z) for the principal axis and elevation a value on this axis.

LineBeing a basic curve type, the line is defined via a start and an end position. Any vector position can be set, be it manual, e.g. [1,2,3], or given from points and commands. Each command that returns a vector is possible to be set directly as a start or end position.

The following creation is based on two points. Intersection The intersection calculation with respect to a principal axis and an elevation is often employed in modeling processes.

1

Point Selection

Select two points where the order of selection will define the start (first) and end (second) position of the line.

2 3

Creation

Choose menu > create > curves > line. Moving

The line can be moved by changing the positions of the start and end position. This is done directly for the points via the ObjectEditor or via the 3DView.

Page 20 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

CircleA circle is defined by means of a radius, start and end angle as well as its location. For the latter, the circle is transformed either by using a basic transformation entity or via a center axis modeled as line.

BSplineThe bspline curve is a point-based curve where the shape is additionally controlled via knot vector.

The following steps explain circle creation based on a transformation entity.

1 2 3

Circle Creation

Choose menu > creation > curves > circle. Radius and Angles The following procedure describes curve creation based on a set of selected points.

Set radius and range of angles. Transformation

1

Point Selection

Create a basic transformation in order to move the circle in the 3D space. For instance, choose the transformation chain to combine more than just one transformation. Expressions Please note that any double value can be set for the circles radius and angle range. For instance, parameters and design variables can be used as well as any command that returns a double value.

Select the single points where the order of selection will define the orientation of the curve.

2 3

Creation

Choose menu > create > curves > bspline curve. Moving

The curve can be moved by changing the positions of the points.

EllipseThe ellipse is defined via two major axes, start and end angle as well as its location. Handling and modeling is similar to the circle entity please see the circle for more information.

NURBSThe NURBS curve is also a point-based curve where the shape is controlled via knot vector and, additionally, weights for each vertex. The latter are given as array of double values. Such an array can be replaced by an arbitrary command that returns a double array, e.g. setting the array of another point-based curve. See the bspline curve for more information.

Page 21 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

CSplineThis curve type calculates an approximation curve by means of point data input or arbitrary vector positions. Internally, a bspline curve is fitted to the input with regard to a least square algorithm. The degree and the number of control vertices of the bspline curve are adjustable. Furthermore, tangent angles at the beginning (tab) and at the end (tae) can be fixed for continuity purposes.

InterpolationFor this curve a set of point data is interpolated.

1

Point Selection

Select the single input data points where the order of selection will define the orientation of the curve.

2In case that the number of control vertices is equal to the number of input data points, an interpolation is performed.

Creation

Choose menu > create > curves > interpolation curve.

1

Point Selection

Select the single input data points where the order of selection will define the orientation of the curve.

FilletThis curve type computes a fillet curve between two given input curves.

2 3

Creation

Choose menu > create > curves > cspline. Curve Characteristics

In case the tangent angles at the beginning or/and at the end shall be fixed, toggle the corresponding boxes. If desired, choose a different degree and a number of vertices in order to change the constraints for the least square fit.

1

Curve Selection

Select the source and, secondly, the target curve (e.g. keep CTRL pressed).

2 3

Creation

Choose menu > create > curves > fillet curve. Joints

Adjust the joint location by toggling the corresponding boxes of curve. Front joint means that the fillet is joined at the front, i.e. at the parameter value 0, of the input curve.

Page 22 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

FSplineFairness optimized 2D curves are generated by the fspline curve type. The curve is defined via start and end position for which tangent angles can be set by the user. Furthermore, area and area centroid constraints can be involved for curve generation.

be involved. Based on smoothed fsplines, the produced surfaces provide excellent shape characteristics with regard to fairness. Area Setting In many situations the area setting of the fspline needs to be related to a reference area. This makes it flexible in case a model gets scaled etc. since no discrete value is applied. For instance, create a line from the start to the end point. Then, set the area of the fspline as follows:theLine.getArea( axis, plane ) * factor

Area axis and principal plane need to be specified, e.g. 1 and 2 for the screenshot above. The parameter factor might then given by a number between 1.05 and 1.1.

1 2 3

Creation

Choose menu > create > curves > fspline curve. Principal Plane

Generic CurveFor this curve type the x-, y- and z-coordinates can be defined by the user in order to represent a parametric curve.

Choose a principal plane for the 2D curve. Start and End Position

Set a vector position for start and end of the curve. This could be any vector data, e.g. provided by points or commands.

4

Tangent Angles

Optionally, set the tangent angles. Please note that these angles refer to the chosen principal plane and its mathematical orientation. In the lower left corner of the 3DView (see the screenshot above), the positive orientation is indicated at the coordinate system by means of circular arrows.

1 2

Creation

Choose menu > create > curves > generic curve. Coordinate Definition

5

Area and Centroid

Optionally, set the area value and centroid as well as the axes which refer to the specified abscissa or ordinate of the principal plane, respectively. The area value, for instance, might also be negative which depends on the curves orientation since the integral area gets considered. Fully-Parametric Modeling For parametric surface models, this curve type is helpful if area or volume distributions of a surface need to be controlled. The 2D sectional design of the fspline can smartly be utilized in Meta surface creation, for instance. Here, the area setting of the fspline can be mapped to a 3D surface via a user-defined area distribution. Furthermore, distributions for the tangent angles can also

Set an arbitrary definition for x, y and z. Coordinate settings are either constant or dependent on the variable t which runs from 0 to 1 by default.

3 Generate NURBS CurveIn some design situations the evaluation of the generic curve is expensive where an internal efficient NURBS curve can be used instead. In particular, generic thickness curves for offset curves are recommended to be approximated by a NURBS curve. Number of Interpolation Points Specifies the number of interpolation points used for generating the NURBS curve.

Page 23 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

Sine Function As an example, a Sine function definition is given: x = t * 2 * pi() y = sin( t * 360 ) z=0

5

Both Sides

For instance in case of profile design, both side of the source curve can be considered which accelerates the profile modeling process. Freenet Frame The Freenet Frame of the source curve can also be considered in order to apply the offset with regard to this space definition.

Note that the global command for the Sine evaluation expects an input angle given in degree by default. Profile Design Arbitrary mathematical profile definitions can be quickly set up by means of this curve type. For instance, such a profile is then stored in a feature definition and ready for blade or wing design etc.

IntersectionThis curve type represents intersections between two given surfaces.

Offset CurveBased on a source curve an offset curve is generated by means of a constant value or distribution. The offset is calculated perpendicular to the source. Mostly, this curve is restricted to a 2D plane, i.e. a principal plane.

Curve creation is also possible for a selection of two surfaces. However, the following steps describe the basic creation process from scratch.

1 1 2Creation

Creation

Choose menu > create > curves > intersection curve.

2

Parent and Partner

Choose menu > create > curves > offset curve. Source

Set the parent surface and the partner surface. The resulting intersection curve will be defined in the domain of the parent surface.

Set an arbitrary curve as being the source from which the perpendicular offset is applied.

3

Non-NURBS Approximation

3

Offset

For non-NURBS surfaces, a NURBS approximation is required since the intersection computation is performed on NURBS surfaces for performance reasons. Start Linear and Maximum Deviation The value of the maximum deviation specifies the deviation from the bilinear interpolation, i.e. a linear surface. In general, this is more robust for intersections. If Start Linear is not active, surface positions get simply interpolated in order to create a cubic NURBS surface.

Choose either a constant value or a distribution (given in a principal plane) which shall be taken as offset function.

4

Plane

Select a principal plane in order to tell the curve which axis represents abscissa and ordinate. This is required for calculation of the offset value based on the given distribution as well as for actual offset creation.

Page 24 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

ProjectionThe projection curve is defined by a source curve, a target surface and a projection direction.

1 2 3

Creation

Choose menu > create > curves > surface curve. Surface

Set a surface whose domain is considered. Domain Curve

Set an arbitrary domain curve. Domain curves have to be designed in the [0,1] x [0,1] space of the global xycoordinate-system.

1 2 3 4 5

Creation

Poly CurveA set of arbitrary curves can be put into the container-like poly curve in order to address a single curve via a single parameter interval, i.e. [0,1].

Choose menu > create > curves > projection curve. Target Surface

Set the target surface. Source

Set the source curve which can be an arbitrary 3D curve. Direction

Set the projection direction by using any vector input. Non-NURBS Approximation

Please see the intersection curve for more information about approximation matters of non-NURBS surfaces. Domain Curve For any surface curve, the domain curve (with regard to the underlying surface) is available via a command.

1

Curve Selection

Select the input curves. Take care that the desired order is given during the selection (again, this can still be changed later on).

2

Creation

Choose menu > create > curves > poly curve.

Surface CurveThis curve type represents a curve on a surface. Arbitrary domain curves are possible as input.

Parameterization Change the parameterization of the poly curve in order to overwrite the default parameterization (default: for N curves the ith start position is given at t = [i 1] / N).

NACA CurveA set of NACA66 curves can readily be accessed by this curve type. Via the ObjectEditor, profiles with predefined thickness ratios, uniform load distribution values and lift coefficients are available. By means of the member commands these characteristics can also be set manually using discrete values.

Page 25 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

Curve EngineThis key entity is able to produce a bunch of curves where the abstract curve description stems from a feature definition. Such a definition is arbitrary. For instance, any input can be used which provides high flexibility. Most importantly, a single curve needs to be available as attribute from the feature definition. This single curve, called base curve, is then employed by the curve engine. Creation

1 2

Choose menu > create > curves > NACA curve. NACA Type

Select the desired NACA66 type.

NACA-4-Digits CurveThe NACA-4-Digits profile is available for which chord length, thickness ratio, maximum camber value and camber position can be set.

Basic scalar input arguments (e.g. FDouble) can be linked to functional distributions. Such a user-defined function is designed by means of any curve type. For instance, a scalar area input is mapped to an area distribution according to the functions interval.

1 2

Creation

In particular, curve engines are used within Meta surface modeling.

Choose menu > create > curves > NACA-4DS curve. NACA Settings

1 2

Creation

Choose menu > create > curves > curve engine. Feature Definition

Set values for the mentioned quantities which define the final profile. Blade and Rudders Values like the chord length or thickness ratio are applicable in surface generation processes where a userdefined distribution defines the values according to a certain range. See Meta surfaces for more information and the blade or wing design for examples.

Select a feature definition which contains at least one curve attribute. Take care that such a curve attribute is set to accessible at the feature definition otherwise the definition cannot be chosen.

3

Base Curve

Select the base curve which shall be used for curve generation. It is possible that a feature definition contains more than just one curve.

Page 26 of 119

FRIENDSHIP-Framework User Guide A.7 Curve Modeling

4

Coordinate System

Distributions Double arguments expect either a scalar (constant) value or an arbitrary distribution that is related to the coordinate system of the previous step. In the latter case, a factor can also be applied which multiplies the given ordinate values of the distribution:[function, factor]

Select the coordinate system in order to provide knowledge about the functions abscissa and ordinate, see the next step.

5

Input Arguments

Set the input for the input arguments of the feature definition.

This is helpful in case that a normalized function is given which requires ordinate scaling.

Page 27 of 119

FRIENDSHIP-Framework User Guide A.8 Surface Modeling

A.8

Surface ModelingThere are different convenient creator commands available via the console. Most frequently, feature definitions are used for creation of point-based surfaces. The following exemplary creation steps start with a set of four given points which are input for a creator command.

IntroductionSurfaces are defined via a 2D domain [0,1] x [0,1] for the surface parameters u and v. For instance, a 3D surface position is received via the commandmySurface.getPos(0.5,0.7)

1

Point Selection

Select four points in the order that is illustrated below.

for u = 0.5 and v = 0.7. Location: menu > create > surfaces. Quality Assessment In order to judge fairness and curvature characteristics, each surface allows visualization of isophotes and curvature plots. For a selected surface, choose the different materials in the category Display Options in the ObjectEditor.

2

Creation

Type the following command into the console while the four points are selectedbsplinesurface mySurface( 4, 4, false )

BSplineThe BSpline surface is based on a 2D (N x M) array of point or vector data. Furthermore, the knot vectors for both the u- and v-direction determine the surface shape too. They are set by means of simple double arrays.

The surface gets created and for both the u- and vdirection four control vertices are used. These vertices are not created as point objects (false) but they are inherent numerical part of the surface. During creation, the command checks the selection set for suitable input since the last argument of the command actually which is not typed expects four points. In general, if possible the last argument gets always filled up with data from the selection set.

3

Modifications

Select the surface and activate the edit mode (button at the upper left corner of the GUI). This visualizes the

Page 28 of 119

FRIENDSHIP-Framework User Guide A.8 Surface Modeling

control vertices which can be dragged around or set manually. Leave the edit mode after the modification.

1

Curve Selection

Select the curves in the desired order. The order will determine the surface shape and its orientation.

NURBSThis point-based surface type is related to the bspline surface from above. Apart from control vertices and knot vectors, weights can be set for each vertex for more modeling freedom. This has to be provided as a 2D array of double values. Please see the bspline surface for more information.

2

Creation

Choose menu > create > surfaces > lofted surface.

Surface of RevolutionFor this surface a curve is rotated with respect to an arbitrary input axis.

Ruled SurfaceThe ruled surface type generates a linear interpolation between two input curves.

1

Generatrix

Create an arbitrary curve which shall be rotated for surface creation.

1

Curve Selection

2

Rotation Axis

Select the two curves (again, if no curves are selected then set them afterwards via ObjectEditor).

Create an arbitrary axis using the line type or set one of the principal axes.

2

Creation

3 4

Creation

Choose menu > create > surfaces > ruled surface.

Choose menu > create > surfaces > surface of revolution. Settings

Lofted SurfaceThis NURBS surface generates a lofted surface by means of a set of arbitrary input curves.

Set the rotation axis and generatrix for the surface.

5

Angles

If desired set an angle interval in order to restrict the generation range in the rotational direction.

Page 29 of 119

FRIENDSHIP-Framework User Guide A.8 Surface Modeling

Coons PatchThis surface is created by means of bilinear interpolation between four boundary curves that are located in the 3D space.

Orientation Apart from the default orientation (moving away from the surface) the orientation can be reversed too. Tangent Factor This value influences the intensity of the tangential direction along the surface boundary. Factor Damping This optional curve input allows applying a function along the surface boundary which amplifies or damps the tangential factor. The curve needs to be modeled within the xy-system and within the range [0,1] that directly corresponds to the surface edge interval.

1 2

Create

3

Number of Edge Points

Choose menu > create > surfaces > coons patch. Boundary Curves

Set the boundary curves for the surface. Different curve orientations are corrected internally. In case the corners are not coincident the surface does not fit into the boundaries.

The tangential fillet is basically constructed at discrete positions along the surface boundaries. The number of these positions can be specified. The higher this number the more accurate the resulting fillet surface will be finally. This entry can be found in the category General.

Interspace SurfaceThis surface is a result of merging two NURBS or BSpline surfaces with the same topology, i.e. the same number of control vertices and the same degree. The linear interpolation between these two surfaces includes the weights and is controlled via a single scalar value (regulator) that runs from zero to one.

Fillet SurfaceThis surface type is created between two given surface boundaries having a smooth transition (C1-continous).

1 2

Create

Choose menu > create > surfaces > fillet surface. Start and End Surface

An interspace surface can nicely be used for variation purposes between two favored surface designs, e.g. from an IGES import. Only a single value needs to be changed for variant creation.

Set the surface from which the fillet starts and where it shall end up. Edge Set the surface edges.

1

Surface Selection

Select the two NURBS/BSpline surfaces. Take care that they have the same topology.

2

Creation

Choose menu > create > surfaces > interspace surface.

Page 30 of 119

FRIENDSHIP-Framework User Guide A.8 Surface Modeling

3

Regulator

Linear Setup In order to quickly create a linear setup of a sub surface, select the parent surface and create a sub surface. Then type the following command into the console while the sub surface is selected:.createLinearSetup()

Set a value for the regulator entry. The default is 0.5. As mentioned before, this value can be exchanged by a design variable for automatic variant creation between the two surfaces.

Sub SurfaceParts of a surface can be extracted and represented by a sub surface. This surface type is based on user-defined surface curves where each of them is related to the parent surface.

Note the dot . at the beginning of the command. This creates domain and surface curves that are automatically referenced by the subsurface. Adjust or replace the domain curves to the individual needs.

Poly SurfaceSimilar to the poly curve the poly surface combines a set of arranged surfaces into a single surface. By doing so, the set of surfaces is then addressed via a single parameter interval.

1

Sub Domain

Create a sub domain with four domain curves in the xyplane within the interval [0,1] x [0,1].

2

Surface Curves

Create four surface curves by means of the domain curves.

1

Surface Orientation

3 4

Creation

Make sure that the surface orientations are well arranged according to their adjacent domain directions. See t