Vous êtes sur la page 1sur 377

The AnyBodyTM Modeling System AnyScriptTM Reference Manual

Version 4.0.1, May 2009

Copyright c 2009, AnyBodyTM Technology A/S Home: www.anybodytech.com

Contents
1 Introduction 1.1 1.2 1.3 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Important Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to Write AnyScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4 1.5 Declarations and Initializations . . . . . . . . . . . . . . . . . . . . . . . . References and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . Comments and Include Statements . . . . . . . . . . . . . . . . . . . . . . Including Main Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Class Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 4 6 6 7 9 9 10 11 13 15 15 16 16 17 17 19 19 21 22

Organization of the Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to Read the Class Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 1.5.2 Expected Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obligatory-Initialization Members, Optional-Initialization Members, and Denied-Access Members . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6

What Happens Inside AnyBody . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 1.6.2 1.6.3 The Loading Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mathematical Expressions and Evaluation Moments . . . . . . . . . . . . Runtime Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Basic Classes 2.1 Class Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

AnyObjectGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyObjectTreeElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyRealObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyCongFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Any3DObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyCamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyCameraModelView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyCameraLookAt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyDesVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyDesMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyCamRecorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunctionArgList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyOutputFolderGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyOutputFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyAbscissaFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyMainFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyStdSettingsRoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyConsoleSettingsRoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyStdGlobalRoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySystemValuesFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySystemValuesFloatFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySystemValuesIntFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyRefObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Variables and Expressions 3.1 Mathematical and other Expressions . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23 23 23 24 24 24 25 25 26 27 28 29 30 31 32 32 33 33 34 34 34 34 35 35 35 35 37 39 39

ii

3.1.2 3.1.3 3.2 3.3

Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40 41 44 47 49 49 49 49 50 50 50 51 51 51 51 52 53 53 53 54 54 54 54 55 55 55 56 56 57 57

Class Tree and Overview of Data Types . . . . . . . . . . . . . . . . . . . . . . . Class Tree of Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

AnyValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFileVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySurfFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyIntVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyIntArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyIntArray2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyVarRef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyRGBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyRGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFloatVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyVec3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyVec4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyMat33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyOutputFloatLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyOutputFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyOutputFloatPostProc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyObjectSearchString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyStringVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyChartSerieTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

AnyStringVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyStringArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyRefFrameAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumFloatNumberStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumPointMarkerStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumLineStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumLine3DStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumLine3DCapStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySwitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySwitchVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyDBType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyDesMeasureType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumOptSolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyMuscleRecruitmentSolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyKinEqSwitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumFourierSerieType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyKinRotationalType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumMuscleRecruitmentType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumMuscleRecruitmentNormalizationType . . . . . . . . . . . . . . . . . . . . . AnyInterPolType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFilterType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyChartStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyEnumMessageType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFun3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunTransform3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

57 57 58 58 58 59 59 60 60 60 61 61 62 62 62 63 63 64 64 65 65 66 66 67 67 67 68 69 70 70

AnyFunTransform3DIdentity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunTransform3DLin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunCross . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunRotMat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyOutputFun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyParamFun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunInterpol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnySearchFun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunLinFilterBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunLinFilterDesignBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunButterworthFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunLinFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunElemOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunElemByElemOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunSin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunASin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunSinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunACos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunCosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunTan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunATan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunTanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunLog10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunSqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunAbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunCeil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunFloor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

70 71 72 72 73 74 75 76 77 78 79 81 82 82 83 83 84 84 85 85 86 87 87 88 88 89 89 90 91 91

AnyFunRound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunPow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunMult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunDiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunAtan2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunNumElemOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunDimOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunSizesOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunNameOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunCompleteNameOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunClassNameOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnyFunStringValueOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92 92 93 93 94 95 95 96 96 97 98 98 99

AnyFunFormatString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 AnyFunVecOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 AnyFunVecSum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 AnyFunVecSecInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 AnyFunVecMean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 AnyFunVecProd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 AnyFunVecMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 AnyFunVecMin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 AnyFunVecVNorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 AnyFunConditional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 AnyFunIf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 AnyFunEq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 AnyFunLessThan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 AnyFunLessThanEq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 AnyFunGreaterThan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 AnyFunGreaterThanEq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 AnyFunAnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 vi

AnyFunOr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 AnyFunInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 AnyFunIntArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 AnyFunArrayCat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 AnyMonoFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4 Mechanical Objects 116

AnyMechObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 AnySurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 AnySurfSTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 AnyParamSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 AnyParamSurfAnalytical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 AnySurfEllipsoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 AnySurfSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 AnySurfCylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 AnyRefFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 AnyFixedRefFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 AnyPositionedRefFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 AnyRefNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 AnyMovingRefFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 AnySeg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 AnyForceMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 AnyForceMomentMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 AnyForceMomentMeasure2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 AnyMuscleModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AnyMuscleModel3E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AnyMuscleModel2ELin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 AnyMuscleModelUsr1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 AnyKinMeasureBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 AnyKinMeasureUsr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

vii

AnyForceBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 AnyAppliedForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 AnyMuscle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 AnyGeneralMuscle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 AnyViaPointMuscle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 AnyShortestPathMuscle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 AnyShortestPathMuscle2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 AnyLigament . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 AnyViaPointLigament . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 AnyForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 AnyForce3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 AnyMoment3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 AnyReacForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 AnyKinMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 AnyKinMeasureReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 AnyKinLinear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 AnyKinCoM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 AnyKinPLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 AnyKinSPLine2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 AnyKinSPLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 AnyKinRotational . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 AnyKinMeasureCombBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 AnyKinMeasureNormComb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 AnyKinMeasureLinComb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 AnyKinMeasureOrg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 AnyJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 AnyStdJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 AnySphericalJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 AnyTransSphericalJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 AnyCylindricalJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 viii

AnyRevoluteJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 AnyPrismaticJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 AnyUniversalJoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

AnyKinEq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 AnyKinEqDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 AnyKinEqSimpleDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 AnyKinEqPolynomialDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 AnyKinEqFourierDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 AnyKinEqInterPolDriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 AnyLigamentModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 AnyLigamentModelPol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 4.1 4.2 4.3 5 Class Tree for AnyMechObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Class Tree for AnyKinMeasureUsr . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Class Tree for AnyKinMeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 212

Drawing and Styling Objects 5.1

Drawing Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

AnyDrawObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 AnyDrawObjectRigid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 AnyDrawObjectRigidFormatted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 AnyDrawRefFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 AnyDrawSeg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 AnyDrawNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 AnyDrawNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 AnyDrawSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 AnyDrawSTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 AnyDrawParamSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 AnyDrawCamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 AnyChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 AnyDrawVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

ix

AnyDrawLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 AnyDrawPLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 AnyDrawViaPointMuscle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 AnyDrawMuscle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 5.2 Scene Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

AnySceneObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 AnyScene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 AnySceneViewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 5.3 Style Dening Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

AnyStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 AnyStyleDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 AnyChartObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 AnyChartSerie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 AnyChartText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 AnyChartTextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 AnyChartStyleFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 AnyChartLegendFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 AnyChartSeriesFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 AnyChartAxisUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 AnyChartAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 AnyStyleDrawLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 AnyStyleDrawLineWithCaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 AnyStyleDrawPointMarkers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 AnyStyleDrawLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 AnyStyleDrawLineCap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 AnyStyleNumeric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 AnyStyleNumeric1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 AnyStyleNumeric1f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 AnyStyleNumeric2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 AnyStyleFont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 x

AnyOutputFileHeaderFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 6 Studies and Operations 6.1 274

Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

AnyStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 AnyDesStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 AnyDesEvalStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 AnyParamStudyBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 AnyParamStudy1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 AnyParamStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 AnyOptStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 AnyTimeStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 AnyMechStudyBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 AnyKinStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 AnyBodyCalibrationStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 AnyBodyStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 AnyMechStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 AnyMechStudy1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 AnyBodyStudy1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 6.2 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

AnyOperation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 AnyOperationDummy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 AnyMechOprBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 AnyMechOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 AnyMechOprKinAnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 AnyMechOprInvDynAnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 AnyMechOprInvMuscleDynAnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 AnyBodyMusTenLenCalOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 AnyBodyLigamentLenCalOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 AnyMechOprDeprecated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

xi

AnyMechOprSubProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 AnyOperationSequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 AnyDesEvalStudyOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 AnyParamStudyOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 AnyOptStudyOpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 AnyMechStudy1ModelInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 AnyMechStudy1SetInitCond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 AnyMechStudy1KinAnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 AnyMechStudy1InvDynAnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 AnyMechStudyModelInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 6.3 Operation Settings Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

AnyOprSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 AnyOprSetOptim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 AnyOprSetNRSimplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 AnyOprSetOOSolSimplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 AnyOprSetOOSolQP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 AnyOprSetMuscleRecruitment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 AnyOprSetMuscleRecruitmentNormalization . . . . . . . . . . . . . . . . . . . . . . . 346 6.4 External Data Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

AnyDataFileBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 AnyOutputFileBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 AnyOutputFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 AnyMechOutputFileBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 AnyMechOutputFileEquilEqExport . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 AnyMechOutputFileForceExport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 AnyInputDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 AnyInputBVH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 AnyInputC3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 AnyInputFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

xii

Chapter 1 Introduction
This document is the reference manual for the AnyBodyTM Modeling System or rather the modeling language AnyScriptTM. AnyScriptTM is AnyBodyTMs model denition language. Please beware that this manual is partially generated by a software with access to the data structure of AnyBodyTM. The generated information should therefore always an accurate map of the associated version of AnyBodyTM, cf. the version number on the title page. AnyScriptTM is continuously being developed and so is the information in this manual. The newest version can always be found on AnyBodyTM Technologys homepage (www.anybodytech.com). Please do not hesitate to contact AnyBodyTM Technology if you need more information or have suggestions for improvements of this manual or the functionality in AnyScriptTM. This introductional chapter explains some general issues and terminology associated with the AnyScriptTM language and the data structure in AnyBodyTM. AnyScriptTM is an object-oriented language with a xed set of available data types (classes). This means that you cannot dene your own types and you cannot, like in a programming language, write algorithms. An AnyScriptTM le is purely consisting of denitions (declarations) of objects and the internal data structure in AnyBodyTM maps these denitions completely.

1.1 Terminology
The rst and most obvious thing you may have noticed already, is that a lot of things are called Any-something. You may come to like this or hate it, but anyway there are good reasons for this choice of terminology. The principle is that the names of all data types (i.e. all class names) start with Any. The historical reason is that they are the classes of the AnyBodyTM modeling language, and the name AnyBody implies that it is a system for making models of any body, be it a human, a dog, or a dinosaur. Similarly, you may think of a class as the basis for making any object of that type; for instance the base class for any type of object is called AnyObject, i.e., all objects are also AnyObjects. The practical reason for this standardization of the class names is that it makes class names easy to distinguish from object names and other identiers. It provides a primitive form of syntax highlighting, which was particularly nice in earlier versions of AnyBodyTM where color highlighting in the AnyScriptTM 1

2 editor did not exist. If you get tired of the many Anyies, you can often skip them in oral communication without losing the meaning. Even in this manual you will nd us speaking of objects, folders, segments, etc. even though it would be more strictly correct to speak of objects of the types AnyObject, AnyFolder, and AnySeg. We believe you will appreciate this. The remaining part of this section contains brief explanations of terms that will be used frequently while describing the details of the AnyScriptTM language. Objects are the actual elements you create/dene by the AnyScriptTM declarations. They are also referred to as the instances of the classes, i.e., you can have many objects (instances) of the same class. Classes: A class is an object type specication. Classes can be derived from other classes whereby they inherit properties from the class they are derived from. Typically they add more properties to inherited ones in order for their existence to be justied. In AnyScriptTM all classes are derived from one class, which implies that all classes can be organized in a tree with one root according to their derivation. There are three categories of classes in AnyScriptTM: Creatable classes are the classes you can actually use, meaning that you can dene objects of these classes. Abstract classes: Objects of abstract classes cannot be declared in AnyScriptTM. They lack some of the information necessary to be fully operational entities. Their purpose is to provide some kinship between derived classes, so they are typically found high in the class hierarchy. Hidden classes are classes that primarily exist for convenient organization of the programs functionality. Knowledge about these will be of little relevance to the standard user. Class Templates are AnyScriptTM dened templates for a class. In principle, Class Templates are not real classes, like the built-in AnyScriptTM classes, but they do indeed work almost like the real classes. Since the Class Templates can be dened in AnyScriptTM code, they can be dened by the user. Class tree or class hierarchy is the tree of classes ordered according to the inheritance. In relation to the relative location of classes in the tree, the following terms are used: Parent class or base class are names for the class a given class is derived from. The parent or base class is the root in a tree of all the classes derived from it. Child or derived class are names for the classes that are derived from another class, the base class. Object tree or object hierarchy is the tree of objects. This is a map of the existing objects in a model and it can be browsed in the user interface of the system after proper loading of the model in AnyBodyTM. There are in principle two types of objects: those that can contain others and those that cannot. The former are the nodes of the object tree and the latter the leaves. The basic classes of these two kinds are the AnyFolder, which can contain other objects, and AnyValue, which is parent of all classes that hold values, i.e., basic data. AnyFolder is the

3 parent of most classes because any modeling object typically hold data for user input and output of results; this is what makes the functionality of the class accessible. The following terms are used to describe object relationship in the object tree: Owners are the objects that contain other objects. This implies that an owner is of the class AnyFolder or derived from AnyFolder. Members are the objects dened inside a given object, i.e., the owner. Properties are the values stored in members, so we may speak of the properties of a given class (the owner of the property-holding member), for instance the mass of a segment. This implies that properties are stored in classes that are derived from AnyValue. Folder scopes: AnyScriptTM les are divided into scopes delimited by braces, "{" and "}". The scope of a folder is opened by "<foldername> = {" and closed by "}". The scope of a folder can contain initialization of existing members and declarations of new members, i.e., initialization for the folder. The folder scope can be thought of as the "value" of a folder. General description of the use and access of scopes shall not be given here, but a number of special issues regarding scopes shall be mentioned below. Main is rst scope you encounter in an AnyScriptTM model. This outer scope is where the user denes the model. Main is a special folder that is predened in the system so that it can be lled (initialized) without declaration. Therefore, all AnyScriptTM models start with the phrase "Main = {", which open the Main scope for initialization. There exists only one Main folder and Main is a restricted keyword. Global is actually the outer most scope which among others contains the Main folder. As Main, Global is a special folder, which is predened by the system. The scope of Global is not accessible for initialization by the user, but it functions to contain predened objects that the system makes available to the user. The access to these objects is facilitated by a special mechanism of the AnyScriptTM compiler that makes all objects in the Global folder available from anywhere in the script, i.e., from any scope. To the user it appears as if these global objects exist in all scopes. Apart from Main, typical contents of Global is mathematical constants and functions. Restricted keywords are all words that cannot be used for object names. All class names are restricted keywords, as well as all names of the members of the Global folder. Moreover, all names of predened members appear as restricted keywords in the given scope. Object names: All objects are identied by names, the object names. An object is uniquely identied by its name and the folder it is member of, i.e., there can be only one object with a given name in each folder. The object name can consist of letters (case sensitive), digits (not in the rst place) and underscores. Adding the identication of the folder in front of the object name, you can uniquely refer a given object. This will be covered in more details in a following section. Class operations: The concept of class operations is introduced in AnyBodyTM version 3.0. It is a special kind of functions (or operations as we shall call them) that are associated with a class and thereby with objects of that class. In C++ you call them member functions; but in AnyScriptTM we have both functions and operations as classes (AnyFunction and AnyOperation, please see Section 1.2), which implies that we can have members of these classes in an object. This could also be interpreted as member functions or member operations. Therefore,

4 we have come up with a new name for this type of operations that are associated with a object through its class denition. Currently, class operations are not documented in the class reference pages, but you will see them in the AnyBodyTM GUI when you right-click objects in the object tree (i.e. the Model Tree attached to most of AnyBodyTMs windows). Class operations typically provide some sort of interface between the user and the data in the object. By this mean, objects can be made to supply more information than normally available by just browsing the members of the object. Object Description: The Object Description is the most basic class operation, which is associated with AnyObject and thereby all other classes. It basically prints a message with all sorts of information about the objects. Notice that in AnyBodyTMs GUI this message will be presented in a special window with active links that enables you to move around in the system according to the information presented. This is a simple, yet powerful source of information about objects. Comments in the code: Comments in the code is a concept known in all developped programming languages, i.e., text written in the source les that only serve to document the code but without being compiled. In AnyScript comments look much like in C++, for a more detailed description see Sections 1.3.3 and 1.3.5 In AnyScriptTM there are two types of comments. Source code comments are comments documenting the source code as known from most other programming languages. They are completely disregarded by the AnyScriptTM compiler and their only objective is to assist the reader of the source code. Documentation Comments are associated with objects in the model. They are clearly marked in the code and they can therefore be read by the AnyScriptTM parser and stored together with the objects. Later these comments made by the model programmer can be used by the AnyBodyTM system to assist the user of the model, for instance these comments are included in the description prepared by the Object Description class operation. See Section 1.3.5 for more details. There are three ways to make such Documentation Comments: Prexed Document Comments are placed just before the initialization of an AnyScript object. Postxed Document Comments are placed right after the ending ";" of an AnyScript object initialization. Scope-xed Document Comments can be placed anywhere in the middle of the scope of an AnyScript object initialization.

1.2 Important Classes


In this section, we shall describe a number of basic and particularly important classes. Detailed description of these classes are naturally found in their own manual pages, but the description here serves to provide some overview of how the AnyScriptTM language is designed. As you may discover many of these important classes are abstract base classes, so their importance actually comes from the role of dening core concepts in the language.

5 AnyObject This is in priciple the base class of all classes. In other words, all objects in AnyScriptTM are AnyObjects. AnyValue Value objects are objects that can contain values of specic types. The actually data types are dened in AnyValue-derived classes. As such AnyValue objects, are the base class for all value or all variables. AnyRefObject An AnyRefObject is reference object that makes a link between a place in the code and an exsisting object somewhere else. You do not declare an AnyRefObject directly; you declare an object of the type you are referering to and by the reference operator "&" you indicate that it is a reference, see also Section 1.3.2. Thereby, the reference holds the information of the objects it points to as well as a type (class) indicator. AnyFolder AnyFolders are containers of other objects. Most classes are actually derived from AnyFolder due of this property, but also AnyFolder itself is important for collecting and organizing your models systematically. AnyCongFolder A special branch of AnyFolders is the AnyCongFolders. AnyCongFolderderived classes pocess special functionality for loadtime conguration. This is needed for many classes that have a computational kernel in order to congure these computations and their relationship to other classes/objects. AnyFunction Function classes are a special branch of classes derived from AnyFunction. A function class denes AnyScriptTM functions that can enter into expressions, mathematical functions for instance. The name of a function object becomes the identier you must use to call the function in an expression. The majority of AnyFunction-derived classes are simply standard (mathematical) functions, of which one instance is predened globally. For instance sine and cosine are dened by the classes AnyFunSin and AnyFunCos, and two predened global objects called "sin" and "cos", respectively, provide the user with the expected ability to call sin and cos from any expression like in most other programming languages. However, some function classes are user declarable, implying that you actually can declare one (an instance) in the script code. This gives you a kind of local function and typically such a function requires initialization of certain attributes that make the particular instance of the function special. AnyStudy Studies are derived from AnyStudy. A study class is collection of facilities that dene a certain type of investigation (or study) that you might want to do. This implies that the study class consist of functionality, for instance mathematical routines and algorithms, for setting up and solving a given problem. For instance AnyMechStudy (and derived classes) are studies for making simulations of a mechanical systems. In addition to the actual capabilities for performing the invetigations in question, a study also contains the necesarry functionality for setting up the investigation for instance by means of other classes. For instance the AnyMechStudy analyzes all the AnyMechObjects it contains; these are the denition of the mechanical system to be analyzed. AnyOperation Operations are an important part of the interface between the model and AnyBodyTMs user interface. Operations are AnyFolders, but they have the special function that they dene certain actions that can be done on the model. Typically, a study contains one or more operations that allow the user to execute the investigations that the study contains. Some operations can however stand alone without being part of a study.

6 AnyMechObject Base class for all mechanical objects that are used to dene a model of a mechanical (hereunder musculoskeltal) system. Mechanical objects are basic building blocks using a multibody dynamics formalism. AnyDrawObject Base class for all draw objects that are a objects, which can be visually displayed in the Model View of AnyBodyTMs GUI application. This is noticeable because it illustrates the general differentiation between model and view in AnyScriptTM. A mechanical element in the model does not per default give any displayable view. The view is produced by objects that are dened by the user in connection to the model. This gives the user complete freedom to dene a view that suits a given purpose.

1.3 How to Write AnyScript


This section gives a brief introduction to the rules for writing an AnyScriptTM le or les. In many ways AnyScriptTM looks syntactically like C++ or Java and this is a deliberate choice. In fact, if you compare AnyScriptTM to popular programming languages, you may nd that it is very similar to JavaScript. The syntax is much the same, and AnyScriptTM shares the property with JavaScript that it works on a set of predened classes and does not let the user dene new classes. Some of the syntactic similarities are the uses of braces to delimit different sections of the model from each other and the fact that each declaration is terminated by a semicolon. The main difference is that AnyScriptTM does not contain any executable statements, so you cannot specify a sequence of events, i.e., write algorithms; AnyScriptTM is purely declarative contrary to all the other languages mentioned above. In the following sections, we shall now look closer at the principles of the writing AnyScriptTM.

1.3.1 Declarations and Initializations


As we have already mentioned briey the Main folder plays a special role as a container of the entire model. This means that a basic AnyScriptTM le must contain "Main = {... <model content> ... };". You could dene all the objects of the model in one big pile inside the Main folder. This would create a very at but also somewhat messy object tree. So users normally prefer to organize the objects of the model in subfolders according to some system. For instance, a folder could contain objects of similar types, or it could be a particular body part. The folder structure plays an important role for complex models of the entire body. It allows such models with many hundred element to be composed of models of body parts developed by different users. AnyFolder can be nested as much as you nd practical for your model; AnyScriptTM does not make any restrictions in this regard. Notice that all statements in AnyScriptTM end by a semicolon. We have this in containing "Main = {... <model content> ... };" statement and this is indeed how all statements must end. A declaration of an object is made be writing the class name followed by the name, you want for the object. The object name can consist of letters (case sensitive), digits (not in the rst character of the name) and underscores. The declaration denes (creates) a new object that did not exist before, i.e., a new instance of the class. The object declaration must also contain an initialization of the

7 objects value. This is done by an equality sign followed by an acceptable value for the given class. A complete declaration must look like "<ClassName> <objectname> = <value>;". The <value> can for folders be a scope containing multiple statements inside braces or it value-objects it can be simple values or expressions. Some objects are not declared directly in the script; they come into the model as predened members of others, their owner. Most folder classes, except for AnyFolder and some other basic classes, have such predened members, which are implicitly declared when you declare the owner. Some folders classes may contain other folders as members, which may contain other folders and so on, and in this way a simple declaration an object of such a complex class can lead to a multiple levels and many properties in the resulting object tree. An existing object, i.e., a predened member of another object, can be initialized with a statement similar to the declaration; in this case you should simply omit the class name, because the object already exists, i.e. "<objectname> = <value>;". All objects that hold values (AnyValue-derived) can only be initialized once from the script. Folders, however, can be initialized many times, because a initialization of a folder actually is the same as opening its scope and adding to it. The folder initialization looks like "<foldername> = {... <content> ... };" Actually, the start of the AnyScriptTM le, "Main = {... ", can be regarded as merely an initialization of the Main folder. Multiple initializations of a folder allow you to add contents to folder from many places in your script. This is a very important feature when creating complex models that are composed of many building blocks, but it is beyond the scope of this section to explain the details. Please refer to the tutorials in the AnyBodyTM documentation for futher treatment of this issue. The sequence of declarations of objects in AnyScript does in general not matter. This can be allowed due to the fact that you only declare objects, i.e., state the existence of them; you do not dene sequences of events like in most programming languages. AnyScriptTM will look for objects in the entire object tree if you refer to a existing object. This implies that you can declare an object in the bottom of your le and refer to it in the top. Some classes do however use the sequence of its members to determine certain properties that may be use in subsequent computations. In such case, it is not advisable to declare such sequence sensitive members from different initialization of the folder-object, because the sequence actually will be resolved by the script compiler. Doing it inside a single folder initialization scope is safe because the sequence of the members then becomes the same as the sequence in the code.

1.3.2 References and Expressions


You can refer to objects by their names. Inside the scope of a given folder, the members names are unique, i.e., no two objects can have the same name. You can also refer to objects that are located in other folders. This can be accomplished in two ways: by absolute and by relative references. Both reference types are made by indicating the objects owner in front of the object name and dots (.) are used as separators as customary in object-oriented programming and internet addresses. Absolute references are made by the so-called complete name of an object. The complete name species all owners from the root, i.e. from Main, and to the object like for instance "Main.<foldername>.<subfoldername>.<objectname>". This absolute reference to an object is valid from any scope in model.

8 A relative reference is however only valid from that particular scope level. You can refer further down in the object tree from a given level like the absolute reference refers down from the Global scope, for instance "<membername>.<membersmembername>.<objectname>". You can also refer up the model tree. A dot in front of the name indicates one level up the tree, i.e., "...<foldername>.<objectname>" refers to the member of a folder three levels up from the current scope. Absolute and relative references can be used on the left hand side of the equality sign in an initialization; however, the more common use is on the right hand side for specication of the value. All value objects (derived from AnyValue) can be initialized as equal to another value of the same type. Moreover, expressions using mathematical operators and functions are allowed to a certain degree, primarily for classes holding numerical values. Mathematical functions are objects of special function classes derived from the base class called AnyFunction. Therefore, expressions consist entirely of references to objects and/or direct values combined by operators. Folders cannot be initialized with another object. So you cannot, as could be expected, copy everything from one folder to another by initializing one folder by another. What you can do, however, is to make special referencing objects that refer to an existing folder (this is much like references and pointers in C and C++). Such references are made by objects of the class AnyRefObject, but they are not declared in the script by this class name; they are declared by a class name of the object you want to refer to and the so-called reference operator (&, like in C++). A reference object declaration looks like: "<TargetClassName> &<refobjectname> = <targetobjectname>", where <targetobjectname> is a folder object specied by either absolute or relative referencing. What can the reference objects (or in short just references) be used for? Actually they are a very important and powerful feature of AnyScriptTM. Many objects use other objects of particular classes, which they expect to the user declare as members. For instance many mechanical objects need their attachment points to be dened by declarations of reference frames inside the mechanical object. Often these points are already existing in other places in the model and here it is possible simply to make a reference object pointing to the real object. The real object exists only once, but through the reference object it appears to exist in two places. It cannot be emphasized too much that there is only one object and when its properties are changed, the changes will appear in the all places including the references. There is more important comment about the declaration of references to be made. It has just been stated that a reference object is declared by the class name of the target object and the reference operator; however, the class specication does not have to be an exact match of the target objects type. Any parent class of the target object is valid as reference type specication. It can be advantageous not to use exact class matches for reference and target, if you occasionally change the class of the target or change the target to another object of another class. If all your possible target classes have a common base, this base class may be a more practical choice for type denition of your reference. There may however be restrictions on how general a base class you can choose depending on the function the reference object has. If you make a reference specied as an AnyObject, AnyScriptTM can not resolve whether it is folder class, a value class, or some much more specic class. This means that you lose the information about the special features of a class, if you refer to it with a parent class as class specier.

1.3.3 Comments and Include Statements


To make your AnyScriptTM le more legible you can benet from making comments and splitting your model into several les. Both can be realized by features adopted from the C++ language. Comments that are ignored by the AnyScriptTM compiler can be made in two ways: An entire paragraph can be excluded from the compilation by bounding it with "/*" and "*/", and a single line can be excluded by a leading double slash, "//". The comment functionality can be used not only to write sensible messages to yourself or other readers of the code, but also to exclude parts of the code temporarily during development and testing of a model. Your models will soon grow too big and impractical for one le. Therefore, you can split them into several les referring to each other. This also allows you to reuse parts of the code in different models without having more than one le to maintain. Files are assembled by so-called include statement (similar to C and C++), i.e. "#include "lename.any". This type of statement makes the compiler read the given le, when it comes to the statement, as if its content had been typed in this place of the statement. The functionality of the include statements implies that you must always have one so-called Main le, i.e., a le starting with "Main = {" and ending with "};". From this you can include other les, which may include other les and so on. Include statements can be nested as much as you nd practical. Include les do typically also use the extension ".any", but they do not contain "Main = {" statement. Include statements and their functionality to assemble a model from many parts is an indispensible feature of AnyScriptTM when developing large, complex body models. For instance, it is often desirable to separate body and application parts of the model so that the same body model can be included in other applications without having multiple copies. Complex models should always be organized in several les to ensure their manageability and practical reuse of building blocks of code. Please refer to he tutorials of the AnyBodyTM documentation for further information about how to organize your models pratically.

1.3.4 Including Main Files


Notice that you can in fact also include Main les from other les. This functions in principle is just like any other include statement, but it deserves as few comments. The special thing in this situation is that the Main folder is actually a globally dened folder, which implies that regardless of the scope in which this folder is opened, all additions to the folder will go to the top level folder. Related to include statement, this implies that whereever you include a Main le, the same thing happens, namely that you add all what is declared in the included Main le to your current models Main scope. This can indeed be confusing and it is not recommended to include other Main le from various arbitrary les in your model. Do it from the top level if needed, so that it is as transparent from the code as possible. Also notice that the Main le can only be included once; already at the second attempt all member declared in the included Main le will conict with already existig object from the rst inclusion. There is one nice application, where it can be nice (and commendable) to include a Main le from another Main le. This is if you are making extensions to an existing model, but you would like these

10 extensions to stay separated from the existing code. For instance, you may be adding test facilities you only need temporarily or once in a while, and you do not want these facilites to inuence the appearance of the model, which you may share with your coworkers. In this case you can make new Main le, include your common Main le, and do you additions in the new le. Similarly, you can also use the functionality to combine two models, if they are properly designed for coexistence inside the Main scope. For this case however, it may be advisable to design the models as separate building block each a non-Main, include le.

1.3.5 Model Documentation


From version 2.0 of AnyBodyTM, comments starting with either "/**" or "///" have been given a special meaning. These will be treated as part of a special model documentation that is stored together with the model objects and made available to the users of the models without requiring them to read the AnyScriptTM source code. From version 3.0, these comments are collected with other object specic information to form an Object Description function, which for instance can be accessed from all Model Trees in the AnyBodyTM GUI. Comments using "/**" or "///" must be attached to an object in the script code. This is done by placing the comment right in front the initialization of the object. This is refered to as a prexed Documentation Comment. Documentation Comments can also be posxed, i.e. placed right after an object initialization, but this requires an additional "<" after the preceding mark, i.e., "///<" and "/**<". This is convennient when documenting "small" objects like variables and the like. A third method is convenient for "larger objects", i.e. folders. Folders can documented in the midle of the folder scope. We shall refer to this as scope-xed Documentation Comments. A scopexed Documentation Comment is marked by adding an additional "" after the preceding mark, i.e., "///" and "/**". This is convenient when documenting a section of code in the scope of an object, for instance from the inside of an #include le used during initialization of the object. Inside the #include le there will be no access to the start or end of the objects scope, but still the contents of the le may be worth commenting on. This is particularly convenient if the include le is used multiple time from different objects in the model, in which case it would require multiple identical Documentation Comments if they were made outside the include le, in the vicinity of the #include statement. Folders can be initialized several times and Documentation Comments can be made for each initialization. Multiple such comments are collected into one text, when presented in the AnyBody application. In the AnyBody GUI such collected presentations of Documentation Comments typically contains links to the code for each comments. This can be a powerful tool for navigating the AnyScriptTM code of "large" objects being initialized in many places.

11 Future releases: This feature is still under development. It was the idea that the Model Documentation can be exported together with other model information on XML format and that this output can be further processed outside AnyBodyTM by standard XML related technologies (e.g. by XSL/XSLT style sheets transformations) to provide (HTML) documentation of the model. The basic format of the output to XML format was completed, but no further processing is currently available to the user. Moreover this exporting showed to be very inefcient, so currently (version 3.0) the Model Documentation Comments have been made available inside the AnyBodyTM system. The exporting function may not be available in all version of AnyBodyTM since it is still a feature under development Any requests, feedback, and wishes for use of this feature will highly appreciated by AnyBodyTM Technology and it is our hope that users will develop pratical nal format and share them with the AnyScriptTM community.

1.3.6 The Preprocessor


Version 3.1 and 4.0 of AnyBodyTM has introduced a new and more powerfull preprocessor. Previously, the preprocessor only expanded #include-statements during the le scanning process, whereas the new preprocessor introduces features, such as macros and conditional code, known from C and C++ compilers. In addition to these fairly simple code elements adopted from C/C++, a number of special features exist in the AnyScriptTM preprocesser. In particular, the concept of Class Templates has been introduced in version 4.0. Class Templates is an advanced form of code macros that upon usage, i.e. when expanded by the preprocessor, will work almost like declaration of a object of a built-in AnyScriptTM class. A Class Template does, like a macro, have a name and this is used almost like built-in AnyScriptTM class names during declaration of instances (instantiation) of a Class Template. The following section provides a more detailed description of Class Templates. Below is a complete list of the statements allow by the preprocessor. Notice that all preprocesser keywords starts by the character #. #include: The #include-statement is a statement that takes the content of a le and inserts it at the location of the statement. It has already been explained in Section 1.3.3 Comments and Include Statements and it was originally the only element of the AnyScriptTM preprocessor. Syntax: #include "lename.any" #import: The #import-statement is a statement much like #include-statement. However, the #importstatement is only allowed before the Main folders scope and the statement will only import Class Templates from source le. Read more about Class Templates below. Syntax: #import "lename.any" #dene: The #dene-statement links a piece of code to an identier. When the idetier is used later, it is substituted with the piece of code by the preprocessor. In this way, it works much like the #include-statment, except the code does not come from an external le. Due to this

12 function it is occationally called a macro, or code macro not to confuse it with macro les that can be used in the console version of AnyBodyTM. In contrast to #include-statements, #denestatements can however take arguments, which makes #dene-statements more exible. Syntax: #dene <identier> <single-line-code> Syntax: #dene <identier>(<arg1>,...) <single-line-code-using-the-arguments> Multi-line code can be made by using double backslash to end all the lines but the last. #path: The #path-statement allows to link a directory path to an identier that subsequently can be used in #include-statements as well as in other AnyScriptTM expressions. It functions a bit like the #dene-statement, except that it does not take argument and the content is validated as an actual #path-statement during model loading. Syntax: #path <identier> "path" #undef: #undef-statments undene macros made by #dene-statements. Syntax: #undef <identier> where the <identier> must be previously dened. #if - #else: The #if-statement gives the posibility for conditional code. Simple expressions, e.g. operating on indetiers made by #dene-statements, can be use to select between blocks of AnyScriptTM code. Variants of the #if-statement use respectively #ifdef or #ifndef testing on whether an <identier> is dened or not-dened. Syntax: #if <expression> <multi-line-code> #else <multi-line-code> #endif Syntax: #ifdef <identier> <multi-line-code> #else <multi-line-code> #endif Syntax: #ifndef <identier> <multi-line-code> #else <multi-line-code> #endif #class_template: Class Template declaration specier. Syntax: #class_template <identier> (<arg_list>) { <multi-line-code> }; where <arg_list> is a comma-separated list of optional arguments. Each argument in the list can have either of the following forms Syntax: <identier> <identier> = <value> <class_name>& <identier> where <identier> is the argument name, <value> is a default value, and <class_name> is a AnyScriptTM class name. This implies that arguments can either be simple arguments, i.e., preprocessor values, or object references.

13 #default: The #default-specier indicates that existing default values should be maintained upon instatiation of a Class Template; please refer to the #var-specier for further details on usage of the #default-specier. #var: The #var-specier species that a value member in a Class Template shall be treated as a member that can be initialized upon instantiation of the Class Template by the user. The #varspecier is placed before the declaration of a member value or before initialization of existing members. The #var-specier is only allowed inside the scope of a Class Template. Syntax: #var <identier>; #var <identier> = <value>; #var <identier> = #default; where <identier> is an exsisting member, i.e., a member that is declared implicitly as a default member of another object via its decalaration. Initialization with #var specication provides a default value; this implies that initialization upon instantiation of the Class Template is optional (i.e. Optional-Initialization Member). The #default-specier indicates that previously dened default values are still valid; this is only allowed for exisiting members that originally have default values, i.e., Optional-Initialization Members. Omitted initialization implies that no default value exist and therefore initialization upon instantiation is required (i.e. Obligatory-Initialization Member). The #var specication can also be used directly on declaration of new value members: Syntax: #var <class_name> <identier>; #var <class_name> <identier> = <value>; where <class_name> is a valid name of a value-class, i.e., a class derived from AnyValue. Notice that the "life" of preprocessor identiers dened by #dene and #path follows the sequence of the code so they exist after the statement appear, but not before, and only until undened by #undef. Only #dene-statements can be undened. A #path-statement creates an AnyScriptTM variable with the same name as the #path identier in the global Path folder, and notice that this variable is accessible from all parts of the model, even from code before the #path-statement. This is the reason why #path variables cannot be undened.

1.3.7 Class Templates


Class Templates are in principle not real classes, like the AnyScriptTM built-in classes, but they do indeed work almost like the real classes. Class Templates are on the contrary to built-in classes dened in the AnyScriptTM code and can therefore be dened by the user. Since they are in fact handled by the AnyScriptTM preprocesser as a form of advanced macro being expanded when the preprocesser parses the code, there are indeed some differences to real classes. However, the basic objective of Class Templates is indeed allow AnyScriptTM users to making user-dened classes. In fact, the motivation behind introducing Class Templates in version 4.0 of AnyBodyTM was to provide a facility to nicely encapsulate lumps of code that is intended for systematic reuse. Previously,

14 such code was typically placed in #include les, which could then be included in many places. However, this approach offers no interface denition of the information provided to the reused code from outside and therefore, it offers no systematic assistance in using the reused code correcttly. Class Templates offers such interface denition and therefore a foundation for nicer encapsualtion of the code block, in particular in a form that looks and feels like a normal class. Please notice the following about Class Templates: Class Templates can only dene a collection of objects. You cannot implement an algoritmic functionality, like member functions, as you might expect knowing other object-oriented programming language. Also at this point, AnyScriptTM is merely a declarative language. Instances of Class Templates are in principle folder-object, i.e., object of class AnyFolder. This AnyFolder will contain all the members that have been dened as members in the Class Template. Member initialization control: Class Templates offers encapsulation of the members, similar to the functionality known from the normal built-in classes. All members are accessible for instance from AnyBody Model Tree Views, but initialization of the members from the script in controlled. Members can be Denied-Access, Optional-Initialization, or Obligatory-Initialization members, respectively. By default, initialization is denied but using the #var-specier initilization can be allowed, please refer to the previous section for syntax details. Existence of default values determines whether a member may or must be initialized. Class Template argument Class Templates can have template arguments, i.e., arguments used during the instantion of the object. Since these argument are being used by the preprocessor, they must resolvable by the preprocesser. This put limits on what such arguments can hold; in principle it can hold preprocesser values, i.e., values dened by #dene-statements or expressions hereof, just like the values allowed in #if-statements and the like. In addition however, object references can be parsed through the template argument list. Object references require type declarations in the template argument list needed for argument validation. Arguments just holding preprocesser values do not require any type specication, but such arguments can contain default values. Inside the Class Template, this type of arguments can be regarded as preprocesser identiers as if they were created by #dene-statements in normal AnyScriptTM code. Conditional code: The template arguments can be used inside the Class Template to control active pathes of the code. This is done by preprocesser #if-statements. This is powerful feature for building advanced "user-dened classes" by means of Class Templates. Instantiation of Class Templates (or declaration of Class Template objects) are in principle like built-in classes, except that Class Template may need the template arguments to be specied. This is in principle done like Syntax: <class_template_name> <identier> (<identier1>=<value>,...) = { ... <multi-line-code> ...

15 }; where <identier> is the object name, and <identier1> is a template argument name. Notice that template arguments can be listed in any sequence, not matching the Class Template denition, but you must specify the argument name in the list. This syntax has been chosen in order to accomodate very long argumnet list, where many (most) arguments have default values that often does not need modication. This is expected to be the case larger, advanced "classes" dened using Class Templates.

1.4 Organization of the Manual


The manual is organized in a number of chapters: Basic Classes describes the classes that the whole data structure is founded on. Variables and Expressions describes the leaves of the object tree, hereunder mathematical quantities and the operations associated with these. Mechanical Objects contains descriptions of all objects that can be used in creating a mechanical model, hereunder a body model. Drawing Objects contains descriptions of objects that are used for creating a visual representation of the model in the Model View Window of AnyBodyTM. Operations and Studies describes objects for doing things to the model. Each chapter is centered about one or more branches of the class tree and its contents is ordered according to the sequence of class derivation. The particular branches of the class trees are shown in the beginning the chapter. The remaining part of the chapter consists of the class descriptions that are structured information pages about each of the classes.

1.5 How to Read the Class Descriptions


The class descriptions are structured similarly for all classes. In the top, information on the class name, type, and parent class is found, followed by a description of the class (when available). The members of AnyFolder-derived classes are explained in tables according to the type of access the user can or must have to the members. The types of access fall into the following categories: Expected Members Obligatory-Initialization Members Optional-Initialization Members Denied-Access Members The members will be described in tables, one associated with each of the four categories.

16

1.5.1 Expected Members


Expected members are members that do not exist in the object by default when it is created. These must be declared by the user either as objects or as references to objects existing somewhere else in the model. The expected members are described in a table such as the one below:

Expected Members
Class <classname1> <classname2> <classname3> Number [0..Inf] [1..5] [2] Description A class of which any number of member objects optionally can be specied. A class of which one to ve member objects are required. A class of which exactly two member objects are required.

The former expected class in the table, classname1, illustrates a case where it is optional to dene member objects of the given class. This is actually the case for any class for which nothing else is stated in the table. You may however still nd this specication of an "optionally expected" member class. This may occur in cases where the particular member class can be used for something by the owner, but does not need to be present.

1.5.2 Obligatory-Initialization Members, Optional-Initialization Members, and Denied-Access Members


These three categories of members are the default members that exist as soon as the owner object is created. Some members must be initialized, some may be initialized, and nally some cannot be accessed at all from the AnyScriptTM input le. The former two are settings, parameters, or properties so to speak of the owner object, whereas the latter typically is output in some sense. Below is an example of a table holding such members

Optional-Initialization Members
Class <classname1> <classname2> Name <objectname1> <objectname2> Description This is the 1st member This is the 2nd member (default values)

Some member descriptions contain values in parentheses. These are the default values and/or descriptions of limits and options. For instance AnyEnum-derived classes show all possible options with the default being underlined. The tables for members that must be and can be initialized do not only hold the members of the given class, but also members of members, and their members, etc. The names of these members are given with full related name. The reason for this is to make the tables provide a full overview of the accessible properties of a given class, even though some of these properties belong to its members.

17

1.6 What Happens Inside AnyBody


In this section, we shall attempt to describe the the way AnyBodyTM, or rather the AnyScriptTM kernel of it, works. We shall do this in very general terms, which means that we are not going into detail about particular operations of particular classes. We shall focus on general functionalities and properties of a model when it is loaded into AnyBodyTM. In order to cover these issues, we shall rstly consider the loading process, i.e., the processes that take place from initiating the loading of a model le until it is completely loaded. Afterward, we shall generally consider runtime processes. Runtime processes are envoked by executing operations (AnyOperation objects).

1.6.1 The Loading Process


The loading process is described best by explaining the sequence of procedure that take place. This is done in the list below. Scanning During the scanning the les are actually loaded into the computers memory for further processing. This implies that #include-statements are resolved and the so-called le tree is constructed. The new and extended preprocessor introduced in version 3.1 is also playing its primary role at this stage. Not only #include-statements are resolved, but also all other functions related to preprocessor statements, see Section 1.3.6, are handled at this stage. The nature of the functions in the preprocessor is code sequence dependent in contrast to normal behavior in AnyScriptTM code. Parsing The parser breaks the text input into pieces and during this the basic syntax is checked since it must comply with the AnyScriptTM denition for the parser to understand the input. Basic syntactical errors are reported during this stage. Furthermore, the parser establishes some basic relations between the model in memory and the AnyScriptTM code, which are later used by the system to assist the user getting from the model (in memory) to the code. Constructing model tree Having parsed the text input, the parser can construct the data structures for the objects declared in the code. It hereby constructs the basic model tree that you nd available in the Model Tree View in AnyBodyTMs GUI application. However, this is not the nal complete tree, as we shall see later. This stage also implies basic validation of the data structure and related error reporting if necessary. The new preprocessor introduced in version 3.1 also extends the capabilities of the construction step. Simple AnyScriptTM expressions can be evaluated already by the preprocessor in this stage and the results can therefore function as input to the creation of the objects. It could for instance be a lename that is resolved this early, so that the le can be found and used during the construction of an le object to import needed data to form the objects members. Alternatively this could not happen until the Conguration step far later, after most model links are established and xed beyond further change. This early behavior allows such le object (and their like) to behave almost like #include les, i.e., creating objects with unlimitted access from the rest of the model. The trade-of is that the variables evaluated this early can only have limitted connection with other model parameters, since they are evaluated before most things are identied properly in the model.

18 Linking identiers During this stage, values and references are linked together according to the expressions in the code. This implies various checks of the validity of the expressions such as check for existence of all refered identiers, cyclic referencing, type validation of references. Evaluating constants Having linked and validated all expressions, the mathematical expressions for values that are constant throughout the excution of the model are evaluated. These values play a special role, because they are input to the subsequent conguration stage. During this evaluation, the expressions are also checked for dimensional compatibility and the like, and AnyValues having undened dimensionality or dimension sizes are automatically set to t the expressions. Conguration The conguration is a very important and complex process, in which the objects prepare themselves for performing their functionality. This implies that certain objects, that collect and combine information from many classes/object, for instance studies (AnyStudy and derived), establish links to their dependencies and process their information. This procedure relies on relationships between objects (and their classes) and it is carried out in well dened sequence. If nothing else is implied for a given class there is assumed a downwards relationsship in the object tree, so that the conguration of an object (folder objects only) may depend on its members. This is however not sufciently general and therefore special classes (derived from AnyCongFolder) are able to state their own dependencies and allow the conguration to treat them accordingly. This do for instance imply that basic mechanical objects are congured before the mechanical studies that use them. Notice that the conguration sequence is not visible for the user. Notice also that during the conguration, new objects can be created into the object tree by exsiting objects. This has the special signicance that you may nd objects in the object tree, which cannot be referred to by references and in mathematical expressions as these links are validated before the conguration step. Evaluating model After the conguration, the model is more or less ready. This means that intial values of all non-const AnyValues can be set. This is done during the Evaluating Model stage. Notice that this rst evaluation, as for the constant values evaluated before the conguration, implies a mathematical check of the expressions including automatic denition of udened dimensionalities and dimension sizes of vectors, matrices and higher order tensors supported by the AnyValue types. Post loading process Finally a post process is carried out. This stage makes the nal preparation of the data structure. An important issue in this stage is the output data structures in the studies (AnyStudys Output folder) are congured. This cannot take place before, because the studies must be congured and all mathematical relations must be ready before that output is well-dened. This has the important implication that you cannot make mathematical expressions that directly access data in the output data structures for the simple reason that expressions are validated before the output exist. There is an indirect workaround to this using the AnyOutputFun. After the loading process as described above is completed succesfully, the model is ready for execution of the operations it contains. We shall refer to this as runtime operations or processes. We shall consider this briey in Section 1.6.3 but rstly we shall turn our attention towards the mathematical expressions and their evaluation.

19

1.6.2 Mathematical Expressions and Evaluation Moments


We have in the previous sections just mentioned that some variables are evaluated before the conguration of the model and some after. This divides the variables into constants and runtime variables. The value of these variables can in principle be controlled in two ways, either by objects using them, i.e., a system controlled value, or by expressions that have been specied in the model, i.e., a (more) user controlled value. In previous versions of AnyBodyTM (version 1.x.x and earlier), mathematical expressions were almost exclusively evaluated during the loading process as described in the previous section. However, in version 2.0 a more dynamic evalution scheme has been introduced in which mathematical expressions dened by in the script will be evaluated during runtime processes. This is handled by assigning a so-called evaluation moment to each variable. The evaluation moment species in principle when a user controlled value will be evaluated and when system controlled values are ready for use.

Basic Evaluation Moments


PreProcessVar Preprocessor variable (constants) that are evaluated during the preprocessor stages, i.e., before and during the objects of the model is constructed. These can only hold simple expressions with limitted dependence to other objects in the model. Also error handling for this step of evaluation is simpler. Constants that are evaluated before the conguration stage and they are therefore input to the conguration. Conguration dependent variables that are evaluated right after the conguration stage. They are thereby also constants but they are a result of the conguration rather than input to it. Runtime variables may change value during operations on the model.

Const CongVar

"RuntimeVar"

"Runtime variables" (or RuntimeVar) is a actually a common name for several evaluation moments. These are not covered here in detail, because they will be different depending on version and conguration of the AnyBodyTM system. It is so that a study class typically denes (or enherits) certain evaluation moments that have to do with the specic steps in the particular investigation of that study. Future releases: Notice that these facilites are under further development and future versions of AnyBodyTM will attempt to making the evaluation handling system more transparent to the user. From AnyBodyTM version 3.0, the name of evaluation moments will be available in object generated object descriptions.

1.6.3 Runtime Processes


Runtime processes are started by the user by executing operations (AnyOperation-derived) from the AnyBodyTM interface, be it the console or the GUI application. Operations are typically split into several steps that are sequentially executed, such as the time steps of a simulation or parameter

20 variation steps of a parameter study. Both interfaces of AnyBodyTM allow you to do a complete execution of an operation as well as stepwise execution. During stepwise execution you will be able to follow the changes in the model for each step, whether as displayed image in the Model View of the GUI application or as a value variation in dumbed values of charts. Each step of an operation may involve one or more evaluations moments and after each "moment" has occured in the opertion algorithm, the associated values are updated. An example is the mechanical studies (AnyMechStudy). The mechanical study is based on AnyTimeStudy, which is the base class for all studies related to time-varying analyses. In the AnyTimeStudy, an evaluation moment identies the change of time as well as the evaluation of output values in the end of the analysis step. These two evaluation moments are extended in the mechanical studies with evaluation moments the identify the different steps in the kinematical analhysis, such as position, velocity and acceleration analysis, as well as a step for the kinetic (force) analysis. Doing one step of for instance the InverseDynamicAnalysis in the AnyMechStudy will automatically take your model through these step and corrsponding evaluation moments. Runtime processes may be executed sequentially and occasionally also nested into each other. Design studies execute other operations in order to investigate the impact of design changes. An evaluation moment identifying the change of a design parameter is introduced prior to the the above mentioned steps in the AnyTimeStudy and AnyMechStudy, and a later moment is introduced to identify the end of the analysis operations. In this way, the design study can change design parameters and and their dependent values, then execute the analysis operation (or a sequence of several operations) updating all its evaluation moments, and nally extract and compute design characteristic output (so-called design measures)based on the nal evaluation moment of the design study.

Chapter 2 Basic Classes


This chapter describes the fundamental classes that are the basic building blocks for the AnyScript language. This makes the chapter of primary interest for AnyBody developers and for users who want to have a general overview of the data structure in AnyBody. During typical use of AnyBody for modeling and analysis purposes, the classes in this chapter are of less relevance. This is evident from the relatively large number of hidden classes described in this chapter. The functionality of the classes in this chapter cover the following: Fundamental data structure, i.e., the root and the close-to-root classes in the class tree. Implementation of special features/functionality in a proper encapsulation and properly separated from other parts of the code. These features may not seem to be particularly important from a users point-of-view, but they do provide the foundation. Often a single feature is implemented into a single class, and the full functionality that is needed to get real operational classes is obtained by derivation. Therefore invisible (hidden) base classes occur frequently in this chapter because they are such designated holders of subsets of features. Testing functionality which is and should be used by the developers only.

21

22

2.1 Class Tree


AnyObjectGeneral (see p. 23) AnyObjectTreeElement (see p. 23) AnyObject (see p. 23) AnyRealObject (see p. 24) AnyFolder (see p. 24) AnyCongFolder (see p. 24) Any3DObject (see p. 25) AnyMechObject (see p. 117)> AnyCamera (see p. 25) AnyCameraModelView (see p. 26) AnyCameraLookAt (see p. 27) AnyDrawObject (see p. 213)> AnyOperation (see p. 316)> AnySceneObject (see p. 242)> AnyDesVar (see p. 28) AnyStudy (see p. 276)> AnyFunction (see p. 69)> AnyDataFileBase (see p. 348)> AnyDesMeasure (see p. 29) AnyCamRecorder (see p. 30) AnyMessage (see p. 31) AnyStyle (see p. 246)> AnyFunctionArgList (see p. 32) AnyOprSet (see p. 339)> AnyOutputFolderGeneral (see p. 32) AnyOutputFolder (see p. 33) AnyAbscissaFolder (see p. 33) AnyMainFolder (see p. 34) AnyMonoFunction (see p. 115)> AnyStdSettingsRoot (see p. 34) AnyConsoleSettingsRoot (see p. 34) AnyStdGlobalRoot (see p. 34) AnySystemValuesFolder (see p. 35) AnySystemValuesFloatFolder (see p. 35) AnySystemValuesIntFolder (see p. 35) AnyValue (see p. 49)> AnyRefObject (see p. 35)

23

AnyObjectGeneral
Type: Hidden Base Class: The Root Description:
This is the most basic class and the base class for all other classes in the AnyScript data structure. From a AnyScriptTM-users point of view, the AnyObject class is the base class from a practical point of view, but some of the fundamental contents and functionality is placed separately in the parents of AnyObject, of which AnyObjectGeneral in the most basic class. This class simply provides a relationship between all derived classes and functions for type comparison, but this functionality is not directly accessible for the AnyScriptTM-user.

AnyObjectTreeElement
Type: Hidden Base Class: AnyObjectGeneral (see p. 23) Description:
This class extends the parent with facilities for being a part of the AnyScriptTM tree-like data structure. This implies Ability to be owned by/member of another object. Ability to be referred to by a reference object. Ability to be registered in the AnyScriptTM class tree. Object name.

AnyObject
Type: Abstract Base Class: AnyObjectTreeElement (see p. 23) Description:
This is the base class for all abstract and creatable objects in the AnyScriptTM data structure, so in practice this is the real base class of all object in the data structure. Its basic functionality is to

24 be common to all the derived classes and its actual contents and functions are implemented in the parents. For further details please study these classes.

AnyRealObject
Type: Abstract Base Class: AnyObject (see p. 23) Description:
This class is the base class of all "real" objects. Real objects are the objects that contain real data as opposed to objects that are "references" to other objects. All references must eventually be linked to a real object.

AnyFolder
Type: Creatable Base Class: AnyRealObject (see p. 24) Description:
This is the base class of all folders, i.e., the nodes of the tree-like data structure.

AnyCongFolder
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
This is the base class for all folders/objects that contain a data structure, which needs to be congured during the conguration stage of the loading process. This class takes care of the conguration sequence.

25

Any3DObject
Type: Hidden Base Class: AnyCongFolder (see p. 24) Description:
System folder type. No description available.

AnyCamera
Type: Creatable Base Class: Any3DObject (see p. 25) Description:
AnyCamera is the base class for camera classes. Camera objects dene a view point for the model scene. A camera can be attached to a 3D object in the model or in scene. This object then denes the references frame of the camera. Derived camera classes may have extended functionality for dening the view point reference. The view point reference system is dened so it looks along the negative z-axis. It can show both perspective or orthograc points of view . The scene is bounded close to the eye and far away (typically beyond the model) by the so-called near and far clipping planes. The location of theclipping planes are specied by the distances Near and Far in the view point reference. Feature such as zoom, perspective aspects, and the like are dened indirectly by the focal plane. The focal planes distance from the eye in given by FocalDist and zoom and aspect effect are given by the height of the image in this plane. This height is given by FocalHeight Notice that all distances mentioned so far are in real physical model units.

Object Members:
Expected Members
Class Any3DObject AnyScene Number [0..1] [0..1] Description Denition of the reference frame or object, the camera is attached to. Denition of scene settings. If more than one exists, only the former is used by the camera. If none exists, default settings are used.

26

Optional-Initialization Members
Class AnyVar AnyVar AnyVar Name FocalDist FocalHeight Near Description Distance to the focal plane in (model units). (=1) Height of the view area in focal plane (model units). (=1) Distance from eye to the nearest clipping plane (model units). Everything closer to the eye point is not visible. (=0.001) Distance from eye to the farest??? clipping plane (model units). Everything further away from the eye point is not visible. (=1000) Switch for perspective view. Alternatively, the view is orthographic. (=Off, Options: Off | On)

AnyVar

Far

AnySwitchVar

Perspective

AnyCameraModelView
Type: Creatable Base Class: AnyCamera (see p. 25) Description:
This is a basic and simple camera implementation that primarily is intended to support interactive Model View of the AnyBody applications. You can however use this camera class in AnyScript models too. This can be practical because you can nd nd your choice of view settings using the inactive Model View in AnyBodys GUI application, and then insert those directly in your AnyScript dened camera. This camera introduces the point being looked at by the LookAtDist distance. This distance can be the same as the anynameFocalDist, but it does not have to be. The LookAt point is the pivot of the camera during interactive rotations. This implies that if LookAtDist is equal to FocalDist the view is rotating about the center of the focal plane, whereas if LookAtDist is zero the camera rotates about itself (about the eye point). This camera class does not accept being attached to other 3D objects.

Object Members:

27

Expected Members
Class Any3DObject AnyScene Number [0..1] [0..1] Description Denition of the reference frame or object, the camera is attached to. Denition of scene settings. If more than one exists, only the former is used by the camera. If none exists, default settings are used. Description Distance to the focal plane in (model units). (=1) Height of the view area in focal plane (model units). (=1) Distance from eye to the nearest clipping plane (model units). Everything closer to the eye point is not visible. (=0.001) Distance from eye to the farest??? clipping plane (model units). Everything further away from the eye point is not visible. (=1000) Switch for perspective view. Alternatively, the view is orthographic. (=Off, Options: Off | On) Positioning vector for the camera/eye point. (={0, 0, 0}) Orientation view point reference frame given by Euler Parameters (quarternions). (={0, 0, 0, 0}) Distance from the camera/eye point to the origin point (e.g. used as rotation center). (=0)

Optional-Initialization Members
Class AnyVar AnyVar AnyVar Name FocalDist FocalHeight Near

AnyVar

Far

AnySwitchVar

Perspective

AnyVec3 AnyVec4 AnyVar

Pos EulerPar LookAtDist

AnyCameraLookAt
Type: Creatable Base Class: AnyCamera (see p. 25) Description:
The LookAt camera is supposed to be an intuitively easier camera to position. The view point is dened by three points, the position of the eye, the position of the point being looked at (the look-at-point) and a point dening what is up (the up-point). This denes the view point reference system with the z-axis parallel to the vector between the look-at-point and the eye point. The y-axis is the normal vector from the view line (z-axis) to the up-point, and the x-axis is given so a right-handed view point system is obtained.

28 If the camera is attached to another 3D object then the coordinates of these points are assumed to refer to object reference frame; otherwise they are global points.

Object Members:
Expected Members
Class Any3DObject AnyScene Number [0..1] [0..1] Description Denition of the reference frame or object, the camera is attached to. Denition of scene settings. If more than one exists, only the former is used by the camera. If none exists, default settings are used. Description Distance to the focal plane in (model units). (=1) Height of the view area in focal plane (model units). (=1) Distance from eye to the nearest clipping plane (model units). Everything closer to the eye point is not visible. (=0.001) Distance from eye to the farest??? clipping plane (model units). Everything further away from the eye point is not visible. (=1000) Switch for perspective view. Alternatively, the view is orthographic. (=Off, Options: Off | On) Position the camera/eye point. (={0, 0, 0}) Position the point the camera/eye should look at. (={0, 0, 0}) Position a point that denes the up-direction of the camera. (={0, 0, 0})

Optional-Initialization Members
Class AnyVar AnyVar AnyVar Name FocalDist FocalHeight Near

AnyVar

Far

AnySwitchVar

Perspective

AnyVec3 AnyVec3 AnyVec3

EyePoint LookAtPoint UpPoint

AnyDesVar
Type: Creatable Base Class: AnyCongFolder (see p. 24) Description:
This class functions as a design variable container. Notice that the Val member contains the current value of the design variable. It is a special variable

29 class called AnyVarRef, which allows for two way linkage. Please refer to class AnyVarRef too. This implies two possible types of usage of the Val member: 1) Val can be initialized with a constant right-hand side, which may be a single scalar number or an expression entirely of numbers providing a single scalar constant when evaluated, i.e., Val = <scalar numerical constant>. This form of initialization does not allow two-way linkage and it implies, therefore, that Val is the real design variable of the problem. The constant right-hand side is the default value, which may be used by the studies that use the AnyDesVar as input (e.g. initial) values. 2) The AnyVarRef can be initialized with a single scalar variable value, which can be an AnyVar or a single element of any AnyFloat-variable of higher dimensionality, i.e., Val = <scalar variable quantity>. This case allows for two-way linkage between the AnyVarRef and the target value and the target value can be regarded as the real design variable in the problem; its value may be used as input to the design studies and when the studies change the design variable, the target value is updated accordingly. The second form is the most powerful usage of the AnyDesVar, since it allows you to link design studies with parameters in an existing model. There are, however, a couple of further restrictions on the use of Val. Val is associated with a special evaluation moment for design variables, which implies that you can only link to variables in the model that are also associated with this moment. Variables of earlier moments cannot be changed and variables of later moments will in principle have the effect overridden later; both cases produce an error during loading. If the target value does not have a well-dened evaluation moment, Vals AnyVarRef class will try to enforce the design variable moment upon it. Another restriction is that the target design variable cannot be dependent on other variables; it must be independent, i.e., initialized by a constant value.

Object Members:
Obligatory-Initialization Members
Class AnyVarRef AnyVar AnyVar Name Val Min Max Description Current value and possible reference to the real design variable in the model. Lower bound of the design space. Upper bound of the design space.

AnyDesMeasure
Type: Creatable Base Class: AnyFolder (see p. 24) Description:

30 This class denes design performance measures. They are used by AnyDesStudy-derived studies to measures the effect of design variable. The Val member should be initialized with an expression of the design measure needed. This may imply to get access to data in the Output folder of other studies that are part of the design analysis (i.e. declard or refered to from the Analysis operation in the AnyDesStudy object). Such access to output of studies may be gained by means of the AnyOutputFun function class. The Type member is used to specify the function of the measure as for instance objective function or various types of constraints in relation to an optimization (see AnyOptStudy). The measure can also be a plain output measure that does not play any role, except for being included in the output of the design study. The actual study in which the measure is used may interpretate the Type differently.

Object Members:
Obligatory-Initialization Members
Class AnyVar Name Val Description Current value.

Optional-Initialization Members
Class AnyDesMeasureType Name Type Description Type specication. (=OutputFun, Options: OutputFun | ObjectiveFun | EqualToZero | LessThanZero | GreaterThanZero)

AnyCamRecorder
Type: Creatable Base Class: AnyFolder (see p. 24) Description:
AnyCamReorder objects serve to record images from a camera to les. The image is recorded to the le given by the FileName member. FileName can hold a changing name expression thereby saving multiple les. This can for instance be achieved by using Counter in the expression for FileName: FileName = "MyCamera" + strval(Counter," The extension of le name controls the format of image le. It accepts the same formats as the AnyBody Model Views export feature. The camera recorder contains two members for controlling the recording, Trig and ResetTrig. Trig is the trigger state that indicates whether the image should be saved or not. ResetTrig is a state indicating whether to reset the camera or not. Resetting the camera implies that the Counter is set to

31 zero. Both Trig and ResetTrig can, similarly to FileName, hold dynamically updated expressions so that images recording can be turned on and off and reset according to the specic needs.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar AnyIntVar AnyIntVar Name FileName pxWidth pxHeight Description Output lename. Width of picture in of pixels. Height of picture in of pixels.

Optional-Initialization Members
Class AnySwitchVar AnySwitchVar Name ResetTrig Trig Description Trigger state for resetting the recorder. (=Off, Options: Off | On) Switch for trigger state. (=Off, Options: Off | On) Description Image counter. (=0)

Denied-Access Members
Class AnyIntVar Name Counter

AnyMessage
Type: Creatable Base Class: AnyFolder (see p. 24) Description:
This class functions to make user-dened messages. It uses the AnyBodyTM message system, but optian the message information from this type of object. The message is given by the string member Message. In addition to this, the message type and triggers for sending the message can be specied. The message can be send at any of three moment, during (or right after) the preprocesser, during the const evaluation, and the runtime evaluation. All three moment are passed during loading of the model, but the latter occur again during execution of operations after load Regarding message types, notice that all except the fatal error allows processes to continue. Fatal errors stop the current process such as running operations.

Object Members:

32

Optional-Initialization Members
Class AnySwitchVar Name TriggerPreProcess Description Trigger during evaluation of values after the preprocesser step in loading process. (=Off, Options: Off | On) Trigger during evaluation of constants while loading. (=Off, Options: Off | On) Trigger during runtime. (=Off, Options: Off | On) Message type. (=MSG_Message, Options: MSG_Message | MSG_Warning | MSG_Error | MSG_ErrorFatal) Message string. (="")

AnySwitchVar AnySwitchVar AnyEnumMessageType AnyStringVar

TriggerConst TriggerRuntime Type

Message

AnyFunctionArgList
Type: Abstract Base Class: AnyFolder (see p. 24) Description:
AnyFunctionArgList is a special folder that holds an argument list for mathematical functions (AnyFunction). It can only contain objects suitable as arguments for such functions and it can only be located inside an AnyFunction.

AnyOutputFolderGeneral
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
This class provides functionality for storing output data from the analyses that are carried out in the studies (i.e. AnyStudy and derived classes). Its only function is to provide kinship between its two children, AnyOutputFolder and AnyAbssicaFolder. For more details please study the descriptions of these two classes.

33

AnyOutputFolder
Type: Abstract Base Class: AnyOutputFolderGeneral (see p. 32) Description:
Objects of this class store the derived/computed output data from the analyses that are carried out in the studies (i.e. AnyStudy and derived classes). It also contains an AnyAbscissaFolder object that stores the input or independent parameters of a given analysis. The actual values of output for each set of input parameter values are stored in objects of class AnyOutputFloat that refer to the actual AnyValue objects and save their current value at designated points in the actual analysis. For more details on these designated points please refer to the description of the actual study in question. An AnyOutputFolder object may contain the AnyOutputFloat objects in a folder that mimic the structure of the real value objects in the study.

Object Members:
Denied-Access Members
Class AnyAbscissaFolder Name Abscissa Description Folder where the values of the abscissa/input parameters are stored.

AnyAbscissaFolder
Type: Abstract Base Class: AnyOutputFolderGeneral (see p. 32) Description:
This class functions much like AnyOutputFolder except that it stores the values of input parameters (or independent parameters) for the given study. These values are the ones that typically (default option) are used as abscissae in the Chart View of the AnyBodyTM GUI. The actual values are similar to AnyOutputFolder stored in objects of class AnyOutputFloat. An abscissa variable can be any AnyFloat. If it is a scalar (AnyVar) an array of values will exist inside the corresponding AnyOutputFloat i.e., one value for each abscissa iteration-step, for instance time steps in a time series analysis. If the abscissa variable is a vector or higher-order tensor, the data structure inside the corresponding AnyOutputFloat will contain an array of such tensors, i.e., one tensor-value for each abscissa iteration-step.

34

AnyMainFolder
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
Objects of this class are the top or root folder in the AnyScriptTM data structure. Such folders must be predened like the folder "Main" and their names are automatically restricted keywords in AnyScriptTM.

AnyStdSettingsRoot
Type: Hidden Base Class: AnyFolder (see p. 24) Description:

AnyConsoleSettingsRoot
Type: Hidden Base Class: AnyStdSettingsRoot (see p. 34) Description:

AnyStdGlobalRoot
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
This is the class of the folder that contains global information for the model. There exists only one instance of this class called Global. All members of this folder are globally accessible from anywhere in the script and as such their names are restricted keywords. Typical contents are standard

35 functions and universal constants.

AnySystemValuesFolder
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
System variables.

AnySystemValuesFloatFolder
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
Characteristic values for oating-point type value (AnyFloat).

AnySystemValuesIntFolder
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
Characteristic values for integer type value (AnyInt).

AnyRefObject
Type: Hidden Base Class: AnyObject (see p. 23)

36

Description:
Objects of this class are references to other existing objects in the model. Reference objects cannot be created directly by declaration of an AnyRefObject. Instead a reference is created by the class name of the referred class followed by the reference operator (&), for instance AnyObject& Ref2AnyObect = TheRealObject; // This is a reference to an AnyObject object.

Chapter 3 Variables and Expressions


This chapter contains the descriptions of the value classes of AnyScriptTM and the expressions that are possible on these classes. The value classes are derived from the class AnyValue. They dene the basic data types of AnyScriptTM, such as oating point numbers, integers, strings etc. Values can be initialized by assignment statements, i.e., "<objectname> = <value>;". Depending on the data type such assignments can contain more or less complex expressions of other values in the model, i.e. "<objectname> = <expression>;". You cannot make references to AnyValues as you can to AnyFolders; expressions however provide a similar functionality for linking values to each other. Expressions on these values can be formed by means a standard set of mathematical operators and functions. Functions are, as other elements in AnyScriptTM, implemented as classes (derived from the base class AnyFunction). Such classes dene a function, which is an entity that delivers a certain output value given certain input in a list of values (the argument list). For instance you will nd the standard trigonometric functions sine and cosine implemented in the classes AnyFunSin and AnyFunCos. When you apply a function in an expression, you use an object for the given function class. Contrary to other objects, AnyScriptTM accepts and require an argument list in parentheses after function object names when it appears in a right-hand side expression. The output value replaces the function objects in the expression during the evaluation. For instance you use an object called sin, which is of the class AnyFunSin, when you want to get sine of a number. The function is evaluated whenever the expression, of which it is part, is evaluated. For standard functions, such as sin and cos, the system has predened objects with practical names placed in the Global scope. Therefore, you do not need to make declarations of the objects before using them in expressions. This makes standard functions available, as one would expect, simply by typing the function name followed by the argument list in parentheses. However, for other functions, typically more complex ones with various options, you must declare the function object manually similar to any other object in AnyScriptTM. Hereafter the function can be accessed using the name of the object with either absolute or relative naming principles. Functions can be polymorphic, which means that the a given function class (AnyFunction) can hold several actual functions that can be distinguished from each other by their parameter list. They all share the same function name, which is the name of the AnyFunction object. The actual functions 37

38 are implemented in members of AnyFunction that are of the type AnyMonoFunction. Multiple AnyMonoFunctions in an AnyFunction provide polymorphism. From practical user point of view, these "MonoFunctions" do not have any signicance and they are typically implemented as Hidden classes.

39 Prior to the class descriptions of the values and function classes, this chapter contains the following sections: Class tree and overview of the data types (i.e. AnyValue and derived classes), see section 3.2. Class tree of function classes (i.e. AnyFunction and derived), see Section 3.3 Operators and expressions, see Section 3.1

3.1 Mathematical and other Expressions


AnyScriptTM supports mathematical relationships between primarily numerical variables. Mathematical expressions can be formed using standard operators and a number of standard functions, please refer to following subsections. In principle, such "mathematical" expressions can also be applied to non-numerical value, i.e., they apply in priciple to all AnyValue, but not all operations and functions are allowed for all data types. There will be functions that apply to numerical values only and functions that e.g. apply to strings values only.

3.1.1 Operators Operators in AnyScriptTM


[] Unary operators Postx gives transposition of a matrix or vector, i.e., one- or twodimensional AnyFloat. Any other dimensionality and prex gives an error. Unary minus (prex). Applies to tensors of any dimensionality. Binary operators Power operator. Second argument must be a scalar whereas the rst argument can be a tensor of any dimensionality. Multiplication and division operators. Multiplication functions as a multiplication of matrices and vectors as well as scalar. Multiplication or division of a tensor of any dimensionality by a scalar is allowed and carried out element by element. Addition and subtraction operators. Applies to tensors of any dimensionality, though operands must have the same dimensions.

[ ] [ ][ ] [ ] [ ], [ ]/[ ]

[ ] + [ ], [ ] [ ]

40

3.1.2 Constants Constants in AnyScriptTM


BandPass BandStop Bezier Bspline CartesianChart2D CartesianChart3D CompactNumber Cos CosSin DecimalNumber EqualToZero EulerParam GreaterThanZero HighPass LessThanZero Line3DCapStyleArrow Line3DCapStyleCylinder Line3DCapStyleDisk Line3DCapStyleEllipsoid Line3DCapStyleNone Line3DCapStyleVoid Line3DStyleFull LineStyleFull LineStyleHidden LineStyleNone LowPass MinMaxAQP MinMaxNRSimplex MinMaxOOSolQP MinMaxOOSolSimplex MinMaxSimplex MR_Constant MR_CurrentStrength MR_Linear MR_MinMaxAux MR_MinMaxStrict MR_NominalStrength MR_Polynomial MR_Quadratic MR_QuadraticAux MSG_Error MSG_ErrorFatal BandPass = 2 (Class: AnyEnumState, p.62) BandStop = 3 (Class: AnyEnumState, p.62) Bezier = 1 (Class: AnyEnumState, p.62) Bspline = 2 (Class: AnyEnumState, p.62) CartesianChart2D = 1 (Class: AnyEnumState, p.62) CartesianChart3D = 2 (Class: AnyEnumState, p.62) CompactNumber = 2 (Class: AnyEnumState, p.62) Cos = 1 (Class: AnyEnumState, p.62) CosSin = 0 (Class: AnyEnumState, p.62) DecimalNumber = 0 (Class: AnyEnumState, p.62) EqualToZero = 2 (Class: AnyEnumState, p.62) EulerParam = 2 (Class: AnyEnumState, p.62) GreaterThanZero = 4 (Class: AnyEnumState, p.62) HighPass = 1 (Class: AnyEnumState, p.62) LessThanZero = 3 (Class: AnyEnumState, p.62) Line3DCapStyleArrow = 5 (Class: AnyEnumState, p.62) Line3DCapStyleCylinder = 3 (Class: AnyEnumState, p.62) Line3DCapStyleDisk = 2 (Class: AnyEnumState, p.62) Line3DCapStyleEllipsoid = 4 (Class: AnyEnumState, p.62) Line3DCapStyleNone = 1 (Class: AnyEnumState, p.62) Line3DCapStyleVoid = 0 (Class: AnyEnumState, p.62) Line3DStyleFull = 0 (Class: AnyEnumState, p.62) LineStyleFull = 1 (Class: AnyEnumState, p.62) LineStyleHidden = 2 (Class: AnyEnumState, p.62) LineStyleNone = 0 (Class: AnyEnumState, p.62) LowPass = 0 (Class: AnyEnumState, p.62) MinMaxAQP = 4 (Class: AnyEnumState, p.62) MinMaxNRSimplex = 3 (Class: AnyEnumState, p.62) MinMaxOOSolQP = 2 (Class: AnyEnumState, p.62) MinMaxOOSolSimplex = 1 (Class: AnyEnumState, p.62) MinMaxSimplex = 0 (Class: AnyEnumState, p.62) MR_Constant = 0 (Class: AnyEnumState, p.62) MR_CurrentStrength = 1 (Class: AnyEnumState, p.62) MR_Linear = 2 (Class: AnyEnumState, p.62) MR_MinMaxAux = 1 (Class: AnyEnumState, p.62) MR_MinMaxStrict = 0 (Class: AnyEnumState, p.62) MR_NominalStrength = 2 (Class: AnyEnumState, p.62) MR_Polynomial = 5 (Class: AnyEnumState, p.62) MR_Quadratic = 3 (Class: AnyEnumState, p.62) MR_QuadraticAux = 4 (Class: AnyEnumState, p.62) MSG_Error = 2 (Class: AnyEnumState, p.62) MSG_ErrorFatal = 3 (Class: AnyEnumState, p.62)

41

MSG_Message MSG_Warning MS_Access MS_SQLServer_2000 MS_SQLServer_2005 MySQL ObjectiveFun Off On OptFeasibleDirSearch1 OptFeasibleDirSearch2 OptSimpleSearch Oracle OracleXE OutputFun pi PiecewiseLinear PointStyleBox PointStyleCross PointStyleCross2 PointStyleNone PointStyleSphere PointStyleStar RotAxesAngles RotVector ScienticNumber Sin SpaceAngles_ii SpaceAngles_ij x y z

MSG_Message = 0 (Class: AnyEnumState, p.62) MSG_Warning = 1 (Class: AnyEnumState, p.62) MS_Access = 2 (Class: AnyEnumState, p.62) MS_SQLServer_2000 = 1 (Class: AnyEnumState, p.62) MS_SQLServer_2005 = 0 (Class: AnyEnumState, p.62) MySQL = 3 (Class: AnyEnumState, p.62) ObjectiveFun = 1 (Class: AnyEnumState, p.62) Off = 0 (Class: AnyEnumState, p.62) On = 1 (Class: AnyEnumState, p.62) OptFeasibleDirSearch1 = 1 (Class: AnyEnumState, p.62) OptFeasibleDirSearch2 = 2 (Class: AnyEnumState, p.62) OptSimpleSearch = 0 (Class: AnyEnumState, p.62) Oracle = 4 (Class: AnyEnumState, p.62) OracleXE = 5 (Class: AnyEnumState, p.62) OutputFun = 0 (Class: AnyEnumState, p.62) 3.1415927 (Class: AnyFloatVar, p.53) PiecewiseLinear = 0 (Class: AnyEnumState, p.62) PointStyleBox = 1 (Class: AnyEnumState, p.62) PointStyleCross = 4 (Class: AnyEnumState, p.62) PointStyleCross2 = 5 (Class: AnyEnumState, p.62) PointStyleNone = 0 (Class: AnyEnumState, p.62) PointStyleSphere = 2 (Class: AnyEnumState, p.62) PointStyleStar = 3 (Class: AnyEnumState, p.62) RotAxesAngles = 0 (Class: AnyEnumState, p.62) RotVector = 1 (Class: AnyEnumState, p.62) ScienticNumber = 1 (Class: AnyEnumState, p.62) Sin = 2 (Class: AnyEnumState, p.62) SpaceAngles_ii = 3 (Class: AnyEnumState, p.62) SpaceAngles_ij = 4 (Class: AnyEnumState, p.62) x = 0 (Class: AnyEnumState, p.62) y = 1 (Class: AnyEnumState, p.62) z = 2 (Class: AnyEnumState, p.62)

3.1.3 Standard Functions Standard Functions in AnyScriptTM


abs(oat), abs(int) acos(oat), acos(int) andfun(oat,oat), andfun(int,int), andfun(oat,int), andfun(int,oat) Absolute value function. (see class AnyFunAbs, p.90) Inverse cosine (arccosine). (see class AnyFunACos, p.85) Boolean and function. (see class AnyFunAnd, p.111)

42

arrcat(oat,oat), arrcat(int,int), arrcat(str,str), arrcat(le,le), arrcat(enum,enum) asin(oat), asin(int) atan(oat), atan(int) atan2(oat,oat), atan2(oat,int), atan2(int,oat), atan2(int,int) ceil(oat) ClassNameOf(oat), ClassNameOf(int), ClassNameOf(str), ClassNameOf(enum), ClassNameOf(le) CompleteNameOf(oat), CompleteNameOf(int), CompleteNameOf(str), CompleteNameOf(enum), CompleteNameOf(le) cos(oat), cos(int) cosh(oat), cosh(int) cross(oat,oat) DimOf(oat), DimOf(int), DimOf(str), DimOf(enum), DimOf(le) div(oat,oat), div(oat,int), div(int,oat), div(int,int) eqfun(oat,oat), eqfun(int,int), eqfun(oat,int), eqfun(int,oat), eqfun(str,str) exp(oat), exp(int) oor(oat) gteqfun(oat,oat), gteqfun(int,int), gteqfun(oat,int), gteqfun(int,oat)

Function for appending two arrays. (see class AnyFunArrayCat, p.114)

Inverse sine (arcsine). (see class AnyFunASin, p.83) Inverse tangent (arctangent). (see class AnyFunATan, p.87) The power function of all elements. (see class AnyFunAtan2, p.94) The ceil function of all elements. (see class AnyFunCeil, p.91) Returns the class name of an object. (see class AnyFunClassNameOf, p.98)

Returns the complete-name of an object. (see class AnyFunCompleteNameOf, p.98)

Cosine. (see class AnyFunCos, p.84) Hyperbolic cosine. (see class AnyFunCosh, p.85) Vector mulitplication (cross product) function. (see class AnyFunCross, p.72) Returns number of dimensions in an AnyValue structure. (see class AnyFunDimOf, p.96) Element by element division function. (see class AnyFunDiv, p.93) Equality testing function. (see class AnyFunEq, p.107)

The exponential function. (see class AnyFunExp, p.89) The oor function of all elements. (see class AnyFunFloor, p.91) Greater-than-or-equal-to testing function. (see class AnyFunGreaterThanEq, p.111)

43

gtfun(oat,oat), gtfun(int,int), gtfun(oat,int), gtfun(int,oat) iarr(int,int), iarr(int,int,int) iffun(oat,oat,oat), iffun(oat,int,int), iffun(int,oat,oat), iffun(int,int,int), iffun(oat,str,str), iffun(int,str,str) log(oat), log(int) log10(oat), log10(int) lteqfun(oat,oat), lteqfun(int,int), lteqfun(oat,int), lteqfun(int,oat) ltfun(oat,oat), ltfun(int,int), ltfun(oat,int), ltfun(int,oat) max(oat), max(int) mean(oat), mean(int) min(oat), min(int) mult(oat,oat), mult(oat,int), mult(int,oat), mult(int,int) NameOf(oat), NameOf(int), NameOf(str), NameOf(enum), NameOf(le) NumElemOf(oat), NumElemOf(int), NumElemOf(str), NumElemOf(enum), NumElemOf(le) orfun(oat,oat), orfun(int,int), orfun(oat,int), orfun(int,oat) pow(oat,oat), pow(oat,int), pow(int,oat), pow(int,int)

Greater-than testing function. (see class AnyFunGreaterThan, p.110) Function for making integer arrays. (see class AnyFunIntArray, p.113) If-then-else function. (see class AnyFunIf, p.106)

The natural logarithm. (see class AnyFunLog, p.88) The 10-based logarithm. (see class AnyFunLog10, p.88) Less-than-or-equal-to testing function. (see class AnyFunLessThanEq, p.109) Less-than testing function. (see class AnyFunLessThan, p.108)

The maximum of all elements in a vector. (see class AnyFunVecMax, p.104) The mean of all elements in a vector. (see class AnyFunVecMean, p.103) The minimum of all elements in a vector. (see class AnyFunVecMin, p.104) Element by element multiplication function. (see class AnyFunMult, p.93) Returns the name of an object. (see class AnyFunNameOf, p.97) Returns number of elements in an AnyValue structure. (see class AnyFunNumElemOf, p.95)

Boolean or function. (see class AnyFunOr, p.112)

The power function of all elements. (see class AnyFunPow, p.92)

44

prod(oat), prod(int) RotMat(oat,enum), RotMat(oat,oat,oat) round(oat) secint(oat,oat), secint(oat,int), secint(int,int), secint(int,oat) sin(oat), sin(int) sinh(oat), sinh(int) SizesOf(oat), SizesOf(int), SizesOf(str), SizesOf(enum), SizesOf(le) sqrt(oat), sqrt(int) strformat(str) strval(oat), strval(int), strval(oat,str), strval(int,str) sum(oat), sum(int) tan(oat), tan(int) tanh(oat), tanh(int) vnorm(oat), vnorm(int), vnorm(oat,oat), vnorm(oat,int), vnorm(int,oat), vnorm(int,int)

The product of all elements in a vector. (see class AnyFunVecProd, p.103) Rotational transformation matrix. (see class AnyFunRotMat, p.72) The round function of all elements. (see class AnyFunRound, p.92) The secant integral of a function given by a number discrete values. (see class AnyFunVecSecInt, p.102) Sine. (see class AnyFunSin, p.83) Hyperbolic sine. (see class AnyFunSinh, p.84) Returns number of dimensions in an AnyValue structure. (see class AnyFunSizesOf, p.96) Square root. (see class AnyFunSqrt, p.89) Formatted string function. (see class AnyFunFormatString, p.100) Returns the value of an object as a string. (see class AnyFunStringValueOf, p.99) The sum of all elements in a vector. (see class AnyFunVecSum, p.101) Tangent. (see class AnyFunTan, p.86) Hyperbolic tangent. (see class AnyFunTanh, p.87) The norm of a vector. (see class AnyFunVecVNorm, p.105)

3.2 Class Tree and Overview of Data Types


AnyValue (see p. 49) AnyFile (see p. 49) AnyFileVar (see p. 49) AnySurfFile (see p. 49) AnyInt (see p. 50) AnyIntVar (see p. 50)

45 AnyIntArray (see p. 50) AnyIntArray2 (see p. 51) AnyFloat (see p. 51) AnyVar (see p. 51) AnyVarRef (see p. 51) AnyRGBs (see p. 52) AnyRGB (see p. 53) AnyFloatVar (see p. 53) AnyVector (see p. 53) AnyMatrix (see p. 54) AnyVec3 (see p. 54) AnyVec4 (see p. 54) AnyMat33 (see p. 54) AnyOutputFloatLink (see p. 55) AnyOutputFloat (see p. 55) AnyOutputFloatPostProc (see p. 55) AnyString (see p. 56) AnyObjectSearchString (see p. 56) AnyStringVar (see p. 57) AnyChartSerieTitle (see p. 57) AnyStringVector (see p. 57) AnyStringArray (see p. 57) AnyPath (see p. 58) AnyEnum (see p. 58) AnyRefFrameAxis (see p. 58) AnyEnumFloatNumberStyle (see p. 59) AnyEnumPointMarkerStyle (see p. 59) AnyEnumLineStyle (see p. 60) AnyEnumLine3DStyle (see p. 60) AnyEnumLine3DCapStyle (see p. 60) AnySwitch (see p. 61) AnyEnumVar (see p. 61) AnySwitchVar (see p. 62) AnyEnumState (see p. 62) AnyDBType (see p. 62) AnyDesMeasureType (see p. 63) AnyEnumOptSolver (see p. 63) AnyMuscleRecruitmentSolver (see p. 64) AnyKinEqSwitch (see p. 64) AnyEnumFourierSerieType (see p. 65) AnyKinRotationalType (see p. 65) AnyEnumMuscleRecruitmentType (see p. 66) AnyEnumMuscleRecruitmentNormalizationType (see p. 66) AnyInterPolType (see p. 67) AnyFilterType (see p. 67) AnyChartStyle (see p. 67) AnyEnumMessageType (see p. 68)

46

47

3.3 Class Tree of Functions


AnyFunction (see p. 69) AnyFun3D (see p. 70) AnyFunTransform3D (see p. 70) AnyFunTransform3DIdentity (see p. 70) AnyFunTransform3DLin (see p. 71) AnyFunCross (see p. 72) AnyFunRotMat (see p. 72) AnyOutputFun (see p. 73) AnyParamFun (see p. 74) AnyFunInterpol (see p. 75) AnySearchFun (see p. 76) AnyFunLinFilterBase (see p. 77) AnyFunLinFilterDesignBase (see p. 78) AnyFunButterworthFilter (see p. 79) AnyFunLinFilter (see p. 81) AnyFunElemOpr (see p. 82) AnyFunElemByElemOpr (see p. 82) AnyFunSin (see p. 83) AnyFunASin (see p. 83) AnyFunSinh (see p. 84) AnyFunCos (see p. 84) AnyFunACos (see p. 85) AnyFunCosh (see p. 85) AnyFunTan (see p. 86) AnyFunATan (see p. 87) AnyFunTanh (see p. 87) AnyFunLog (see p. 88) AnyFunLog10 (see p. 88) AnyFunExp (see p. 89) AnyFunSqrt (see p. 89) AnyFunAbs (see p. 90) AnyFunCeil (see p. 91) AnyFunFloor (see p. 91) AnyFunRound (see p. 92) AnyFunPow (see p. 92) AnyFunMult (see p. 93) AnyFunDiv (see p. 93) AnyFunAtan2 (see p. 94) AnyFunInfo (see p. 95) AnyFunNumElemOf (see p. 95) AnyFunDimOf (see p. 96) AnyFunSizesOf (see p. 96) AnyFunNameOf (see p. 97) AnyFunCompleteNameOf (see p. 98)

48 AnyFunClassNameOf (see p. 98) AnyFunStringValueOf (see p. 99) AnyFunFormatString (see p. 100) AnyFunVecOpr (see p. 101) AnyFunVecSum (see p. 101) AnyFunVecSecInt (see p. 102) AnyFunVecMean (see p. 103) AnyFunVecProd (see p. 103) AnyFunVecMax (see p. 104) AnyFunVecMin (see p. 104) AnyFunVecVNorm (see p. 105) AnyFunConditional (see p. 106) AnyFunIf (see p. 106) AnyFunEq (see p. 107) AnyFunLessThan (see p. 108) AnyFunLessThanEq (see p. 109) AnyFunGreaterThan (see p. 110) AnyFunGreaterThanEq (see p. 111) AnyFunAnd (see p. 111) AnyFunOr (see p. 112) AnyFunInit (see p. 113) AnyFunIntArray (see p. 113) AnyFunArrayCat (see p. 114)

49

AnyValue
Type: Abstract Base Class: AnyRealObject (see p. 24) Description:
This is the base class for all classes the hold actual values such as numbers, strings, etc.

AnyFile
Type: Creatable Base Class: AnyValue (see p. 49) Description:
A special string class for storing le names in a multi-dimensional table.

AnyFileVar
Type: Creatable Base Class: AnyFile (see p. 49) Description:
A special string class for storing a single le name.

AnySurfFile
Type: Creatable Base Class: AnyFileVar (see p. 49) Description:
Class for le objects that hold geometrical surfaces. The format of the surface les is beasically STL (ASCII). However, AnyBody has its own format

50 with the extension ".anysurf". AnySurfFile objects creates the ANYSURF le and perform the conversion from STL to ANYSURF automatically, if needed. The need for updating the ANYSURF le is based on the dates of the les; if the ANYSURF le does not exist or is older than the STL le, it is updated. Please notice that the conversion takes some time. The benets of the ANYSURF les are: 1) They are smaller than STL 2) Special information required by AnyBody does not need to be extracted each time you load a model. This is information such as vertex normals, which is utilized for rendering and contact evaluation. This saves time, except when the STL les have been changed.

AnyInt
Type: Creatable Base Class: AnyValue (see p. 49) Description:
Multi-dimensional integer variable.

AnyIntVar
Type: Creatable Base Class: AnyInt (see p. 50) Description:
Scalar integer variable.

AnyIntArray
Type: Creatable Base Class: AnyInt (see p. 50) Description:
One-dimensional integer array.

51

AnyIntArray2
Type: Creatable Base Class: AnyInt (see p. 50) Description:
Two-dimensional integer array.

AnyFloat
Type: Creatable Base Class: AnyValue (see p. 49) Description:
Multi-dimensional oating-point variable.

AnyVar
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
A scalar numerical variable. AnyVar is derived from the general class for numerical variables, AnyFloat, that denes a general tensor, but AnyVar is restricted to having a single component.

AnyVarRef
Type: Creatable Base Class: AnyVar (see p. 51) Description:

52 This special variable class functions as variable reference. It is a normal scalar variable but as a reference it also allows that values can be tranferred opposite to the normal expression evaluation. This restricts the form of initializations that can be allowed for such variables. Two types of initializations are allowed: Firstly, a constant right-hand side is accepted, which may consist a single scalar number or an expression entirely of numbers providing a single scalar constant when evluated, i.e., Val = <scalar numerical constant>. This form of initialization does not allow two-way linkage. Secondly, the AnyVarRef can be initialized with a single scalar variable value; which can be an AnyVar or a single element of any AnyFloat-variable of higher dimensionality, i.e., Val = <scalar variable quantity>. This case allows for two-way linkage between the AnyVarRef and the target value element. A third case is that the AnyVarRef is internally created and initialized by the system. This case functions like the previous two cases, but you will not be able to nd the initialization expression in the AnyScript code. The dependency is only described in the dependecy list of the variable. I all cases, AnyVarRef depdencies of other AnyValues impose restrictions on the dependency, i.e., whether it is variable on the right-hand side of an AnyScript expresssion or and internally created dependency. The restrictions are: The right-hand side (or internal dependency) is an expression that must be a single (scalar) element, i.e., either a scalar value (e.g. AnyVar) or a multi-element value (vector, matrix, or tensor) with proper indicies selecting a single element. The right-hand side (or internal dependency) must have the same or an earlier Evaluation Moment as the AnyVarRef object. The right-hand side (or internal dependency) may be initialized but if so the right-hand side of this expression must strictly have an earlier Evaluation Moment. The latter two restrictions deal with the issue that the AnyVarRef object must be able to set the value of the right-hand side value (or internal dependency) without this value being overrided be later expression evaluations. This would lead to unpredictable results and is therefore not allowed.

AnyRGBs
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Value type holding RGB (color) values. It is basically a three component vector, but it can only hold values in the range from zero to one. The three components are interpreted as relative R, G, and B value, respectively.

53 Assignment with values outside this range will be corrected during expression validation steps and accompanied by a warning.

AnyRGB
Type: Creatable Base Class: AnyRGBs (see p. 52) Description:
Value type holding RGB (color) values. It is basically a three component vector, but it can only hold values in the range from zero to one. The three components are interpreted as relative R, G, and B value, respectively. Assignment with values outside this range will be corrected during expression validation steps and accompanied by a warning.

AnyFloatVar
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Scalar oating point variable.

AnyVector
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Algebraic vector with arbitrary number of components (oating point).

54

AnyMatrix
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Algebraic matrix with arbitrary number of rows and columns (oating point).

AnyVec3
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Algebraic vector with three components. AnyVec3 is for instance used for all geometric (spatial) vectors.

AnyVec4
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Algebraic vector with four components. AnyVec4 is for instance used for quaternions in spatial kinematics.

AnyMat33
Type: Creatable Base Class: AnyFloat (see p. 51) Description:
Three by three algebraic matrix.

55

AnyOutputFloatLink
Type: Abstract Base Class: AnyFloat (see p. 51) Description:
This class is the base class for classes that hold numerical output from operations (AnyOperation) in studies (AnyStudy). Actually this base class cannot hold data itself; it merely link to data stored elsewhere. The real data is stored in the class AnyOutputFloat, which is derived from AnyOutputFloatLink. AnyOutputFloatLink and AnyOutputFloat possess the same functionality and they provide the same access to the stored output. The linkage of output using AnyOutputFloatLink enables that output is stored only once even though it must be accessible from many places due to references in the model.

AnyOutputFloat
Type: Abstract Base Class: AnyOutputFloatLink (see p. 55) Description:
A special oating point tensor class for storing output data.

AnyOutputFloatPostProc
Type: Abstract Base Class: AnyOutputFloat (see p. 55) Description:
This class for holding output data is specialized for output that comes out of postprocessing stages of an operation.

56

AnyString
Type: Creatable Base Class: AnyValue (see p. 49) Description:
Multi-dimensional string variable.

AnyObjectSearchString
Type: Creatable Base Class: AnyString (see p. 56) Description:
String variable (multi-dimensional) used for specifying object searches in the Model Tree. A search-string is used to nd objects, either one or multiple, in certain classes. In principle, the search-string should be a standard object name using either relative or absolute naming similar to AnyScript expressions and reference denitions. Being an AnyString, the search-string must, however, be enclosed in qoutes and it can be formed by AnyScript string expressions. Absolute naming (complete object names, in principle) can be used from anywhere, whereas relative naming are restricted to features where the current root of the search is well-dened by the case. To encrease the power of the search, wild chars (*) are allowed as any part of the name in the search-string. Search-string with multiple elements (arrays/vectors, tables/matrices/tensors) are typically interpreted as multiple searches that are added. Single- and multi-dimensional arrays are typically treated the same way, i.e., there are no special functionality related to multi-dimensional search strings. Future releases: This string type is not used in AnyScript objects yet, but the searching facilities are indeed, so the explanation above is valid for various normal strings used for searching. In future versions, AnyObjectSearchString will be used in these places.

57

AnyStringVar
Type: Creatable Base Class: AnyString (see p. 56) Description:
String variable holding a single string.

AnyChartSerieTitle
Type: Hidden Base Class: AnyStringVar (see p. 57) Description:
A special string class for series titles in AnyChart.

AnyStringVector
Type: Creatable Base Class: AnyString (see p. 56) Description:
String vector with arbitrary number of components (strings).

AnyStringArray
Type: Creatable Base Class: AnyString (see p. 56) Description:
One-dimensional string array.

58

AnyPath
Type: Hidden Base Class: AnyString (see p. 56) Description:
A special string class for storing handling #path denition in the Globals.Path folder.

AnyEnum
Type: Abstract Base Class: AnyValue (see p. 49) Description:
Abstract base class for multi-dimensional, enumerated types.

AnyRefFrameAxis
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
This class denes axis specications associated with reference frames (AnyRefFrame and derived classes).

Object Members:
Options
Option x y z Description State that indicates the rst axis, i.e., the x-axis. State that indicates the second axis, i.e., the y-axis. State that indicates the third axis, i.e., the z-axis.

59

AnyEnumFloatNumberStyle
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Number formatting style.

Object Members:
Options
Option DecimalNumber ScienticNumber CompactNumber Description Fixed decimal point. Scientic notation using e to seperate the decimal and the exponential part. Automatic selection depending on which format is more compact.

AnyEnumPointMarkerStyle
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Point marker appearence style class.

Object Members:
Options
Option PointStyleNone PointStyleBox PointStyleSphere PointStyleStar PointStyleCross PointStyleCross2 Description No marker. Box (cube) marker. Spherical marker. Simple star marker. Cross marker of three vertical and horizontal lines. Cross marker of four lines (diagonals of a cube).

60

AnyEnumLineStyle
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Line style class providing style options for graphically simple lines and curves.

Object Members:
Options
Option LineStyleNone LineStyleFull LineStyleHidden Description No line. Full line. Hidden line.

AnyEnumLine3DStyle
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Line style class providing style options for lines and curves with 3D effects.

Object Members:
Options
Option Line3DStyleFull Description Full line.

AnyEnumLine3DCapStyle
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Line style class providing style options for the caps of lines and curves with 3D effects.

61

Object Members:
Options
Option Line3DCapStyleVoid Line3DCapStyleNone Line3DCapStyleDisk Line3DCapStyleCylinder Line3DCapStyleEllipsoid Line3DCapStyleArrow Description This option will do nothing. No visible cap at line end, but the line is nicely closed. Moreover, this can be used to make spaces in caps composed of multiple caps. Thin disk as line cap. Cylinder shaped line cap (or disk with thickness of half the cap length). Ellipsoidal shaped cap. Arrow head.

AnySwitch
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Multi-dimensional switch with states On and Off.

Object Members:
Options
Option Off On Description

AnyEnumVar
Type: Abstract Base Class: AnyEnum (see p. 58) Description:
Abstract base class for enumerated types with a single component.

62

AnySwitchVar
Type: Creatable Base Class: AnyEnumVar (see p. 61) Description:
Single switch with states On and Off.

Object Members:
Options
Option Off On Description

AnyEnumState
Type: Abstract Base Class: AnyEnumVar (see p. 61) Description:
This class is used to dene the states that enumerated types can have. It is abstract class so you cannot create new states in AnyScript. System dened AnyEnumState can however exist and these will typically be placed in the global scope in order to allow easy access from anywhere in the script.

AnyDBType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Database types.

Object Members:

63

Options
Option MS_SQLServer_2005 MS_SQLServer_2000 MS_Access MySQL Oracle OracleXE Description Miscrosoft SQL Server 2005 Miscrosoft SQL Server 2000 Miscrosoft Ofce Access My SQL Oracle

AnyDesMeasureType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Type denitions for design measures.

Object Members:
Options
Option OutputFun ObjectiveFun EqualToZero LessThanZero GreaterThanZero Description Simple output variable purely for monitoring the performance of the design. Objective function. Equality constraint (equal to zero). Inequality constraint (less than zero). Inequality constraint (greater than zero).

AnyEnumOptSolver
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
This class denes axis specications associated with reference frames (AnyRefFrame and derived classes).

Object Members:

64

Options
Option OptSimpleSearch OptFeasibleDirSearch1 OptFeasibleDirSearch2 Description Simple search algorithm. Feasible directions search algorithm based on steepest descent direction approach. Feasible directions search algorithm based on conjugate direction approach.

AnyMuscleRecruitmentSolver
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Class for specication of criteria functions and solver types for the muscle recruitment problem in AnyBodyStudy1 objects.

Object Members:
Options
Option MinMaxSimplex Description Minimization of maximal muscle activity by the default simplex routine, which in this version is the same as for MinMaxOOSolSimplex. Minimization of maximal muscle activity by simplex routine from the OOSol library. Minimization of maximal muscle activity by a quadratic programming routine from the OOSol library. Minimization of maximal muscle activity by simplex routine from Numerical Recipes.

MinMaxOOSolSimplex MinMaxOOSolQP MinMaxNRSimplex MinMaxAQP

AnyKinEqSwitch
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
This class is not operational yet. Later it will be used for dening the Type member in the reaction force class.

65

Object Members:
Options
Option Off On Description Reaction force is switched off. Reaction force is active.

AnyEnumFourierSerieType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Type denitions for the Fourier function.

Object Members:
Options
Option CosSin Cos Sin Description Mixed cosine and sine terms. Cosine terms with phase shift. Sine terms with phase shift.

AnyKinRotationalType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Type denitions for rotational coordinates.

Object Members:
Options
Option RotAxesAngles RotVector EulerParam Description 3-D cardan angles, such as Euler or Bryant angles. Cartesian rotation vector. Euler parameters.

66

AnyEnumMuscleRecruitmentType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Class for specication of criterion types for the muscle recruitment problem in AnyOprSetMuscleRecruitment objects.

Object Members:
Options
Option MR_MinMaxStrict MR_MinMaxAux MR_Linear MR_Quadratic MR_QuadraticAux MR_Polynomial Description Min-Max criterion, i.e., the innite norm in a strict sense. Min-Max criterion supplemeted with auxillary linear and quadratic terms. Linear criterion. Quadratic criterion. Quadratic criterion with an auxillary linear term. A polynomial criteria with user specied power.

AnyEnumMuscleRecruitmentNormalizationType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Class for specication of criterion types for the muscle recruitment problem in AnyOprSetMuscleRecruitment objects.

Object Members:
Options
Option MR_Constant MR_CurrentStrength Description Constant normalization denominator for all muscles. The current muscle strength (e.g. including length-velocity relationships of the muscle models) of each muscle is used as normalization denominator. The nominal muscle strength (F0 in the muscle models) of each muscle is used as normalization denominator.

MR_NominalStrength

67

AnyInterPolType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Type denitions for the Interpolation functions.

Object Members:
Options
Option PiecewiseLinear Bezier Bspline Description Piecewise linear function. Bezier interpolation function. B-spline interpolation function.

AnyFilterType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Type denitions for lter functions.

Object Members:
Options
Option LowPass HighPass BandPass BandStop Description Lowpass lter Highpass lter Bandpass lter Bandstop lter

AnyChartStyle
Type: Creatable Base Class: AnyEnum (see p. 58)

68

Description:
General styles of the AnyChart appearance.

Object Members:
Options
Option CartesianChart2D CartesianChart3D Description

AnyEnumMessageType
Type: Creatable Base Class: AnyEnum (see p. 58) Description:
Message types. Notice that all except the fatal error allows processes to continue. The fatal error stop the current process, for instance a running operation.

Object Members:
Options
Option MSG_Message MSG_Warning MSG_Error MSG_ErrorFatal Description Basic message type for purely informative, non-critical messages. Warning message type. Error message type. Fatal error message type.

69

AnyFunction
Type: Abstract Base Class: AnyFolder (see p. 24) Description:
AnyFunction is the base class for all functions in AnyScriptTM. A function is an object that can return a value (AnyValue) for a given set parameters (AnyValue or AnyObjects). A function can be called in an AnyScript expression and it will be evaluated whenever the expression is evaluated. The parameters, that govern the return value, can be members of the class or they can be supplied in the function argument list. The class members can be initialized when declaring an object of the class, whereas the function arguments are supplied upon evaluation, i.e., they function using their current value. The function argument list is supplied to the function as a comma-separated list in parentheses after the function name. A function call could for instance look like AnyVar var = funcname(var1,var2); It is important to notice that an AnyFunction derived class is a class of functions. It is not until an object of the class is created that there exists an actual function and the name of the object is also the name of the function when calling it. An example is the class AnyFunSin, that is a class of all sine functions (though there is only one denition in this particular case). A globally declared object called sin is the actual sine function that we can use in mathematical expressions as like sin(arg). For many standard mathematical functions that are dened by the system, like sine, the function object is the important one and the function class has only little relevance in the daily work. There is a one to one relationship, one class and one function/object, and typically the function object is predened in the global scope of AnyScriptTM. However, some function classes contain members, that can be initialized, and of these you can make different functions/objects. For such function classes it is more meaningful to speak of a class of functions and there will typically not be any predened objects of such classes in the global scope. Functions are typically mathematical functions, but generally they can be dened with any type of values (AnyValue) as output. In addition AnyFunction can be polymorc, which means that a function may have more than one argument list denition. They may even return different value types as output. For instance Accepted function denitions are made by the class AnyMonoFunction (meaning monomorphic function denition) that contains the return type (an AnyValue) and the argument list (AnyValues in a special folder). An AnyFunction can hold as many AnyMonoFunctions as needed and each of them denes one version of the AnyFunction. It should be emphasized again that the function name is the name of the object of the AnyFunction class; thus, the names of the AnyMonoFunctions inside the AnyFunction play no role when applying the function in an AnyScriptTM expression.

70

AnyFun3D
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for a number of 3D geometric functions.

AnyFunTransform3D
Type: Creatable Base Class: AnyFun3D (see p. 70) Description:
Base class for 3D transformation functions. This type of functions convert 3D (geometrical) vectors into new 3D vectors according to a given function built into the class. Such functions can be used for geometrical scaling.

Function versions:
AnyVec3 FName(AnyVec3 Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name Function Description Function for 3D vectors (of oating point values). AnyVec3 FName(AnyVec3 Arg)

AnyFunTransform3DIdentity
Type: Creatable Base Class: AnyFunTransform3D (see p. 70) Description:
Identity 3D transformation function.

71 This transformation function returns a vector that is equal to the input argument. This is useful for replacement of other transformation function in cases where transformation is not wanted for a particular application but transformation facilites is implemented generally in the AnyScriptTM model.

Function versions:
AnyVec3 FName(AnyVec3 Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name Function Description Function for 3D vectors (of oating point values). AnyVec3 FName(AnyVec3 Arg)

AnyFunTransform3DLin
Type: Creatable Base Class: AnyFunTransform3D (see p. 70) Description:
Linear 3D transformation function. The linear scaling is dened by a 3 by 3 scaling matrix that is multiplied to the argument (3D geometrical vector) after subtracting a set of offset values. The scaling matrix and the offset vector are given as members of the class.

Function versions:
AnyVec3 FName(AnyVec3 Arg)

Object Members:
Obligatory-Initialization Members
Class AnyMat33 AnyVec3 Name ScaleMat Offset Description Scaling Matrix (3 x 3). Vector of offset values.

Denied-Access Members
Class AnyMonoFunction Name Function Description Function for 3D vectors (of oating point values). AnyVec3 FName(AnyVec3 Arg)

72

AnyFunCross
Type: Creatable Base Class: AnyFun3D (see p. 70) Description:
Vector mulitplication (cross product) function.

Function versions:
AnyFloat FName(AnyVec3 Arg1, AnyVec3 Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name FloatFloatFunction Description AnyFloat FName(AnyVec3 Arg1, AnyVec3 Arg2)

AnyFunRotMat
Type: Creatable Base Class: AnyFun3D (see p. 70) Description:
Rotational transformation matrix. RotMatXYZ Rotational tranformation matrix for a planar rotation about a given axis of the coordinate system. The axis is given by the second argument and the angle of rotation (in radians) by the rst. RotMat3Points Rotational tranformation matrix for a coordinate system dened by three points. The rst point is the origin of the system; the second gives the direction of the rst (x) axis. Together all three points must span a plane which will be the plane of the rst (x) and the second (y) axes, having the third (z) axis as normal.

Function versions:
AnyMat33 FName(AnyVar Angle, AnyEnum Axis) AnyMat33 FName(AnyVec3 Pnt1, AnyVec3 Pnt2, AnyVec3 Pnt3)

Object Members:

73

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name RotMatXYZ RotMat3Points Description AnyMat33 FName(AnyVar Angle, AnyEnum Axis) AnyMat33 FName(AnyVec3 Pnt1, AnyVec3 Pnt2, AnyVec3 Pnt3)

AnyOutputFun
Type: Creatable Base Class: AnyFunction (see p. 69) Description:
This class denes a function for making and getting access to values in the output data structures of studies, see the Output member in AnyStudy and derived classes. The output data structure does not exist at loadtime and therefore you cannot access then directly in mathematical expression as most normal variables, but by means of AnyOutputFun style functions you can work around this problem. By declaring an AnyOutputFun, you dene new output and at the same time you dene a function that returns the output data structure. The new output is dened by the expression assigned to the Val member. This can be as simple as a direct assignment to another, already existing variable, if you simply want to get access to the output of the existing variable, or it can be any, more complicated, expression. This function takes no arguments. When the function is called it returns the output data structure associated with Val. This typically means that the return value is a higher dimensionality than Val because the output contains multiple values of Val depending on the study it is part of. The AnyOutputFun must be declared inside a study in order to resolve the association with the output data structure. The function can be called from anywhere in the script, so it does indeed provide full access to the output data. However, use the function carefully, as you get the current values of all output for the given variable, i.e., for all steps of a given study, even though not all values may not be computed at the given time. Uninitialized output data should be zero. Also notice, as for normal expressions, the AnyOutputFun cannot get access to the output during loadtime. This is handled by returning a dummy value during loadtime, which is the same dimensionality and size as the Val. This implies that the return of the function typically will change dimensionality from loadtime to runtime evaluations. Therefore, expressions using AnyOutputFun functions must somehow deal with this change of dimensionality, or the expression evaluator may complain either at loadtime or at runtime depending on when the rst inconsistency occur. Usually, functions like taking max(), sum(), or various norms() of the returned output data make sense and take care of the dimensionality issue.

74

Function versions:
AnyFloat FName()

Object Members:
Obligatory-Initialization Members
Class AnyFloat Name Val Description The current value of the output. It must be initialized with an expression that denes the output.

Denied-Access Members
Class AnyFloat Name DummyReturn Description Return value for function calls made before the output data structure is complete, i.e. during loading. (="No values given") AnyFloat FName()

AnyMonoFunction

VoidFun

AnyParamFun
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for parameter functions that are functions of a single scalar (oating point) quantity. The return is also oating point value, but it may be AnyFloats of any dimensionality and size.

Function versions:
AnyFloat FName(AnyVar Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name Function Description AnyFloat FName(AnyVar Arg)

75

AnyFunInterpol
Type: Creatable Base Class: AnyParamFun (see p. 74) Description:
This class provides a vector function of a single parameter that interpolates between data points spaced. We shall consider this parameter to be time, but it can of course be any parameter you enter as argument to the function. The following types of interpolation are available: Piecewise linear function (Notice that the second time-derivatives (accelerations) are zero for all times). Bezier interpolation. B-Spline interpolation of variable order. The data points can be entered in the designated data structure or they can be read from a data text le. The data le must be an ascii le holding space-separated values. The rst column must be the parameter values, whereas the remaining must hold the data points; as many as there are components in the return vector. All lines of the le that do not begin with a oating-point number are ignored and so is any contents on a line after the expected number oating-point values. Too few values on a line give an error, whereas too many produce a warning.

Function versions:
AnyFloat FName(AnyVar Arg)

Object Members:
Obligatory-Initialization Members
Class AnyInterPolType Name Type Description Interpolation type.

Optional-Initialization Members
Class AnyIntVar Name BsplineOrder Description Order of B-spline interpolation. Notice that this number denes the order of continuity for the resulting function. Default value is set to provide continuity of second order derivatives. (=4) Time (parameter) data points. (="No values given")

AnyVector

76 AnyMatrix Data Matrix of data points. Each row contains the data points for one component of the return vector. (="No values given") Name of a text le with data points in spaceseparated columns. The rst column must hold T and the following must correspond to the rows of Data. Comments can be entered into the data le in lines that do not start with a number and after the correct number of values. (="") On allows data le loading to continue on some errors. These are typically when the number data points does not match the expected number. Error messages are send anyway and you should not expect data to work properly. (=Off, Options: Off | On) Description AnyFloat FName(AnyVar Arg)

AnyFileVar

FileName

AnySwitchVar

FileErrorContinueOnOff

Denied-Access Members
Class AnyMonoFunction Name Function

AnySearchFun
Type: Creatable Base Class: AnyFunction (see p. 69) Description:
This class denes a function template that allows you to search for variables in the model by name. The function asembles output from searches that returns in multiple value objects. The assembled data structure is always a vector containing all the elements of the found value objects disregarding their original dimensionality. There is no rules about the order of the elements in the resulting vector; one should therefore not rely on picking out particular element of the vector. Thus, the function is mainly usabale for assembling value that should be further processed by functions that treat all element uniformly.

Function versions:
AnyFloat FName()

Object Members:

77

Obligatory-Initialization Members
Class AnyString Name Search Description Array of objects search strings (for more info. on search-strings, see class AnyObjectSearchString).

Denied-Access Members
Class AnyMonoFunction Name VoidFun Description AnyFloat FName()

AnyFunLinFilterBase
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Abstract base class for all linear lters. This class contains the initial condition vector for all linear lters in addition to specication of whether the initial conditions should be set automatically or not, and whether only forward ltering should be used, or if ltering should be done both in the forward and backward direction. When the automatic initial condition option is set to on, the initial conditions are calculated to be the steady-state state of the lter. When the lter forward and backward option is set to on, the data is rst ltered in the forward direction, the data is reversed and the lter run again. Finally, the data is reversed one more time. In this mode, the input data is extrapolated in the ends before ltering to minimize the effects of the beginning and end transitions. Filtering both in the forward and backward direction has the effect that the overall phase shift in the data is zero, and the amplitude of the lter is squared.

Function versions:
void FName(AnyFloat x) void FName(AnyFloat x, AnyIntVar m) void FName(AnyFloat x, AnyVector z0) void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

Object Members:
Optional-Initialization Members
Class AnyVector Name z0 Description Initial condition vector. (="No values given")

78 AnySwitchVar AutomaticInitialConditionOnOff FilterForwardBackwardOnOff Switch to specify whether or not the initial conditions are calculated automatically. (=Off, Options: Off | On) Switch to specify if ltering should only be performed in the forward direction or both in the forward and backward direction. (=Off, Options: Off | On) Description Filtering without initial conditon and downsampling specication. void FName(AnyFloat x) Filtering with downsampling specication. void FName(AnyFloat x, AnyIntVar m) Filtering with initial condition specication. void FName(AnyFloat x, AnyVector z0) Filtering with both initial condition and downsampling specication. void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

AnySwitchVar

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FilterFun1 FilterFun2 FilterFun3 FilterFun4

AnyFunLinFilterDesignBase
Type: Abstract Base Class: AnyFunLinFilterBase (see p. 77) Description:
Abstract base class for all linear lters that include lter design. Either the lter can be specied by using the normalized frequency(ies) or it can be specied using the sample frequency and the cut-off frequency(ies).

Function versions:
void FName(AnyFloat x) void FName(AnyFloat x, AnyIntVar m) void FName(AnyFloat x, AnyVector z0) void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

Object Members:
Optional-Initialization Members
Class AnyVector Name z0 Description Initial condition vector. (="No values given")

79 AnySwitchVar AutomaticInitialConditionOnOff FilterForwardBackwardOnOff Switch to specify whether or not the initial conditions are calculated automatically. (=Off, Options: Off | On) Switch to specify if ltering should only be performed in the forward direction or both in the forward and backward direction. (=Off, Options: Off | On) The lter order. (=2) The normalized cut-off frequency(ies). (="No values given") The sample frequency of the data to be ltered. (=0) The cut-off frequency(ies). (="No values given") The lter type. (Options: LowPass | HighPass | BandPass | BandStop) Description Filtering without initial conditon and downsampling specication. void FName(AnyFloat x) Filtering with downsampling specication. void FName(AnyFloat x, AnyIntVar m) Filtering with initial condition specication. void FName(AnyFloat x, AnyVector z0) Filtering with both initial condition and downsampling specication. void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

AnySwitchVar

AnyIntVar AnyVector AnyVar AnyVector AnyFilterType

N W Fs Fc Type

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FilterFun1 FilterFun2 FilterFun3 FilterFun4

AnyFunButterworthFilter
Type: Creatable Base Class: AnyFunLinFilterDesignBase (see p. 78) Description:
Digital Butterworth lter class. This lter allows you to use a low-pass, high-pass, band-pass and band-stop butterworth lter (Type) with the specied order (N) and cutoff frequency/frequencies (depending of the type of lter you use) (W). The cutoff frequency/frequencies are given as a normalized value between 0.0 and 1.0, with 0.0 being a cutoff frequency at DC (0 Hz) and 1.0 a cutoff frequency at half the sampling frequency of

80 the signal to be ltered. The implementation of the lter is made using a so-called numerator/denominator form. NUM(z)/DEN(z). Given the lter specication, the lter coefcients are calculated by: 1) Calculating the poles, zeros and gain for a normalized continuous-time low-pass Butterworth lter. 2) Transforming the normalized low-pass Butterworth lter to an unnormalized continous-time lter according to the user specication with frequency prewrap. 3) Applying a bilinear transformation to obtain the equivalent discrete-time lter. 4) If the desired lter is of type high-pass, band-pass, or band-stop, the designed discrete-time low-pass lter is transformed to the desired type. When designing the highpass, band-pass and band-stop lters, the low-pass lter, they are derived from, is calculated using the user-specied order and a normalized cutoff frequency of 0.5. All calculations are made through manipulations of the numerator/denominator structure. While this allows for a simple implementation, it may result in numerical problems for high-order lters or lters with normalized cutoff frequencies close to 0.0 or 1.0. We hope to be able to make a more numerically robust implementation in future versions of AnyBodyTM.

Function versions:
void FName(AnyFloat x) void FName(AnyFloat x, AnyIntVar m) void FName(AnyFloat x, AnyVector z0) void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

Object Members:
Optional-Initialization Members
Class AnyVector AnySwitchVar Name z0 AutomaticInitialConditionOnOff FilterForwardBackwardOnOff Description Initial condition vector. (="No values given") Switch to specify whether or not the initial conditions are calculated automatically. (=Off, Options: Off | On) Switch to specify if ltering should only be performed in the forward direction or both in the forward and backward direction. (=Off, Options: Off | On) The lter order. (=2) The normalized cut-off frequency(ies). (="No values given") The sample frequency of the data to be ltered. (=0) The cut-off frequency(ies). (="No values given") The lter type. (Options: LowPass | HighPass | BandPass | BandStop)

AnySwitchVar

AnyIntVar AnyVector AnyVar AnyVector AnyFilterType

N W Fs Fc Type

81

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FilterFun1 FilterFun2 FilterFun3 FilterFun4 Description Filtering without initial conditon and downsampling specication. void FName(AnyFloat x) Filtering with downsampling specication. void FName(AnyFloat x, AnyIntVar m) Filtering with initial condition specication. void FName(AnyFloat x, AnyVector z0) Filtering with both initial condition and downsampling specication. void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

AnyFunLinFilter
Type: Creatable Base Class: AnyFunLinFilterBase (see p. 77) Description:
Linear digital lter. Both Innite Impulse Response (IIR) and Finite Impulse Response (FIR) Filters. The lter is a "Direct form II transposed" implementation of the standard difference equation. The lter is given by the lter coefcients A and B.

Function versions:
void FName(AnyFloat x) void FName(AnyFloat x, AnyIntVar m) void FName(AnyFloat x, AnyVector z0) void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

Object Members:
Obligatory-Initialization Members
Class AnyVector AnyVector Name A B Description The lter denominator lter coefcients. The lter numerator lter coefcients.

Optional-Initialization Members
Class AnyVector Name z0 Description Initial condition vector. (="No values given")

82 AnySwitchVar AutomaticInitialConditionOnOff FilterForwardBackwardOnOff Switch to specify whether or not the initial conditions are calculated automatically. (=Off, Options: Off | On) Switch to specify if ltering should only be performed in the forward direction or both in the forward and backward direction. (=Off, Options: Off | On) Description Filtering without initial conditon and downsampling specication. void FName(AnyFloat x) Filtering with downsampling specication. void FName(AnyFloat x, AnyIntVar m) Filtering with initial condition specication. void FName(AnyFloat x, AnyVector z0) Filtering with both initial condition and downsampling specication. void FName(AnyFloat x, AnyIntVar m, AnyVector z0)

AnySwitchVar

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FilterFun1 FilterFun2 FilterFun3 FilterFun4

AnyFunElemOpr
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for a number of functions that can be applied to all elements of AnyValue objects. Therefore these functions can be applied to scalars, vector, matrices, and strutures of higher dimensionalities.

AnyFunElemByElemOpr
Type: Abstract Base Class: AnyFunElemOpr (see p. 82) Description:
Base class for a number of single argument functions that operates on each element independently. Therefore these functions can be applied to scalars, vector, matrices, and strutures of higher dimen-

83 sionalities and they return values with the same dementionality as the argument.

AnyFunSin
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Sine. This class denes the trigonometric sine function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunASin
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Inverse sine (arcsine). This class denes the inverse cosine function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

84

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunSinh
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Hyperbolic sine. This class denes the hyperbolic sine function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunCos
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Cosine. This class denes the trigonometric cosine function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

85

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunACos
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Inverse cosine (arccosine). This class denes the inverse cosine function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunCosh
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82)

86

Description:
Hyperbolic cosine. This class denes the hyperbolic cosine function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunTan
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Tangent. This class denes the trigonometric tangent function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

87

AnyFunATan
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Inverse tangent (arctangent). This class denes the inverse tangent function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunTanh
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Hyperbolic tangent. This class denes the hyperbolic tangent function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:

88

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunLog
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The natural logarithm. This class denes the natural logarithm function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunLog10
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The 10-based logarithm. This class denes the 10-based logarithm function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

89

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunExp
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The exponential function. This class denes the scalar exponential function. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunSqrt
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82)

90

Description:
Square root. This class denes the square root function for each element of the argument. The return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunAbs
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Absolute value function. This class denes the absolute-value function of both integer and oating point arguments. The function is applied to each element of the argument and the return value has the same dimensions as the argument.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

91

AnyFunCeil
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The ceil function of all elements.

Function versions:
AnyInt FName(AnyFloat Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name Function Description AnyInt FName(AnyFloat Arg)

AnyFunFloor
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The oor function of all elements.

Function versions:
AnyInt FName(AnyFloat Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name Function Description AnyInt FName(AnyFloat Arg)

92

AnyFunRound
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The round function of all elements.

Function versions:
AnyInt FName(AnyFloat Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name Function Description AnyInt FName(AnyFloat Arg)

AnyFunPow
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The power function of all elements.

Function versions:
AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFloatFunction FloatIntFunction Description AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2)

93 AnyMonoFunction AnyMonoFunction IntFloatFunction IntIntFunction AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

AnyFunMult
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Element by element multiplication function.

Function versions:
AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFloatFunction FloatIntFunction IntFloatFunction IntIntFunction Description AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

AnyFunDiv
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
Element by element division function.

94

Function versions:
AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFloatFunction FloatIntFunction IntFloatFunction IntIntFunction Description AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

AnyFunAtan2
Type: Hidden Base Class: AnyFunElemByElemOpr (see p. 82) Description:
The power function of all elements.

Function versions:
AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFloatFunction FloatIntFunction Description AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2)

95 AnyMonoFunction AnyMonoFunction IntFloatFunction IntIntFunction AnyFloat FName(AnyInt Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2)

AnyFunInfo
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for a number of functions that can retrieve information about AnyScript data objects.

AnyFunNumElemOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns number of elements in an AnyValue structure.

Function versions:
AnyIntVar FName(AnyFloat Arg) AnyIntVar FName(AnyInt Arg) AnyIntVar FName(AnyString Arg) AnyIntVar FName(AnyEnum Arg) AnyIntVar FName(AnyFile Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction EnumFunction FileFunction Description AnyIntVar FName(AnyFloat Arg) AnyIntVar FName(AnyInt Arg) AnyIntVar FName(AnyString Arg) AnyIntVar FName(AnyEnum Arg) AnyIntVar FName(AnyFile Arg)

96

AnyFunDimOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns number of dimensions in an AnyValue structure.

Function versions:
AnyIntVar FName(AnyFloat Arg) AnyIntVar FName(AnyInt Arg) AnyIntVar FName(AnyString Arg) AnyIntVar FName(AnyEnum Arg) AnyIntVar FName(AnyFile Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction EnumFunction FileFunction Description AnyIntVar FName(AnyFloat Arg) AnyIntVar FName(AnyInt Arg) AnyIntVar FName(AnyString Arg) AnyIntVar FName(AnyEnum Arg) AnyIntVar FName(AnyFile Arg)

AnyFunSizesOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns number of dimensions in an AnyValue structure.

Function versions:
AnyIntArray FName(AnyFloat Arg) AnyIntArray FName(AnyInt Arg) AnyIntArray FName(AnyString Arg) AnyIntArray FName(AnyEnum Arg) AnyIntArray FName(AnyFile Arg)

97

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction EnumFunction FileFunction Description AnyIntArray FName(AnyFloat Arg) AnyIntArray FName(AnyInt Arg) AnyIntArray FName(AnyString Arg) AnyIntArray FName(AnyEnum Arg) AnyIntArray FName(AnyFile Arg)

AnyFunNameOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns the name of an object. Currently, only AnyValue objects are supported.

Function versions:
AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyString Arg) AnyStringVar FName(AnyEnum Arg) AnyStringVar FName(AnyFile Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction EnumFunction FileFunction Description AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyString Arg) AnyStringVar FName(AnyEnum Arg) AnyStringVar FName(AnyFile Arg)

98

AnyFunCompleteNameOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns the complete-name of an object. Currently, only AnyValue objects are supported.

Function versions:
AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyString Arg) AnyStringVar FName(AnyEnum Arg) AnyStringVar FName(AnyFile Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction EnumFunction FileFunction Description AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyString Arg) AnyStringVar FName(AnyEnum Arg) AnyStringVar FName(AnyFile Arg)

AnyFunClassNameOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns the class name of an object. Currently, only AnyValue objects are supported.

Function versions:
AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyString Arg)

99 AnyStringVar FName(AnyEnum Arg) AnyStringVar FName(AnyFile Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction EnumFunction FileFunction Description AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyString Arg) AnyStringVar FName(AnyEnum Arg) AnyStringVar FName(AnyFile Arg)

AnyFunStringValueOf
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Returns the value of an object as a string. The function returns only the rst element of multi-element types such as vectors, matrices etc. Values of multi-element types must be converted element by element. The second argument can optinally be a string specifying the format. This format string uses the C-style formatting specication used in functions such as printf(..). Future releases: This manual will be extended with an explanation of the formatting string. Until then please refer other printf(..) documentation, e.g. http://www.cplusplus.com/ref/cstdio/printf.html.

Function versions:
AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyFloat Arg, AnyStringVar FormatStr) AnyStringVar FName(AnyInt Arg, AnyStringVar FormatStr)

Object Members:

100

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction FloatFunctionFormatted IntFunctionFormatted Description AnyStringVar FName(AnyFloat Arg) AnyStringVar FName(AnyInt Arg) AnyStringVar FName(AnyFloat Arg, AnyStringVar FormatStr) AnyStringVar FName(AnyInt Arg, AnyStringVar FormatStr)

AnyFunFormatString
Type: Hidden Base Class: AnyFunInfo (see p. 95) Description:
Formatted string function. This function formats a string input into a another string that can contain charaters not allowed in AnyScript code. This is for instance charaters such as tabs, newlines, etc. The special charaters are represented by normal characters with so-called escape sequences, i.e., a \ followed by some charater and in some cases digits too. This function converts escape sequences known from C and C++. The following escape sequences are converted: \\: Backslash \n: Newline \r: Carriage return \t: Horizontal tab \v: Vertical tab (not visible in some output) \f: Formfeed (not visible in some output) \: Simple quote \": Double quote \a: Bell (not visible or hearable in some output) \ooo: ASCII charaters given as octal values, where ooo are one to tree octal digits \xHH: ASCII charaters given as hex values, where HH are one or two hex digits (0-9,A-F,a-f). \XHH: Similarly to \xHH.

101 Cases marked as not visible will in some output be marked by a empty box or the like. Notice many special characters behaves like this, if you use the ASCII codes. Unknown escape seqeunces are simply converted to the letter following the backslash.

Function versions:
AnyString FName(AnyString StrInput)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name StringFunction Description AnyString FName(AnyString StrInput)

AnyFunVecOpr
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for a number of functions that applies to vector. The functions can also be applied to matrices and strutures of higher dimensionalities. In such cases the function processes all vectors of one dimension and returns a structure with one dimension less than the original structure.

AnyFunVecSum
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The sum of all elements in a vector. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension and returns a similar structure without this dimension.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

102

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

AnyFunVecSecInt
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The secant integral of a function given by a number discrete values. The function takes two arguments, the rst is the function values and the second is the corresponding parameter values. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension as the function values and returns a similar structure without this dimension.

Function versions:
AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFloatFunction FloatIntFunction IntIntFunction IntFloatFunction Description AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyFloat FName(AnyFloat Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyInt Arg2) AnyFloat FName(AnyInt Arg1, AnyFloat Arg2)

103

AnyFunVecMean
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The mean of all elements in a vector. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension and returns a similar structure without this dimension.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

AnyFunVecProd
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The product of all elements in a vector. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension and returns a similar structure without this dimension.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

Object Members:

104

Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

AnyFunVecMax
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The maximum of all elements in a vector. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension and returns a similar structure without this dimension.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

AnyFunVecMin
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The minimum of all elements in a vector. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension and returns a similar structure without this dimension.

105

Function versions:
AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction Description AnyFloat FName(AnyFloat Arg) AnyInt FName(AnyInt Arg)

AnyFunVecVNorm
Type: Hidden Base Class: AnyFunVecOpr (see p. 101) Description:
The norm of a vector. The function applies to matrices and strutures of higher dimensionalities as well. In such cases, the function processes all vectors of the rst dimension and returns a similar structure without this dimension. By default the second norm is taken, but the (optional) second argument can provide any power of the norm taken. The second argument must be a scalar quantity.

Function versions:
AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg) AnyFloat FName(AnyFloat Arg1, AnyVar Arg2) AnyFloat FName(AnyFloat Arg1, AnyIntVar Arg2) AnyFloat FName(AnyInt Arg1, AnyVar Arg2) AnyFloat FName(AnyInt Arg1, AnyIntVar Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name Norm2FloatFunction Norm2IntFunction Description AnyFloat FName(AnyFloat Arg) AnyFloat FName(AnyInt Arg)

106 AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction NormFloatFloatFunction NormFloatIntFunction NormIntFloatFunction NormIntIntFunction AnyFloat FName(AnyFloat Arg1, AnyVar Arg2) AnyFloat FName(AnyFloat Arg1, AnyIntVar Arg2) AnyFloat FName(AnyInt Arg1, AnyVar Arg2) AnyFloat FName(AnyInt Arg1, AnyIntVar Arg2)

AnyFunConditional
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for a number of conditional functions.

AnyFunIf
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
If-then-else function. This class denes a function for making conditional statements in an expression. The function takes three arguments. The rst argument is the condition, where zero is equal to false and a nonzero value is true. The second argument is the return value in case of a true condition and the third argument is the return value for false.

Function versions:
AnyVar FName(AnyVar Condition, AnyVar Result1, AnyVar Result2) AnyIntVar FName(AnyVar Condition, AnyIntVar Result1, AnyIntVar Result2) AnyVar FName(AnyIntVar Condition, AnyVar Result1, AnyVar Result2) AnyIntVar FName(AnyIntVar Condition, AnyIntVar Result1, AnyIntVar Result2) AnyStringVar FName(AnyVar Condition, AnyStringVar Result1, AnyStringVar Result2) AnyStringVar FName(AnyIntVar Condition, AnyStringVar Result1, AnyStringVar Result2)

107

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description If-then-else function for scalar oating point values. AnyVar FName(AnyVar Condition, AnyVar Result1, AnyVar Result2) If-then-else function with scalar oating point condition and scalar integer return value. AnyIntVar FName(AnyVar Condition, AnyIntVar Result1, AnyIntVar Result2) If-then-else function with scalar integer condition and scalar oating point return value. AnyVar FName(AnyIntVar Condition, AnyVar Result1, AnyVar Result2) If-then-else function for scalar integer values. AnyIntVar FName(AnyIntVar Condition, AnyIntVar Result1, AnyIntVar Result2) If-then-else function with scalar oating point condition and singleton string return. AnyStringVar FName(AnyVar Condition, AnyStringVar Result1, AnyStringVar Result2) If-then-else function with scalar integer condition and singleton string return. AnyStringVar FName(AnyIntVar Condition, AnyStringVar Result1, AnyStringVar Result2)

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarStringVarFunction

AnyMonoFunction

IntVarStringVarFunction

AnyFunEq
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Equality testing function. This function takes take two arguments returning true if they have the same value and false if they have different values. In fact, this is an equality operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyStringVar Arg1, AnyStringVar Arg2)

108

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2) Function for string values. AnyIntVar FName(AnyStringVar Arg1, AnyStringVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

AnyMonoFunction

StringVarStringVarFunction

AnyFunLessThan
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Less-than testing function. This function takes take two arguments returning true if the rst is smaller than the second, and otherwise false. In fact, this is a < operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

Object Members:

109

Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

AnyFunLessThanEq
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Less-than-or-equal-to testing function. This function takes take two arguments returning true if the rst is smaller than or equal to the second, and otherwise false. In fact, this is a <= operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

110 AnyMonoFunction VarIntVarFunction Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

AnyMonoFunction

IntVarVarFunction

AnyFunGreaterThan
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Greater-than testing function. This function takes take two arguments returning true if the rst is greater than the second, and otherwise false. In fact, this is a > operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

111

AnyFunGreaterThanEq
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Greater-than-or-equal-to testing function. This function takes take two arguments returning true if the rst is greater than or equal to the second, and otherwise false. In fact, this is a >= operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

AnyFunAnd
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Boolean and function.

112 This function takes take two arguments returning true if both are non-zero, and otherwise false. In fact, this is a boolean and operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

AnyFunOr
Type: Hidden Base Class: AnyFunConditional (see p. 106) Description:
Boolean or function. This function takes take two arguments returning true if one of them non-zero, and otherwise false. In fact, this is a boolean or operator implemented as a function.

Function versions:
AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

113

Object Members:
Denied-Access Members
Class AnyMonoFunction Name VarVarFunction Description Function for two scalar oating point values. AnyIntVar FName(AnyVar Arg1, AnyVar Arg2) Function for two scalar integer point values. AnyIntVar FName(AnyIntVar Arg1, AnyIntVar Arg2) Function for integer and oating point values. AnyIntVar FName(AnyVar Arg1, AnyIntVar Arg2) Function for oating point and integer values. AnyIntVar FName(AnyIntVar Arg1, AnyVar Arg2)

AnyMonoFunction

IntVarIntVarFunction

AnyMonoFunction

VarIntVarFunction

AnyMonoFunction

IntVarVarFunction

AnyFunInit
Type: Abstract Base Class: AnyFunction (see p. 69) Description:
Base class for a number of functions that creates value and initializes values in expressions.

AnyFunIntArray
Type: Hidden Base Class: AnyFunInit (see p. 113) Description:
Function for making integer arrays. The function take two or three integer arguments. The rst and last argument are the value of the rst and the last element in the resulting array, respectively. If three arguments are given, the second is the step value between two neighboring elements in the array; default step size is 1.

Function versions:
AnyIntArray FName(AnyIntVar StartVal, AnyIntVar EndVal) AnyIntArray FName(AnyIntVar StartVal, AnyIntVar StepVal, AnyIntVar EndVal)

114

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction Name Function1 Function2 Description AnyIntArray FName(AnyIntVar StartVal, AnyIntVar EndVal) AnyIntArray FName(AnyIntVar StartVal, AnyIntVar StepVal, AnyIntVar EndVal)

AnyFunArrayCat
Type: Hidden Base Class: AnyFunInit (see p. 113) Description:
Function for appending two arrays. The arrays can be data structures of more higher dimensioanlity than one such as matrices or higher order tensors. For instance a matrix is then interpretated as an array of rows. This follows the standard AnyScript interpretation of data structures.

Function versions:
AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2) AnyString FName(AnyString Arg1, AnyString Arg2) AnyFile FName(AnyFile Arg1, AnyFile Arg2) AnyEnum FName(AnyEnum Arg1, AnyEnum Arg2)

Object Members:
Denied-Access Members
Class AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction AnyMonoFunction Name FloatFunction IntFunction StringFunction FileFunction EnumFunction Description AnyFloat FName(AnyFloat Arg1, AnyFloat Arg2) AnyInt FName(AnyInt Arg1, AnyInt Arg2) AnyString FName(AnyString Arg1, AnyString Arg2) AnyFile FName(AnyFile Arg1, AnyFile Arg2) AnyEnum FName(AnyEnum Arg1, AnyEnum Arg2)

115

AnyMonoFunction
Type: Hidden Base Class: AnyFolder (see p. 24) Description:
This is the base class for function denitions. Classes derived from this are used to dened a functions return type, argument list, and the function body. Multiple such (monomorc) function can be assembled in one AnyFunction, which them becomes a polymorc function (i.e., one function with multiple denitions).

Object Members:
Denied-Access Members
Class AnyFunctionArgList Name ArgList Description A special folder containing the argument list of the function.

Chapter 4 Mechanical Objects


This chapter contains the descriptions for mechanical elements that are all derived from the class AnyMechObject. The following sections contain the class tree.

116

117

AnyMechObject
Type: Abstract Base Class: Any3DObject (see p. 25) Description:
This is the abstract base class from which all mechanical components should be derived.

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

118

AnySurface
Type: Abstract Base Class: AnyMechObject (see p. 117) Description:
This is a base class for geometrical (mechanically rigid) surfaces. A surface must be declared inside a reference frame in order to position it in space. This reference can indeed be a moving reference frame such as a segment or a node attached to a segment.

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

119

AnySurfSTL
Type: Creatable Base Class: AnySurface (see p. 118) Description:
This class contains the description of a geometrical surface based on triangle discretization. The input is les of either standard STL or AnyBodyTMs own ANYSURF format. Actually, the ANYSURF format is always used, so if an STL le is supplied, a new ANYSURF le is automatically created and updated when the STL le is changed. Providing the lename without extension makes the system assume the ".stl" extension; however, if the le is specied with the ".anysurf" extension then any STL le is ignored, i.e., the ANYSURF le is not updated automatically. The surface can be transformed during loading. This is done with a 3D transformation (class AnyFunTransform3D). You can enter a single transformation function, either by declaration or by reference, in an AnySurfSTL object. Using the derived class AnyFunTransform3DLin function linear transformations including translations and rotations can be employed.

Object Members:
Expected Members
Class AnyFunTransform3D Number [0..1] Description Scaling function that transforms the surface during loading. Description The STL or ANYSURF le name, incl. proper extension. Description Object-time variable. (=0)

Obligatory-Initialization Members
Class AnySurfFile Name FileName

Denied-Access Members
Class AnyVar Name t

120

AnyParamSurf
Type: Abstract Base Class: AnySurface (see p. 118) Description:
This is a base class for parameterized surfaces.

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

121

AnyParamSurfAnalytical
Type: Abstract Base Class: AnyParamSurf (see p. 120) Description:
This is a base class for parameterized surfaces, which are using analytical instead of numerical methods. This leads typically to increased efciency and robustness when used in the kinematical analysis or the like.

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

122

AnySurfEllipsoid
Type: Creatable Base Class: AnyParamSurfAnalytical (see p. 121) Description:
This class contains a parameterized ellipsoid surface. It uses normalized longitude and latitude as parameters and the poles are located on the z axis.

Object Members:
Obligatory-Initialization Members
Class AnyVec3 Name Radius Description Radius is a vector with three components dening extension of the ellipsoid along the three axes of the reference frame.

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

123

AnySurfSphere
Type: Creatable Base Class: AnyParamSurfAnalytical (see p. 121) Description:
This class contains a parameterized sphere surface. It uses normalized longitude and latitude as parameters and the poles are located on the z axis.

Object Members:
Obligatory-Initialization Members
Class AnyVar Name Radius Description Radius of the sphere.

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

124

AnySurfCylinder
Type: Creatable Base Class: AnyParamSurfAnalytical (see p. 121) Description:
This class contains a parameterized cylinder surface. The cylinder endpoint is located at the origin of the reference frame and it stretches a specied length along Z axis.

Object Members:
Obligatory-Initialization Members
Class AnyVar AnyVar Name Radius Length Description Radius of the cylinder. Length of the cylinder.

Optional-Initialization Members
Class AnyVar Name CapRatio Description Ration between the height of ellipsoidal caps on the ends and the radius. (=0.1) Description Object-time variable. (=0)

Denied-Access Members
Class AnyVar Name t

125

AnyRefFrame
Type: Abstract Base Class: AnyMechObject (see p. 117) Description:
This is an abstract class that denes 3-D reference frames. It is the base class for other important classes in the mechanical system modeling, such classes representing segments, grounding frames, and nodes on segments for attachment of other elements. Notice that AnyRefFrame and derived classes use rotational transformation matices. These are dened as orthogonal three by three matrices containing the direction cosines of the frames basis vectors. In other words, the three columns of the rotational transformation matrix are the three basis vectors of the frame. Denoting a Rotational Transformation matrix A, we can write this mathematically as cos(X, x) cos(X, y) cos(X, z) A = [i j k] = cos(Y, x) cos(Y, y) cos(Y, z) cos(Z, x) cos(Z, y) cos(Z, z)

(4.1)

where X, Y, and Z denote global axes, x, y, and z denote the axes of the AnyRefFrame system, the local frame, and i, j, and k are the basis vectors in global coordinates. The rotational transformation matrix can be used to transform components of a vector specied in local coordinates, i.e., coordinates associated with the axes of an AnyRefFrame, to global coordinates. This is done as v = A vl (4.2)

where v is a vector containing the global coordinates and vl is the vector with the local coordinates. Notice that AnyBody stores all vectors in row format, so they must be transposed before the transformation and the expression must be turned around. In AnyScript syntax this looks like GlobalVector = (Axes * LocalVector); or GlobalVector = LocalVector * Axes;

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

126

AnyFixedRefFrame
Type: Creatable Base Class: AnyRefFrame (see p. 125) Description:
A xed reference frame, which for instance can be used for modeling "ground" of a mechanical system.

Object Members:
Optional-Initialization Members
Class AnyVec3 AnyMat33 Name Origin Axes Description Position vector of the origin. (={0, 0, 0}) Rotational transformation matrix (see class AnyRefFrame for a mathematical denition). (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}})

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

127

AnyPositionedRefFrame
Type: Abstract Base Class: AnyRefFrame (see p. 125) Description:
This is the abstract base class for moving reference frames. It supplies the translation as output, given in the vector r.

Object Members:
Denied-Access Members
Class AnyVar AnyVec3 AnyVec3 AnyVec3 Name t r rDot rDDot Description Object-time variable. (=0) Position vector of the origin. (={0, 0, 0}) The velocity vector. (={0, 0, 0}) The acceleration vector. (={0, 0, 0})

128

AnyRefNode
Type: Creatable Base Class: AnyPositionedRefFrame (see p. 127) Description:
The reference node is a reference frame rigidly attached to another one. Thus, its position and orientation are specied relatively to its owner. The nodes angular velocity and acceleration are the same as the owners (global representations).

Object Members:
Optional-Initialization Members
Class AnyVec3 AnyMat33 Name sRel ARel Description Relative position vector. (={0, 0, 0}) Relative rotational transformation matrix (see class AnyRefFrame for a mathematical denition). (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}})

Denied-Access Members
Class AnyVar AnyVec3 AnyVec3 AnyVec3 AnyMat33 Name t r rDot rDDot Axes Description Object-time variable. (=0) Position vector of the origin. (={0, 0, 0}) The velocity vector. (={0, 0, 0}) The acceleration vector. (={0, 0, 0}) Rotational transformation matrix (see class AnyRefFrame for a mathematical denition). (={{0, 0, 0}, {0, 0, 0}, {0, 0, 0}})

129

AnyMovingRefFrame
Type: Abstract Base Class: AnyPositionedRefFrame (see p. 127) Description:
This is the abstract base class for generally moving reference frames. It is derived from AnyPositionedRefFrame and in addition to this, it also supplies the orientation and rotation of the axes.

Object Members:
Denied-Access Members
Class AnyVar AnyVec3 AnyVec3 AnyVec3 AnyMat33 Name t r rDot rDDot Axes Description Object-time variable. (=0) Position vector of the origin. (={0, 0, 0}) The velocity vector. (={0, 0, 0}) The acceleration vector. (={0, 0, 0}) Rotational transformation matrix (see class AnyRefFrame for a mathematical denition). (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}) Angular velocity vector (global representation). (={0, 0, 0}) Angular acceleration vector. (={0, 0, 0})

AnyVec3 AnyVec3

omega omegaDot

130

AnySeg
Type: Creatable Base Class: AnyMovingRefFrame (see p. 129) Description:
This class represents a rigid body in the mechanical model. This also referred to as a segment. The segment has a local (body-xed) coordinate system and all local parameters are in principle related to this. The postion and orientation of the local coordinate frame are described by parameters in the class. Moreover, local properties, such as inertia properties, are referring to this system (if nothing else is stated). The segments can be equipped with nodes, i.e., rigidly attached points, that can be used to connect the segment to other mechnical elements. This is done by adding member objects of the class AnyRefNode. The local properties of such members also refer to the local system of the segment. By default the local system is assumed to be located at the center of mass (CoM) of the segments and its axes are directed along the principal axes of inertia. This is the case when entering mass data in the members Mass and Jii, the latter being the principal moments of inertia, i.e., the diagonal elements of the inertia matrix. If these assumptions do not hold for your available input values you can specify a new location of the CoM by sCoM and off-diagonal elements of the inertia matrix in Jij. These entries will also refer to the local segment coordinate system. This means that by default the moments of inertia in Jii and Jij must be calculated about the segments coordinate axes and must therefore include the contributions arising from an eventual non-zero CoM position. However, by means of the switch JaboutCoMOnOff this default behavior can be changed so that Jii and Jij refer to axes with CoM as their origin. This implies that the translational contribution due to CoM are calculated by the system in this case. It must be emphasized that these axes are still aligned with the segments main coordinate system. The Jmatrix member is an output variable (3 by 3 matrix) containing the resulting inertia matrix about the segment coordinate system. This shows result of the calculation done by the system.

Object Members:
Obligatory-Initialization Members
Class AnyVar AnyVec3 Name Mass Jii Description The total mass of the segment. Principal moments of inertia in a vector {Ixx,Iyy,Izz}. Description Initial position. (={0, 0, 0}) Initial velocity. (={0, 0, 0})

Optional-Initialization Members
Class AnyVec3 AnyVec3 Name r0 rDot0

131 AnyMat33 Axes0 Initial orientation as rotational transformation matrix (see class AnyRefFrame for a mathematical denition). (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}) Initial angular velocity. (={0, 0, 0}) Deviation moments of inertia {Ixy,Iyz,Ixz}. (={0, 0, 0}) Relative location of the center of mass (CoM). (={0, 0, 0}) Switch for whether the inputted moments of inertia in Jii and Jij are related to the segment coordinate system (Off) or a parallel system located at the CoM (On). (=Off, Options: Off | On) Description Object-time variable. (=0) Position vector of the origin. (={0, 0, 0}) The velocity vector. (={0, 0, 0}) The acceleration vector. (={0, 0, 0}) Rotational transformation matrix (see class AnyRefFrame for a mathematical denition). (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}) Angular velocity vector (global representation). (={0, 0, 0}) Angular acceleration vector. (={0, 0, 0}) The actual inertia matrix referring the bodyxed segment coordinate system. (={{0, 0, 0}, {0, 0, 0}, {0, 0, 0}})

AnyVec3 AnyVec3 AnyVec3 AnySwitchVar

omega0 Jij sCoM JaboutCoMOnOff

Denied-Access Members
Class AnyVar AnyVec3 AnyVec3 AnyVec3 AnyMat33 Name t r rDot rDDot Axes

AnyVec3 AnyVec3 AnyMat33

omega omegaDot Jmatrix

132

AnyForceMeasure
Type: Abstract Base Class: AnyMechObject (see p. 117) Description:
This class is the (abstract) base class for a branch of classes that are aimed at retrieving meaningful and practical output about the loads and reaction forces in the mechanical model. The forces that we apply to the model are either applied loads (AnyForce or derived classes) or reaction forces (AnyReacForce or derived). These are all generalized forces in the sense that they can be associated with any kinematic measure and the actual effect of the force is determined by the principle of virtual work. This denition is the foundation for AnyForceBase, i.e., the base class for all forces. These general force denitions can be hard to understand, except for certain simple cases, and therefore, it is the idea to provide some general tools for converting these forces into more useful quantities. The convertion is the role of AnyForceMeasure (and derived classes) shall play. However, beware that AnyForceMeasure only "measures" the forces; it does not affects the dynamics of the model in any way. Future releases: It is possible to provide several derived classes with special "measurement" functionality in future versions, but at this stage we only provide a single one for retrieving equivalent point forces and moments vectors. Please let us know if you have ideas for other convenient force measures.

Object Members:
Expected Members
Class AnyForceBase Number [1..Inf] Description The generalized forces that will added in this object. Description Object-time variable. (=0)

Denied-Access Members
Class AnyVar Name t

133

AnyForceMomentMeasure
Type: Creatable Base Class: AnyForceMeasure (see p. 132) Description:
This particular class "measures" forces as an equivalent point force and moment, i.e., geometrical vector quantities. The effect of all forces specied inside an instance of this class will be summed up automatically to a single force and moment vector. You specify the point of interest by a reference frame (i.e. AnyRefFrame or derived). Only forces that are applied directly to this reference frame will be included. This can be practical since you can insert forces in the measurement if you are in doubt about their precise application points and investigate their effect. This functionality comes from the fact that the summation is done by means of the principle of virtual work using virtual displacements of the reference frame of interest. The rest of the mechanical system is not moved by this displacement, which then may violate kinematic constraints in joints, etc.. Therefore, forces transmitted by the joints are neglected, unless the joint is attached to the point of interest. Notice that this does not allow you to investigate the effects of a given force at a point of interest far away from the application point, but you can investigate the reaction forces that arise due to all of the applied loads.

Object Members:
Expected Members
Class AnyForceBase AnyRefFrame Number [1..Inf] [1] Description The generalized forces that will added in this object. The reference frame that denes the point of interest and thereby the output. Description Object-time variable. (=0) Equivalent point force vector in global coordinates. (={0, 0, 0}) Equivalent point moment/torque vector in global coordinates. (={0, 0, 0})

Denied-Access Members
Class AnyVar AnyVec3 AnyVec3 Name t F M

134

AnyForceMomentMeasure2
Type: Creatable Base Class: AnyForceMomentMeasure (see p. 133) Description:
As its parent class, AnyForceMomentMeasure, this force-measure class "measures" forces as an equivalent point force and moment, i.e., geometrical vector quantities. However, the way the force contributions are assembled are signicantly different. As in the parent class as point of interest is specied as the rst AnyRefFrame member. The equivalent force and moment refers to the position of origin of this reference at any given time. The equivalent force and moment are assembled of contribution from all the force (AnyForceBase) members in the objects, however in contrast to the AnyForceMomentMeasure, contributions do not depend whether the force is actually applied to the "point-of-interest". In AnyForceMomentMeasure2, contributions from a given force depend on whether it is applied to one (or more) of the segments (AnySeg) specied for the force measure. All AnySeg members in the AnyForceMomentMeasure2 object are part of system This functionality of AnyForceMomentMeasure2 can be interpreted a bit like a free-body diagram: Your system is the segments you have specied in the AnyForceMomentMeasure2 object. The forces, you have included, are the ones that have your current attention, and the ouput is the total equivalent force and moment (with reperence to a specic point). Notice that including all forces on a segment or a system of segments should ideally give zero equivalent force and moment due to equilibrium, but this must indeed include all forces including reactions, forces of gravity, and inertia forces. Notice also that an AnySeg objects are also an AnyRefFrame, so if you have an AnySeg object before the AnyRefFrame you intended to be your point-of-interst it will fail to work as you intended. The AnySeg object will be taken as point-of-interest, i.e., the the origin of segments body-xed frame.

Object Members:
Expected Members
Class AnyForceBase AnyRefFrame AnySeg Number [0..Inf] [1..Inf] [1..Inf] Description The generalized forces that will added in this object. The reference frame that denes the point of interest and thereby the output. Segments that denes the mechanical subsystem for which the force contributions are assembled. Description

Optional-Initialization Members
Class Name

135 AnySwitchVar IncludeGravity When set to On, gravitational forces on the segments are included in the summation of forces. (=Off, Options: Off | On) When set to On, inertia forces on the segments are included in the summation of forces. (=Off, Options: Off | On) Description Object-time variable. (=0) Equivalent point force vector in global coordinates. (={0, 0, 0}) Equivalent point moment/torque vector in global coordinates. (={0, 0, 0})

AnySwitchVar

IncludeInertiaForces

Denied-Access Members
Class AnyVar AnyVec3 AnyVec3 Name t F M

136

AnyMuscleModel
Type: Creatable Base Class: AnyMechObject (see p. 117) Description:
This class is the base class for all muscle models, i.e., the constitutive model of a muscle. A muscle model object provides the muscle objects with information about the muscle strength, passive forces, and the assumed relationship between passive and active forces. AnyMuscleModel is not an abstract base class. It contains the simplest possible model having constant strength and no passive element properties.

Object Members:
Obligatory-Initialization Members
Class AnyVar Name F0 Description The nominal strength, i.e., the maximal isometric muscle force.

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

137

AnyMuscleModel3E
Type: Creatable Base Class: AnyMuscleModel (see p. 136) Description:
This class contains a three element, Hill-type muscle model. It comprises a contractile element (the active muscle bers), a non-linear serial elastic element (the tendon) and a non-linear parallel elastic element (the passive part of the bers). The contractile element is characterized by the force-length and the force-velocity relationship. Future releases: More details will follow in a future version of the text, including references for further information.

Object Members:
Obligatory-Initialization Members
Class AnyVar AnyVar AnyVar AnyVar Name F0 Lfbar Gammabar Epsilonbar Description The nominal strength, i.e., the maximal isometric muscle force. Nominal ber length. Nominal pennation angle. Nominal tendon strain, i.e., the strain at the isometric muscle force in the serial elastic element. Nominal tendon length. Relative amount of fast bers (0<=Fcfast<=1).

AnyVar AnyVar

Lt0 Fcfast

Optional-Initialization Members
Class AnyVar AnyVar AnyVar AnyVar Name Jt Jpe K1 K2 Description Shape constant for the tendon (serial elastic) element force relationsship. (=3) Shape constant for the parallel elastic element force relationsship. (=3) Normalized maximum contraction velocity. V0 is basically K1 times Lfbar (for K2=0). (=2) Constribution to normalized maximum velocity for fast bers. K2 adds to V0s component from K1; K2s contribution is K2 times Lfbar times Fcfast. (=8)

138 AnyVar PEFactor Relative stiffness parameter for the parallel elastic element. PEFactor times Lfbaris the ber lenght at which the parallel elastic elements produce a force of F0. (=5) Description Object-time variable. (=0)

Denied-Access Members
Class AnyVar Name t

139

AnyMuscleModel2ELin
Type: Creatable Base Class: AnyMuscleModel (see p. 136) Description:
This class contains a two element, Hill-type muscle model. The two elements are the contractile element (the muscle bers) and the serial elastic element (the tendon). The contractile element is modeled by a bi-linear function, i.e., the force-length and the force-velocity relationships are linear. The elastic tendon force is also modeled by a linear relationsship. Future releases: More details will follow in a future version of the text, including references for further infor. mation

Object Members:
Obligatory-Initialization Members
Class AnyVar AnyVar AnyVar AnyVar Name F0 Lfbar Lt0 Epsilonbar Description The nominal strength, i.e., the maximal isometric muscle force. Nominal ber length. Nominal tendon length. Nominal tendon strain, i.e., the strain at the isometric muscle force in the serial elastic element. Maximum contraction velocity.

AnyVar

V0

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

140

AnyMuscleModelUsr1
Type: Creatable Base Class: AnyMuscleModel (see p. 136) Description:
This class gives the possibility to make simple user-dened muscle models. The strength of the muscle can be dened by an explicit expression. This expression is evaluated be used in the muscle recruitment analyses.

Object Members:
Obligatory-Initialization Members
Class AnyVar AnyVar Name F0 S Description The nominal strength, i.e., the maximal isometric muscle force. Strength of the muscle. This must be initialized with an explicit expression governing the muscle strength.

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

141

AnyKinMeasureBase
Type: Hidden Base Class: AnyMechObject (see p. 117) Description:
This class is the abstract base class for all "kinematic measures" and "user classes" that directly use "kinematic measures". A "kinematic measure" measures some geometrical quantities based on AnyRefFrame-objects and occasionally on other object types. "User classes" use such geometrical information to dene other related quantities, for instance forces that are applied to the model uisng the principle of virtual work with the kinematics dened by "kinematic measure". Real "kinematic measures" that actually hold some geometric information are derived from AnyKinMeasure, the most important child of AnyKinMeasaureBase. "User classes" that do not dene any kinematic measure themselves but merely use them are derived from AnyKinMeasureUsr, the other important child of AnyKinMeasureBase. Please study these derived classes for more detailed information about kinematic measures.

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

142

AnyKinMeasureUsr
Type: Abstract Base Class: AnyKinMeasureBase (see p. 141) Description:
This class is an abstract base class for users of "kinematic measures". It uses the measures from both owner or members in the following order: 1. Members that are kinematic measures are assembled into one measure. 2. The owner, if it is a kinematic measure and none of the members are kinematic measures. The assembly of kinematic measures happens in the order the member-measures are added into the AnyKinMeasureUsr object. For instance if a kinematic measure with 3 components and one with 4 components are supplied in this order, the AnyKinMeasureUsr treats this as a single measure with 7 components, the former 3 from the rst measure and the latter 4 from second measure. Notice that AnyKinMeasureUsr is not a measure in the sense that a measured quantity is provided as output; however, classes derived from this one can use the kinematic measures supplied to apply forces etc. to the mechanical system. An important derived class is AnyForceBase, which is the parent of AnyMuscle and other important classes.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Object-time variable. (=0)

Denied-Access Members
Class AnyVar Name t

143

AnyForceBase
Type: Abstract Base Class: AnyKinMeasureUsr (see p. 142) Description:
This class is the base class for all forces. Forces are associated with a kinematic measure, so they must be considered as generalized forces in the sense that they can have different units. This also implies that it is a vector quantity even if it contains only one components when appied to a scalar kinematic measure. In general, the unit is Watts (W) divided by the velocity unit of the kinematic measure. This implies that a kinematic measure in meters (m), i.e. velocity in m/s, yield force in Newton (N), and a kinematic measure in radians (rad), i.e. velocity in rad/s, yield force in Nm, i.e. moment. This base class of all forces suplies two important vector quantities, Fin and Fout, which can be read as "input" and "output" from a given dynamics analysis applied from a mechanical study. Fin is also what may be known as "applied loads" or "known loads", when considering as given mechanical study and typically, Fin functions the direct contribution from the AnyForceBase object to the right-hand side of the dynamics equilibrium equations. On contrast to this, Fout contains the total force calculated during the analysis. Often AnyForceBase elements (i.e. derived classes) are either "applied/known" or "unknown" forces in the analysis and for such force elements, either Fin or Fout will be zero.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given")

Denied-Access Members
Class AnyVar AnyVector Name t Fin

AnyVector

Fout

144

AnyAppliedForce
Type: Abstract Base Class: AnyForceBase (see p. 143) Description:
This class is the abstract base class for all applied forces, i.e., forces that are explicit functions of the model state (position and velocity) and time. It is a generalized force in the sense that it can be applied to any kinematic measure or even an assembly of such. Refer to the parent class AnyForceBase and its parent AnyKinMeasureUsr for further information on how the force is dened (units) and how several kinematic measures are assembled.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given")

Denied-Access Members
Class AnyVar AnyVector Name t Fin

AnyVector

Fout

145

AnyMuscle
Type: Abstract Base Class: AnyAppliedForce (see p. 144) Description:
This class is the base class for all muscles. It is an abstract base class for all muscle classes, which means that it actually contains most functionality for muscles but it has no denition of geometry. The geometrical information is supplied by "kinematic measures". Derived classes typically contain predetermined kinematic information (kinematic measures) which simplies the use in most cases. Muscle objects can use a variety muscle models given by an AnyMuscleModel object. In general, muscle models describe the relationship between the contractile unit, the tendon unit, and the passive elements of the muscle using in Hill-type models. It is used to estimate muscle strength and passive forces. The muscle class contains output quantities that are related to the muscle models, however, not all of these quantities are estimated by all muscle models; typically simpler models cannot estimate all quantities. In such cases it is sought to provide as meaningful values as possible (typically the default value shown in the tables below).

Object Members:
Expected Members
Class AnyKinMeasure Number [1] Description A kinematic measure that provide the geometric description for the muscle path. It must only measure a single geometric quantity. A muscle model that denes the strength and passive properties of this muscle. Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Length of the muscle-tendon unit. (=0) Length of themuscle unit. This is not the ber length when the pennation angle is different from zero. (=0)

AnyMuscleModel

[1]

Denied-Access Members
Class AnyVar AnyVector Name t Fin

AnyVector

Fout

AnyVar AnyVar

Lmt Lm

146 AnyVar AnyVar AnyVar AnyVar AnyVar Lt LmtDot LmDot Activity CorrectedActivity Length of the tendon unit. (=0) Time-derivative of the muscle-tendon unit length. (=0) Time-derivative of the muscle unit length. (=0) Muscle activity, i.e., normalized muscle force. (=0) Corrected activity, which may be slightly different from Activity for muscle models that involve linearization. (=0) Force in the muscle unit. Not projected onto the ber direction for pennation angles different from zero. (=0) Force in the tendon unit. (=0) Force in the parallel elastic element. Not projected onto the ber direction for pennation angles different from zero. (=0) Current muscle strength. (=0) Tendon force at zero activity. (=0) Tendon force gradient. with respect to the activity (=0) Pennation angle. (=0) Potential energy in the tendon. (=0) Potential energy in the parallel elastic element. (=0) Total potential energy in the muscle-tendon unit. (=0) Power of the tendon unit on the segments, Pt=Ft*LtDot. (=0) Power of the muscle unit on the segments, Pm=Fm*LmDot. (=0) Power of the muscle-tendon unit on the segments, Pmt=Fmt*LmtDot. (=0) Metabolic power. (=0)

AnyVar

Fm

AnyVar AnyVar

Ft Fp

AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar

Strength Ft0 Ft0Grad PennationAngle EPOTt EPOTp EPOTmt Pt Pm Pmt Pmet

147

AnyGeneralMuscle
Type: Creatable Base Class: AnyMuscle (see p. 145) Description:
This muscle class is more general than other classes derived from AnyMuscle. The muscle does not work along a particular path given by a predened kinematic measure but rather attaches to any kinematic measure. This means that AnyGeneralMuscle can provide moment as well as force depending on the nature of its kinematic measure. The kinematic measure is supplied by the user. For instance you can make a "rotational" muscle by applying a revolute joint as kinematic measure in your muscle object. Additionally, you can in this class control the force direction. The muscle is still a unidirectional element, which can only provide force in one direction, but you decide which. This implies that you can make muscles capable of pushing. This general nature of the muscle denition in this class makes it suitable for advanced use, but also somewhat more difcult to manage properly. The output quantities are inherited from the basic muscle class, AnyMuscle, which assumes the muscle geometry to be a linear measure. Therefore, some of these quantities must be interpreted in this view to be meaningful for the more general kinematics intrepretation of this derived class. For instance length quantities for this muscle must be interpreted rather as magnitudes of position in the unit of the kinematic measure. Similarly, forces must be interpreted in a generalized sense, for instance as a moment if we deal with a rotational kinematic measure. (Please refer to the concept of kinematic measures for details on the relationship beteeen force and position of kinematic measures in general.)

Object Members:
Expected Members
Class AnyKinMeasure Number [1] Description A kinematic measure that provide the geometric description for the muscle path. It must only measure a single geometric quantity. A muscle model that denes the strength and passive properties of this muscle. Description Direction of the force. (=-1)

AnyMuscleModel

[1]

Optional-Initialization Members
Class AnyVar Name ForceDirection

Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

148 AnyVector Fin The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Length of the muscle-tendon unit. (=0) Length of themuscle unit. This is not the ber length when the pennation angle is different from zero. (=0) Length of the tendon unit. (=0) Time-derivative of the muscle-tendon unit length. (=0) Time-derivative of the muscle unit length. (=0) Muscle activity, i.e., normalized muscle force. (=0) Corrected activity, which may be slightly different from Activity for muscle models that involve linearization. (=0) Force in the muscle unit. Not projected onto the ber direction for pennation angles different from zero. (=0) Force in the tendon unit. (=0) Force in the parallel elastic element. Not projected onto the ber direction for pennation angles different from zero. (=0) Current muscle strength. (=0) Tendon force at zero activity. (=0) Tendon force gradient. with respect to the activity (=0) Pennation angle. (=0) Potential energy in the tendon. (=0) Potential energy in the parallel elastic element. (=0) Total potential energy in the muscle-tendon unit. (=0) Power of the tendon unit on the segments, Pt=Ft*LtDot. (=0) Power of the muscle unit on the segments, Pm=Fm*LmDot. (=0) Power of the muscle-tendon unit on the segments, Pmt=Fmt*LmtDot. (=0) Metabolic power. (=0)

AnyVector

Fout

AnyVar AnyVar

Lmt Lm

AnyVar AnyVar AnyVar AnyVar AnyVar

Lt LmtDot LmDot Activity CorrectedActivity

AnyVar

Fm

AnyVar AnyVar

Ft Fp

AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar

Strength Ft0 Ft0Grad PennationAngle EPOTt EPOTp EPOTmt Pt Pm Pmt Pmet

149

AnyViaPointMuscle
Type: Creatable Base Class: AnyMuscle (see p. 145) Description:
This is a specilization of the general muscle class, AnyMuscle, that connects two or more so-called via points. The via points are specied as reference frames put into the object as members. Notice that this muscles kinematics assumes the muscle to be a string that can wrap over edges; however, it will also stick to such edges, when the normal forces become negative. More sophisticated wrapping is provided by the AnyShortestPathMuscle.

Object Members:
Expected Members
Class AnyMuscleModel AnyRefFrame Class AnyVar AnyVector Number [1] [2..Inf] Name t Fin Description A muscle model that denes the strength and passive properties of this muscle. Reference frames that dene the via-points. Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Length of the muscle-tendon unit. (=0) Length of themuscle unit. This is not the ber length when the pennation angle is different from zero. (=0) Length of the tendon unit. (=0) Time-derivative of the muscle-tendon unit length. (=0) Time-derivative of the muscle unit length. (=0) Muscle activity, i.e., normalized muscle force. (=0) Corrected activity, which may be slightly different from Activity for muscle models that involve linearization. (=0)

Denied-Access Members

AnyVector

Fout

AnyVar AnyVar

Lmt Lm

AnyVar AnyVar AnyVar AnyVar AnyVar

Lt LmtDot LmDot Activity CorrectedActivity

150 AnyVar Fm Force in the muscle unit. Not projected onto the ber direction for pennation angles different from zero. (=0) Force in the tendon unit. (=0) Force in the parallel elastic element. Not projected onto the ber direction for pennation angles different from zero. (=0) Current muscle strength. (=0) Tendon force at zero activity. (=0) Tendon force gradient. with respect to the activity (=0) Pennation angle. (=0) Potential energy in the tendon. (=0) Potential energy in the parallel elastic element. (=0) Total potential energy in the muscle-tendon unit. (=0) Power of the tendon unit on the segments, Pt=Ft*LtDot. (=0) Power of the muscle unit on the segments, Pm=Fm*LmDot. (=0) Power of the muscle-tendon unit on the segments, Pmt=Fmt*LmtDot. (=0) Metabolic power. (=0) Kinematic measure that denes the muscle geometry to being a piecewise straigth line between the via points.

AnyVar AnyVar

Ft Fp

AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyKinPLine

Strength Ft0 Ft0Grad PennationAngle EPOTt EPOTp EPOTmt Pt Pm Pmt Pmet Line

151

AnyShortestPathMuscle
Type: Creatable Base Class: AnyMuscle (see p. 145) Description:
This is a specialization of the general muscle class, AnyMuscle, the muscle nds the shortest path bewteen two points, The shortest path may involve wrapping, i.e., nding the shortest path around obstacles. In addition, the muscle may have via-points that are rigidly xed to segments, similarly to the AnyViaPointMuscle. The muscle class utilizes the kinematic measure AnyKinSPLine. The muscle path is by this class estimated using a numerical solution of a contact problem of a string and the rigid surfaces. Improper denition of this contact problem can lead to numerical exceptions or inaccurate results. Therefore please study the class AnyKinSPLine for details.

Object Members:
Expected Members
Class AnyMuscleModel AnySurface AnyRefFrame Number [1] [0..Inf] [2..Inf] Description A muscle model that denes the strength and passive properties of this muscle. The surfaces that may be obstacles on the muscles path. Reference frames that dene the xed viapoints. Description Number of discretization points on each string segment. Description An array of 3-D vectors that specify the initial shape of the string. The vectors are ordered as rows of a matrix. For each line segment two vectors must be specied. They are dening two points relative to the line segments origin and insertion nodes and the curves initial shape will be three straight lines; from the origin to the rst point, then to the second, and nally to the insertion point. (="No values given")

Obligatory-Initialization Members
Class AnyVar Name SPLine.StringMesh

Optional-Initialization Members
Class AnyMatrix Name SPLine.InitWrapPosVectors

152 AnyVar SPLine.RelTol Relative tolerance that is used to determine whether the solution is acceptable. The string length is used for normalization of the displacement. (=1e-008) Coefcient for penalty term in the Augmented Lagragian method. Increasing this value can in some cases remove problems of negative pivots in the velocity analysis. (=1000) Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Length of the muscle-tendon unit. (=0) Length of themuscle unit. This is not the ber length when the pennation angle is different from zero. (=0) Length of the tendon unit. (=0) Time-derivative of the muscle-tendon unit length. (=0) Time-derivative of the muscle unit length. (=0) Muscle activity, i.e., normalized muscle force. (=0) Corrected activity, which may be slightly different from Activity for muscle models that involve linearization. (=0) Force in the muscle unit. Not projected onto the ber direction for pennation angles different from zero. (=0) Force in the tendon unit. (=0) Force in the parallel elastic element. Not projected onto the ber direction for pennation angles different from zero. (=0) Current muscle strength. (=0) Tendon force at zero activity. (=0) Tendon force gradient. with respect to the activity (=0) Pennation angle. (=0) Potential energy in the tendon. (=0)

AnyVar

SPLine.AugLagCoef

Denied-Access Members
Class AnyVar AnyVector Name t Fin

AnyVector

Fout

AnyVar AnyVar

Lmt Lm

AnyVar AnyVar AnyVar AnyVar AnyVar

Lt LmtDot LmDot Activity CorrectedActivity

AnyVar

Fm

AnyVar AnyVar

Ft Fp

AnyVar AnyVar AnyVar AnyVar AnyVar

Strength Ft0 Ft0Grad PennationAngle EPOTt

153 AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyKinSPLine EPOTp EPOTmt Pt Pm Pmt Pmet SPLine Potential energy in the parallel elastic element. (=0) Total potential energy in the muscle-tendon unit. (=0) Power of the tendon unit on the segments, Pt=Ft*LtDot. (=0) Power of the muscle unit on the segments, Pm=Fm*LmDot. (=0) Power of the muscle-tendon unit on the segments, Pmt=Fmt*LmtDot. (=0) Metabolic power. (=0) Kinematic measure of the length of the muscle tendon unit.

154

AnyShortestPathMuscle2
Type: Creatable Base Class: AnyMuscle (see p. 145) Description:
This is a specialization of the general muscle class, AnyMuscle, the muscle nds the shortest path bewteen two points, The shortest path may involve wrapping, i.e., nding the shortest path around obstacles. In addition, the muscle may have via-points that are rigidly xed to segments, similarly to the AnyViaPointMuscle. The muscle class utilizes the kinematic measure AnyKinSPLine. The muscle path is by this class estimated using a numerical solution of a contact problem of a string and the rigid surfaces. Improper denition of this contact problem can lead to numerical exceptions or inaccurate results. Therefore please study the class AnyKinSPLine for details.

Object Members:
Expected Members
Class AnyMuscleModel AnySurface AnyRefFrame Number [1] [0..Inf] [2..Inf] Description A muscle model that denes the strength and passive properties of this muscle. The surfaces that may be obstacles on the muscles path. Reference frames that dene the xed viapoints. Description Number of discretization points on each string segment. Description Solver type. (=2) An array of 3-D vectors that specify the initial shape of the string. The vectors are ordered as rows of a matrix. For each line segment two vectors must be specied. They are dening two points relative to the line segments origin and insertion nodes and the curves initial shape will be three straight lines; from the origin to the rst point, then to the second, and nally to the insertion point. (="No values given")

Obligatory-Initialization Members
Class AnyVar Name SPLine.StringMesh

Optional-Initialization Members
Class AnyIntVar AnyMatrix Name SPLine.SolverType SPLine.InitWrapPosVectors

155 AnyIntVar AnyVar SPLine.MaxIter SPLine.RelTol Maximum number of allowed iterations during position analysis of the contact problem. (=100) Relative tolerance that is used to determine whether the solution has converged. The string length is used for normalization of the displacement. (=1e-008) Absolute tolerance (in meters) that is used to determine whether the solution has converged. (=0) Coefcient for penalty term in the Augmented Lagragian method. Increasing this value can in some cases remove problems of negative pivots in the velocity analysis. (=1000) Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Length of the muscle-tendon unit. (=0) Length of themuscle unit. This is not the ber length when the pennation angle is different from zero. (=0) Length of the tendon unit. (=0) Time-derivative of the muscle-tendon unit length. (=0) Time-derivative of the muscle unit length. (=0) Muscle activity, i.e., normalized muscle force. (=0) Corrected activity, which may be slightly different from Activity for muscle models that involve linearization. (=0) Force in the muscle unit. Not projected onto the ber direction for pennation angles different from zero. (=0) Force in the tendon unit. (=0) Force in the parallel elastic element. Not projected onto the ber direction for pennation angles different from zero. (=0) Current muscle strength. (=0)

AnyVar

SPLine.AbsTol

AnyVar

SPLine.AugLagCoef

Denied-Access Members
Class AnyVar AnyVector Name t Fin

AnyVector

Fout

AnyVar AnyVar

Lmt Lm

AnyVar AnyVar AnyVar AnyVar AnyVar

Lt LmtDot LmDot Activity CorrectedActivity

AnyVar

Fm

AnyVar AnyVar

Ft Fp

AnyVar

Strength

156 AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar AnyKinSPLine2 Ft0 Ft0Grad PennationAngle EPOTt EPOTp EPOTmt Pt Pm Pmt Pmet SPLine Tendon force at zero activity. (=0) Tendon force gradient. with respect to the activity (=0) Pennation angle. (=0) Potential energy in the tendon. (=0) Potential energy in the parallel elastic element. (=0) Total potential energy in the muscle-tendon unit. (=0) Power of the tendon unit on the segments, Pt=Ft*LtDot. (=0) Power of the muscle unit on the segments, Pm=Fm*LmDot. (=0) Power of the muscle-tendon unit on the segments, Pmt=Fmt*LmtDot. (=0) Metabolic power. (=0) Kinematic measure of the length of the muscle tendon unit.

157

AnyLigament
Type: Abstract Base Class: AnyAppliedForce (see p. 144) Description:
This class is the base class for all ligaments.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Generalized position of the ligament, for instance the length when a string measure is used. (=0)

Denied-Access Members
Class AnyVar AnyVector Name t Fin

AnyVector

Fout

AnyVar

Pos

158

AnyViaPointLigament
Type: Creatable Base Class: AnyLigament (see p. 157) Description:
This is a specilization of the general ligament class, AnyLigament, that connects two or more socalled via points. The via points are specied as reference frames put into the object as members. Notice that this ligaments kinematics assumes the muscle to be a string that can wrap over edges, but it will also stick to such edges, so that the normal forces can become negative.

Object Members:
Expected Members
Class AnyRefFrame Class AnyVar AnyVector Number [2..Inf] Name t Fin Description Reference frames that dene the via-points. Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given") Generalized position of the ligament, for instance the length when a string measure is used. (=0) Kinematic measure that denes the ligament geometry to being a piecewise straigth line between the via points.

Denied-Access Members

AnyVector

Fout

AnyVar

Pos

AnyKinPLine

Line

159

AnyForce
Type: Creatable Base Class: AnyAppliedForce (see p. 144) Description:
This class function to create a generalized applied load. It is a generalized force in the sense that it can be applied to any kinematic measure or even an assembly of such. Therefore, it is a vector quantity The term "applied load" refers to that the force vector must be an explicit function of the model state (position and velocity) and time. Refer to the parent class AnyForceBase and its parent AnyKinMeasureUsr for further information on how the force is dened (units) and how several kinematic measures are assembled.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Vector of generalized forces.

Obligatory-Initialization Members
Class AnyVector Name F

Denied-Access Members
Class AnyVar AnyVector Name t Fin Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given")

AnyVector

Fout

160

AnyForce3D
Type: Creatable Base Class: AnyAppliedForce (see p. 144) Description:
A three-dimensional concentrated force (a vector). The force can be specied in both global and local coordinates but not simulataneously.

Object Members:
Expected Members
Class AnyRefFrame Number [1] Description The reference frame to which the force is applied. Description Force vector in global coordinates. (={0, 0, 0}) Force vector in local coordinates (not computed when a global force is specied). (={0, 0, 0})

Optional-Initialization Members
Class AnyVec3 AnyVec3 Name F Flocal

Denied-Access Members
Class AnyVar AnyVector Name t Fin Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given")

AnyVector

Fout

161

AnyMoment3D
Type: Creatable Base Class: AnyAppliedForce (see p. 144) Description:
A three-dimensional moment applied to a reference frame. The moment can be specied in both global and local coordinates but not simulataneously.

Object Members:
Expected Members
Class AnyRefFrame Number [1] Description The reference frame to which the moment is applied. Description Moment vector in global coordinates. (not computed when a local moment is specied). (={0, 0, 0}) Moment vector in local coordinates (not computed when a global moment is specied). (={0, 0, 0})

Optional-Initialization Members
Class AnyVec3 Name M

AnyVec3

Mlocal

Denied-Access Members
Class AnyVar AnyVector Name t Fin Description Object-time variable. (=0) The generalized force vector of input loads to the given type of analysis, i.e., to the right-hand side of the equations of motion. (="No values given") The generalized force vector of outputs from the given type of analysis. This is the total force in the element after the analysis is executed. (="No values given")

AnyVector

Fout

162

AnyReacForce
Type: Creatable Base Class: AnyForceBase (see p. 143) Description:
This class is the base class for all reaction forces, i.e., forces that are unknown and must be determined by solving the equilibrium equations. Reaction forces are typically connected with kinematic constraints and are created for each such constraint in the class AnyKinEq or derived classes. A reaction force can also be created without the presence of kinematic constraints. In that case, the reaction is an unknown actuator force similar to the reaction forces for a kinematic driver. The components of a reaction force can be controlled, for instance made inactive (switched off), by settings of its Type member. Notice that a reaction force is a vector quantity with as many components as the associated kinematic measure. It is also a vector in the data structure in cases where there are only one component in the measure. This also makes Type a vector so that each component of the reaction force can be controlled individually. Future releases: In Version 1.x of AnyBodyTM, Type was a vector were values of 0 is Off and 1 is On, respectively. This was merely due to historical reasons, and it has been changed an AnySwitch in version 2.0. Old-style type settings are accepted with a warning and it is recommended to change these settings.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On)

Optional-Initialization Members
Class AnySwitch Name Type

Denied-Access Members
Class AnyVar AnyVector Name t Fin Description Object-time variable. (=0) Input forces inherited from base class; zero vector for reaction forces. (="No values given")

163 AnyVector Fout The generalized reaction force, which is output from a mechanical analysis. (="No values given")

164

AnyKinMeasure
Type: Abstract Base Class: AnyKinMeasureBase (see p. 141) Description:
This class is the abstract base class for all real "kinematic measures". A "kinematic measure" measures some geometrical quantities based on reference, i.e., AnyRefFrame objects. The main difference to AnyKinMeasureBase is that AnyKinMeasure supplies some output, such as the vectors Pos, Vel, and Acc that contain current values of the measured quantity, see description below. Notice that the measure is a vector quantity also in cases where it has only one component.

Object Members:
Expected Members
Class AnyRefFrame Number [0..Inf] Description The reference frames that are input for the measure. Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

165

AnyKinMeasureReal
Type: Abstract Base Class: AnyKinMeasure (see p. 164) Description:
This class is the abstract base class for real "kinematic measures" with a basic mathematical denition. These are the basic building blocks of the model kinematics. Other kinematic measures can be composed from these by AnyKinMeasureOrg, which can assemble and reorganize measures.

Object Members:
Expected Members
Class AnyRefFrame Number [0..Inf] Description The reference frames that are input for the measure. Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

166

AnyKinLinear
Type: Creatable Base Class: AnyKinMeasureReal (see p. 165) Description:
This "kinematic measure" measures translation, i.e., a 3-D vector. It is either the position of one reference frame with respect to the global frame or the relative vector between two frames. By default the measure output consists of the three global components of the vector, but by the Ref you may specify another reference frame as basis for the vector output. This measure is used in the standard joints as well as for describing external loads, such as point loads. The measure can also be used for driving a motion of a point, by adding a kinematic driver to an AnyKinLinear object. Equivalent forces: Forces can be applied to AnyKinLinear objects by AnyForce objects, and they come implicitly from many other objects such kinematic constraints. The principle of virtual work tells us intuitively that forces associated with an AnyKinLinear object must be a linear force, i.e., a 3-d vector, a point load. The kinematic measure is a vector from frame origin 0 to 1. This implies that the components of the generalized force (F in AnyForce) is equal to the force applied on frame 1 from frame 0. However, there are more loads associated with the generalized force. A mechanical explanation of these loads can be given by considering the AnyForce applied to the AnyKinLinear as rigid bar from frame 0 to frame 1. In order to control the force on frame 1, the rotation of the bar must be controlled by some (virtual) rotational actuators; indeed these will apply moment reactions on some part in the system. From the principle of virtual work it follows that this part is the reference frame that is the basis of the measure. Notice that this frame by default is the global frame; in other words there could be transfered a torque to the global frame in this case, or one of frame 0 or 1 if local components of one of these frames are used to measure the position vector of the AnyKinLinear. This issue is known to cause some confusion about the force applied to an AnyKinLinear object; however, this mechanism also makes sure that over all equilibrium is ensured. Future releases: In the current version of AnyBodyTM, AnyKinLinear only supplies the typical Cartesian vector description. However, it is feasible to extend its capabilities to comprise other coordinate types, such as cylindrical and spherical coordinates. This will be considered depending on the user demand for such facilities. Please let us know if you nd any such extensions valuable.

Object Members:
Expected Members
Class AnyRefFrame Number [1..2] Description The reference frames that dene the vector.

167

Optional-Initialization Members
Class AnyVar Name Ref Description Integer numbers that specify the reference system in which the vector is measured. -1 is default meaning the global system, 0 or 1 mean respectively the rst or the second reference system that have been added to the object. (=-1)

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

168

AnyKinCoM
Type: Creatable Base Class: AnyKinLinear (see p. 166) Description:
This measures the center of mass (CoM) of a collection of rigid bodies (AnySeg).

Object Members:
Expected Members
Class AnySeg Number [1..Inf] Description Any postive number of segments can be added to objects of this class. All of them are included in the center of mass calculation. Description Integer numbers that specify the reference system in which the vector is measured. -1 is default meaning the global system, 0 or 1 mean respectively the rst or the second reference system that have been added to the object. (=-1)

Optional-Initialization Members
Class AnyVar Name Ref

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyString Name t Pos Vel Acc SegNames Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") A string array containing the names of the segments the measure uses. (="No values given")

169

AnyKinPLine
Type: Creatable Base Class: AnyKinMeasureReal (see p. 165) Description:
This "kinematic measure" measures the distance between points. The points on the polyline are dened by the members of the type AnyRefFrame. The measure is the length of the polyline starting from the rstly dened AnyRefFrame proceeding to the last.

Object Members:
Expected Members
Class AnyRefFrame Number [2..Inf] Description The reference frames that are input for the measure. Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

170

AnyKinSPLine2
Type: Creatable Base Class: AnyKinPLine (see p. 169) Description:
This "kinematic measure" measures the length of the shortest path (SP) of a string that may be in contact with surfaces. The string is dened as a polyline (see AnyKinPLine) where the connecting line segment can be in contact with and wrap over rigid surfaces (AnySurface). The contact between line and surfaces is considered as frictionless and is governed by static equilibrium, i.e., minimum potential elastic energy of the string. The contact problem is solved iteratively until the displacement of the string between iteration steps is less than a given tolerance. Known issues: This is a very challenging functionality to implement and the numerical and iterative nature of the evaluation of this kinematic measure means that it is not a 100 percent stable. Moreover, it demands relatively much computer power compared to typical "kinematic measures" that are based on simple mathematical expressions that are straight forward to evaluate. AnyKinSPLine objects can slow down models signicantly. Large time step, i.e., steps where large motion has occured, can cause problems. The numerical solution relies on initial guesses for the position of the string. These are entered manually for the starting point in time, but during an time analysis, the previous time step and information about the motion is used to create the guess of the position for the next step. Large time steps can therefore cause these guesses to be inadequate, which can make the position analysis fail to converge or converge to an unexpected solution causing jumps of the string position. The velocity analysis may fail with an exception reporting "negative pivot" during a factorization. This can happen when the wrapping geometry is not dened properly and segments of the polyline penetrates a surface too much. The direct cause of this can be that an endpoint or via-point of the string penetrates the surface or that the mesh of the string is too coarse. In the former case a warning about the penetration will be given, however, the penetration is accepted by the system unless the "negative pivot" occurs. Due to the complexity of the underlying mathematical problem, the acceleration analysis for this measure is not implemented. This implies that this measure cannot be used for kinematic drivers, however it is sufciently equipped to function for denition of forces and thereby muscles, which is the primary objective of the kinematic measure. Future releases: This class and the underlying numerical solver routines are still undergoing development. Increased robustness, easier user control, and increased efciency are areas of the continous research and development in this area. This implies that changes of this class must be expected in future versions of AnyBodyTM.

171

Object Members:
Expected Members
Class AnyRefFrame Number [2..Inf] Description The reference frames that are input for the measure. Description Number of discretization points on each string segment. Description Solver type. (=2) An array of 3-D vectors that specify the initial shape of the string. The vectors are ordered as rows of a matrix. For each line segment two vectors must be specied. They are dening two points relative to the line segments origin and insertion nodes and the curves initial shape will be three straight lines; from the origin to the rst point, then to the second, and nally to the insertion point. (="No values given") Maximum number of allowed iterations during position analysis of the contact problem. (=100) Relative tolerance that is used to determine whether the solution has converged. The string length is used for normalization of the displacement. (=1e-008) Absolute tolerance (in meters) that is used to determine whether the solution has converged. (=0) Coefcient for penalty term in the Augmented Lagragian method. Increasing this value can in some cases remove problems of negative pivots in the velocity analysis. (=1000) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

Obligatory-Initialization Members
Class AnyVar Name StringMesh

Optional-Initialization Members
Class AnyIntVar AnyMatrix Name SolverType InitWrapPosVectors

AnyIntVar AnyVar

MaxIter RelTol

AnyVar

AbsTol

AnyVar

AugLagCoef

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

172

173

AnyKinSPLine
Type: Creatable Base Class: AnyKinPLine (see p. 169) Description:
This "kinematic measure" measures the length of the shortest path (SP) of a string that may be in contact with surfaces. The string is dened as a polyline (see AnyKinPLine) where the connecting line segment can be in contact with and wrap over rigid surfaces (AnySurface). The contact between line and surfaces is considered as frictionless and is governed by static equilibrium, i.e., minimum potential elastic energy of the string. The contact problem is solved iteratively until the displacement of the string between iteration steps is less than a given tolerance. Known issues: This is a very challenging functionality to implement and the numerical and iterative nature of the evaluation of this kinematic measure means that it is not a 100 percent stable. Moreover, it demands relatively much computer power compared to typical "kinematic measures" that are based on simple mathematical expressions that are straight forward to evaluate. AnyKinSPLine objects can slow down models signicantly. Large time step, i.e., steps where large motion has occured, can cause problems. The numerical solution relies on initial guesses for the position of the string. These are entered manually for the starting point in time, but during an time analysis, the previous time step and information about the motion is used to create the guess of the position for the next step. Large time steps can therefore cause these guesses to be inadequate, which can make the position analysis fail to converge or converge to an unexpected solution causing jumps of the string position. The velocity analysis may fail with an exception reporting "negative pivot" during a factorization. This can happen when the wrapping geometry is not dened properly and segments of the polyline penetrates a surface too much. The direct cause of this can be that an endpoint or via-point of the string penetrates the surface or that the mesh of the string is too coarse. In the former case a warning about the penetration will be given, however, the penetration is accepted by the system unless the "negative pivot" occurs. Due to the complexity of the underlying mathematical problem, the acceleration analysis for this measure is not implemented. This implies that this measure cannot be used for kinematic drivers, however it is sufciently equipped to function for denition of forces and thereby muscles, which is the primary objective of the kinematic measure. Future releases: This class and the underlying numerical solver routines are still undergoing development. Increased robustness, easier user control, and increased efciency are areas of the continous research and development in this area. This implies that changes of this class must be expected in future versions of AnyBodyTM.

174

Object Members:
Expected Members
Class AnyRefFrame Number [2..Inf] Description The reference frames that are input for the measure. Description Number of discretization points on each string segment. Description An array of 3-D vectors that specify the initial shape of the string. The vectors are ordered as rows of a matrix. For each line segment two vectors must be specied. They are dening two points relative to the line segments origin and insertion nodes and the curves initial shape will be three straight lines; from the origin to the rst point, then to the second, and nally to the insertion point. (="No values given") Relative tolerance that is used to determine whether the solution is acceptable. The string length is used for normalization of the displacement. (=1e-008) Coefcient for penalty term in the Augmented Lagragian method. Increasing this value can in some cases remove problems of negative pivots in the velocity analysis. (=1000) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

Obligatory-Initialization Members
Class AnyVar Name StringMesh

Optional-Initialization Members
Class AnyMatrix Name InitWrapPosVectors

AnyVar

RelTol

AnyVar

AugLagCoef

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

175

AnyKinRotational
Type: Creatable Base Class: AnyKinMeasureReal (see p. 165) Description:
This "kinematic measure" measures 3-D orientation/rotations. It measures either the rotation of a single reference frame with respect to the global frame or the relative rotation one frame, frame 1, with respect to another, frame 0. Possible rotational quantities are determined by the member Type, which is an enum of AnyKinRotationalType. This allows you to chose the following quantities as output: Cardan angles (Type = RotAxesAngles): Cardan angles measure a 3-D rotation by three angles of planar rotation about the reference systems axes. One should be aware that the sequence of these rotations is important, and that any rotation subsequent to the rst is a rotation about a local axis arising from the previous rotation(s). Typical examples of such coordinates are Euler angles and Bryant angles, which are described in the literature and both dened by a specic sequence of rotations. In this class, the members Axis1, Axis2, and Axis3 can be used to specify any particular sequence of rotations. One should notice that Cardan angles for any rotation sequence has the inherent problem of singular rotations, i.e., rotations where the middle rotation has made the rst and the last axes to be parallel; this makes the measure indeterminate and close to such positions it will be inaccurate. This problem is also known as "Gimbal Lock". Cartesian rotation vector (Type = RotVector): The Cartesian rotation vector measures a general 3-D orientation as a single rotation about a given axis. The rotation vector is a geometric vector that is parallel with this axis of rotation and its length is equal to angle of rotation. In must be emphasized that the velocity of the rotation vector is not equal to the angular velocity vector, except in the planar case where the axis of rotation is constant. Euler parameters (Type = EulerParam): Euler parameters is a special form of quaternions, i.e., four parameters that uniquely specify any orientation. The presense of four parameters implies that they are not independent. Indeed they must honor the constraint that the vector of the four parameters must be a unit vector. Notice that this constraint makes it difcult to use Euler parameters for driving angular motion generally using the Euler parameters setting, eventhough it is tempting due their unique description of the rotation. Driving all four Euler parameters requires the driver functions to obey the Euler parameters constraint. This would lead to one redundant (but solvable) kinematic constraint. Standard kinematical solvers in AnyBody do however not handle this case nicely. Angular velocity vector(AngVelOnOff = On): For any set of rotational coordinates, you can optionally choose to use the angular velocity vector as output for velocities and its derivatives for the accelerations. This can be used to dene angular measures useful for making AnyForce objects that are equivalent to torques. However, this implies a general inconsistency between positions and velocities, which means that the measure cannot be applied in kinematic constraints, including kinematic drivers.

176 Known issues: 3-D orientation is more complex issue than it might seem. Coordinates for measuring orientation often suffers from multiple solutions. This may arise because the same angles can be given in several ways adding full rotations or they may arise due to other indeterminacies (singularities). Different sets of rotational coordinates have different properties in this regard. In order to resolve some indeterminacies, the AnyKinRotational class will try to estimate the proper solution in case where there a multiple. This is done by comparison to the values in the prior time step, if in the middle of a time analysis. Future releases: Many other measures of 3-D rotation can be considered and AnyBodyTM is certainly prepared for inclusion of more sets here in AnyKinRotational. Therefore, this class may be the subject to changes in future versions. This will be considered depending on the user demand for such facilities. Please let us know if you nd any such extensions valuable.

Object Members:
Expected Members
Class AnyRefFrame Number [1..2] Description The reference frames that are input for the measure. Description Coordinate type specication.

Obligatory-Initialization Members
Class AnyKinRotationalType Name Type

Optional-Initialization Members
Class AnyRefFrameAxis AnyRefFrameAxis AnyRefFrameAxis Name Axis1 Axis2 Axis3 Description First axis of rotation for RotAxesAngles. (=z, Options: x | y | z) Second axis of rotation for RotAxesAngles. (=y, Options: x | y | z) Third axis of rotation for RotAxesAngles. (=x, Options: x | y | z)

177 AnyVar Ref IMPORTANT: The functionality of Ref has been removed, in order to avoid misunderstandings and confusion with Ref in AnyKinLinear. Please modify your model to remove initialization of Ref. In future versions, Ref will be removed entirely. Previous description of this member was: Integer numbers that specify the reference system in which geometric vectors are measured, e.g. the angular velocity vector. 1 is default meaning the global system, 0 or 1 mean respectively the rst or the second reference system that have been added to the object. (=0) Switch for using angular velocity vector at velocity and acceleration level. (=Off, Options: Off | On) Switch for using angular velocity vector in global coordinates at velocity and acceleration level. This requires AngVelOnOff = On. (=Off, Options: Off | On) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

AnySwitchVar

AngVelOnOff

AnySwitchVar

AngVelGlobal

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

178

AnyKinMeasureCombBase
Type: Creatable Base Class: AnyKinMeasure (see p. 164) Description:
This class is a base class for all kinematic measures that combines other measures into a new measure.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

179

AnyKinMeasureNormComb
Type: Creatable Base Class: AnyKinMeasureCombBase (see p. 178) Description:
The norm combination measure contined in this class produce a single measure by calculating a norm-like quantity of the inputs. In addition to a traditional norm, this expression introduce a weight factor for each input as well as an offset value. The output value is dened as by
1/p

OU T P U T =
i

(wi IN P U Ti + Of f set)

Of f set

(4.3)

where i is the index of the inputs and the sum contains all inputs of the measure.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Order of the norm, i.e., power. (=2) Offset. (=0) Vector of weight factors. (="No values given")

Optional-Initialization Members
Class AnyVar AnyVar AnyVector Name Order Offset Weight

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

180

AnyKinMeasureLinComb
Type: Creatable Base Class: AnyKinMeasureCombBase (see p. 178) Description:
This class is a composer of new kinematic measures as a linear combination of existing ones. To some extent, it is similar to AnyKinMeasureOrg, but the way it composes the new measure is different. Please refer also to AnyKinMeasureOrg for details of organizing kinematic measures. The linear combination is dened by a coefcient matrix, Coef, and constant terms in the vector Const. Each row in Coef and Const denes one component of the new kinematic measure. Each column of Coef contains the coefcients associated with one component of the existing measures that have been entered into this new measure (either directly or typically by references). By default the number of rows in Coef denes the number of elements in the new measue. However, the integer OutDim can alternatively be used to specify the directly. This is a patch to cases where Coef depends Evaluation Moments later than the conguration step and therefore is undened during the conguration. For such cases, OutDim must be set, and the dimensions of Coef is validated against this setting. All the components of the entered measures (sub-measures) can be assembled into one vector as for AnyKinMeasureOrg. The rstly dened sub-measure occupies the rst places of the vector and so on. The new measure is dened mathematically as the coefcient matrix, Coef, times this vector plus the constants in Const. Example: If we for instance assemble (include) two measures with respectively 2 and 3 components, the assembled measure will have 5, with indices from 0 to 4. We can dene Coef = {{1,-1,0,0,0},{0,0,1,1,1}} and Const = {0,0}. This yields a new measure with two components: the former is the difference between the components of the rst sub-measure and the latter the sum of the components in the latter sub-measure.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Matrix of coefcients for the linear combination. Each column corresponds to one component in the sub-measures and each row denes one of the new measures.

Obligatory-Initialization Members
Class AnyMatrix Name Coef

181

Optional-Initialization Members
Class AnyIntVar Name OutDim Description Dimension of the output measure. This optional setting can be used to specify the dimension that alternatively is dened by the number of rows in Coef. (=0) Vector of constant. (="No values given")

AnyVector

Const

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

182

AnyKinMeasureOrg
Type: Creatable Base Class: AnyKinMeasureCombBase (see p. 178) Description:
This class is a composer of new kinematic measures from existing ones. Two options exist: 1. Default, it transfers and combines all input measures directly. 2. Otherwise, it may be reorganized by setting indices in the array MeasureOrganizer It is important to keep track of the organization hereunder the sub-measures, because the conguration of the new measure is essential to understand the loads and/or constraints that may be applied to the organized measure. At this point, the MeasureOrganizer is a simple collection of indices. An index refers to the place of a coordinate in the vector of coordinates arising when assembling all sub-measures in the object. The rstly dened sub-measure occupies the rst places of the vector and so on. Example: If we for instance assemble (include) two measures with respectively 2 and 3 components the assembled measure will have 5, with indices from 0 to 4. MeasureOrganizer = {1,2}; will extract two of these 5 components to the organized measure, which then will consist of the 2nd component of the 1st measure and the 1st of the 2nd measure.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given")

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer

Denied-Access Members
Class AnyVar AnyVector AnyVector Name t Pos Vel

183 AnyVector Acc The acceleration vector, typically the timederivative of Vel. (="No values given")

184

AnyJoint
Type: Abstract Base Class: AnyKinMeasureOrg (see p. 182) Description:
This class is the base class of all joints. A joint has, in addition to the kinematic constraints and the associated reaction forces, a set of joint coordinates dened. The joint class is indeed a kinematic measure itself and it measures the joint coordinates.

Object Members:
Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint.

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq

Constraints

185

AnyStdJoint
Type: Creatable Base Class: AnyJoint (see p. 184) Description:
This is the base class for the standard joints, such as spherical and revolute joints. Common for all these standard joints is that the relative motion and the constraints can be dened by a linear and a rotational measure, i.e., AnyKinLinear (p. 166) and AnyKinRotational (p. 175), respectively. Apart from being a base class, this class also functions as a rigid joint, i.e., fully constrained rigid-body motion.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation. The measure of rotation.

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq AnyKinLinear AnyKinRotational

Constraints Linear Orientation

186

AnySphericalJoint
Type: Creatable Base Class: AnyStdJoint (see p. 185) Description:
A spherical joint is a point constraint, also known as a ball-and-socket joint. The joint coordinates must specify the three-dimensional orientation completely and there are several options for this in the AnyKinRotational that is used internally in the joint.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Integer numbers that specify the reference system in which the vector is measured. -1 is default meaning the global system, 0 or 1 mean respectively the rst or the second reference system that have been added to the object. (=-1) Coordinate type specication. (=RotAxesAngles, Options: RotAxesAngles | RotVector | EulerParam) First axis of rotation for RotAxesAngles. (=z, Options: x | y | z) Second axis of rotation for RotAxesAngles. (=y, Options: x | y | z) Third axis of rotation for RotAxesAngles. (=x, Options: x | y | z) Switch for using angular velocity vector at velocity and acceleration level. (=Off, Options: Off | On) Switch for using angular velocity vector in global coordinates at velocity and acceleration level. This requires AngVelOnOff = On. (=Off, Options: Off | On)

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type

AnyVar

Linear.Ref

AnyKinRotationalType

Orientation.Type

AnyRefFrameAxis AnyRefFrameAxis AnyRefFrameAxis AnySwitchVar

Orientation.Axis1 Orientation.Axis2 Orientation.Axis3 Orientation.AngVelOnOff Orientation.AngVelGlobal

AnySwitchVar

187

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation. The measure of rotation.

AnyKinEq AnyKinLinear AnyKinRotational

Constraints Linear Orientation

188

AnyTransSphericalJoint
Type: Creatable Base Class: AnySphericalJoint (see p. 186) Description:
The AnyTransSphericalJoint is basically a spherical joint with one of the translational constraints removed. This makes it a ball-in-a-straight-rail. The joint coordinates consist of three rotations similar to the spherical joint, but with an additional translational coordinate appended as the rst entrie of the Pos vector.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Integer numbers that specify the reference system in which the vector is measured. -1 is default meaning the global system, 0 or 1 mean respectively the rst or the second reference system that have been added to the object. (=-1) Coordinate type specication. (=RotAxesAngles, Options: RotAxesAngles | RotVector | EulerParam) First axis of rotation for RotAxesAngles. (=z, Options: x | y | z) Second axis of rotation for RotAxesAngles. (=y, Options: x | y | z) Third axis of rotation for RotAxesAngles. (=x, Options: x | y | z) Switch for using angular velocity vector at velocity and acceleration level. (=Off, Options: Off | On)

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type

AnyVar

Linear.Ref

AnyKinRotationalType

Orientation.Type

AnyRefFrameAxis AnyRefFrameAxis AnyRefFrameAxis AnySwitchVar

Orientation.Axis1 Orientation.Axis2 Orientation.Axis3 Orientation.AngVelOnOff

189 AnySwitchVar Orientation.AngVelGlobal Switch for using angular velocity vector in global coordinates at velocity and acceleration level. This requires AngVelOnOff = On. (=Off, Options: Off | On) The axis of translation on the rst of the connected reference frames. (=z, Options: x | y | z) Index of the reference system to use a base; value of 0 or 1 referring to the either of two included AnyRefFrames. (=0) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation. The measure of rotation.

AnyRefFrameAxis

Axis

AnyIntVar

Ref

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq AnyKinLinear AnyKinRotational

Constraints Linear Orientation

190

AnyCylindricalJoint
Type: Creatable Base Class: AnyStdJoint (see p. 185) Description:
A cylindrical joint allows rotation about a given axis and translation along the axis, i.e., a combined hinge and translational joint. The joint coordinate vector consists of the relative translation and rotation.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) The axis of translation, which will also be the common axis for the two connected reference frames. (=z, Options: x | y | z) Index of the reference system to use, either 0 or 1, referring to either of the two included AnyRefFrames. (=0) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation.

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type

AnyRefFrameAxis

Axis

AnyIntVar

Ref

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq AnyKinLinear

Constraints Linear

191 AnyKinRotational Orientation The measure of rotation.

192

AnyRevoluteJoint
Type: Creatable Base Class: AnyCylindricalJoint (see p. 190) Description:
A revolute joint is an ideal hinge that only allows rotation about one axis. The joint coordinate vector consists of one entry, the relative rotation.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) The axis of translation, which will also be the common axis for the two connected reference frames. (=z, Options: x | y | z) Index of the reference system to use, either 0 or 1, referring to either of the two included AnyRefFrames. (=0) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation. The measure of rotation.

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type

AnyRefFrameAxis

Axis

AnyIntVar

Ref

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq AnyKinLinear AnyKinRotational

Constraints Linear Orientation

193

194

AnyPrismaticJoint
Type: Creatable Base Class: AnyCylindricalJoint (see p. 190) Description:
A prismatic joint is a translational joint that does not allow rotation about the axis. The joint coordinate vector consists of one entry, the relative translation.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) The axis of translation, which will also be the common axis for the two connected reference frames. (=z, Options: x | y | z) Index of the reference system to use, either 0 or 1, referring to either of the two included AnyRefFrames. (=0) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation. The measure of rotation.

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type

AnyRefFrameAxis

Axis

AnyIntVar

Ref

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq AnyKinLinear AnyKinRotational

Constraints Linear Orientation

195

196

AnyUniversalJoint
Type: Creatable Base Class: AnyStdJoint (see p. 185) Description:
A universal joint allows rotation about two perpendicular axes. The joint coordinate vector consists of two angles that are the relative rotation angles about the two specied axes.

Object Members:
Expected Members
Class AnyRefFrame Number [2] Description The two reference frames to be joined. Notice that a least one has to be movable. Description Rotation axis on the 1st AnyRefFrame. Rotation axis on the 2nd AnyRefFrame.

Obligatory-Initialization Members
Class AnyRefFrameAxis AnyRefFrameAxis Name Axis1 Axis2

Optional-Initialization Members
Class AnySwitch Name Constraints.Reaction.Type Description Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Description Object-time variable. (=0) The position vector of the joint coordinates. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") AnyKinEq measure that species the kinematic constraints of the joint. The measure of translation. The measure of rotation.

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyIntArray Name t Pos Vel Acc MeasureOrganizer

AnyKinEq AnyKinLinear AnyKinRotational

Constraints Linear Orientation

197

198

AnyKinEq
Type: Creatable Base Class: AnyKinMeasureOrg (see p. 182) Description:
This class is the base class for all types of kinematic constraints. Moreover, it functions as a set of equality constraints. An AnyKinEq object can hold several kinematic measures, which can be assembled and reorganized by the functionality in the parent class, AnyKinMeasureOrg (p. 182). The equality constraints set all components in the organized measure to zero, but this can change in derived classes. Notice that AnyKinEq is a kinematic measure itself that measure the violation of the constraints. This implies that Pos, Vel, and Acc should be zero when the kinematic analysis has been performed successfully. It is the basic constraint class used by joints derived from AnyJoint.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") Reaction forces associated with the constraints.

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer

AnySwitch

Reaction.Type

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyReacForce Name t Pos Vel Acc Reaction

199

AnyKinEqDriver
Type: Creatable Base Class: AnyKinEq (see p. 198) Description:
This class is the basic kinematical driver. Future releases: In this version of AnyBodyTM, this class can actually be considered as an abstract base class, but planned extensions of the facilities for driving the kinematics of models will make this class play a more central role. This however implies that some changes of this class and in particular of derived classes must be expected in future version. Extensions will include a library of mathematical functions that can be used for dening kinematic driver functions, as well as other time dependent model input.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") Reaction forces associated with the driving constraints, i.e., the driver actuator forces in a general sense.

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer

AnySwitch

Reaction.Type

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyReacForce Name t Pos Vel Acc Reaction

200

AnyKinEqSimpleDriver
Type: Creatable Base Class: AnyKinEqDriver (see p. 199) Description:
This class contains a simple driver function that provides motion with constant acceleration.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Velocities of the driven coordinates at t=0;

Obligatory-Initialization Members
Class AnyVector Name DriverVel

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Positions of the driven coordinates at t=0; (="No values given") Accelerations of the driven coordinates (constant); (="No values given") Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given")

AnySwitch

Reaction.Type

AnyVector AnyVector

DriverPos DriverAcc

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector Name t Pos Vel Acc

201 AnyReacForce Reaction Reaction forces associated with the driving constraints, i.e., the driver actuator forces in a general sense.

202

AnyKinEqPolynomialDriver
Type: Creatable Base Class: AnyKinEqDriver (see p. 199) Description:
This class contains a polynomial driver function, i.e., a polynomial in time, with the coefcients of the polynomial assembled in the matrix PolyCoef. The ith column contains the coefcients for the ith term of the polynomial, whereas the jth row contains the coefcients for the jth coordinate to be driven.
n

Posi =
j=1

PolyCoef ij t(j1)

(4.4)

where Posi is the ith components of the measure in Pos, and PolyCoef and t are described in the list of members. Future releases: Notice that this driver is derived from AnyKinEqDriver. However, in the future drivers will be handled by a single driver class and a library of general functions and mathematical expressions, which can be used to specify the motion.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Matrix of polynomial coefcients, each row species a polynomial function for one component of the measure. Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On)

Obligatory-Initialization Members
Class AnyMatrix Name PolyCoef

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer

AnySwitch

Reaction.Type

203

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyReacForce Name t Pos Vel Acc Reaction Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") Reaction forces associated with the driving constraints, i.e., the driver actuator forces in a general sense.

204

AnyKinEqFourierDriver
Type: Creatable Base Class: AnyKinEqDriver (see p. 199) Description:
This class provides a Fourier expansion as driver function. It can take the following forms: Posi = Posi = Posi = Aj cos(wj t + Bj ) Aj sin(wj t + Bj ) [Aj cos(wj t) + Bj sin(wj t)] (4.5) (4.6) (4.7)

where Posi is the position of the ith driven coordinate in the measure, and A and B are the Fourier coefcients, i.e., amplitudes and phase angles. wj are the frequencies given by wj = (j 1) 2Freq [rad/s] (4.8)

where Freq is the fundamental frequency in Hz. Notice that Pos can be a vector, implying that A and B then are matrices. Future releases: Notice that this driver is derived from AnyKinEqDriver. However, in the future drivers will be handled by a single driver class and a library of general functions and mathematical expressions, which can be used to specify the motion.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Expansion type setting. Fundamental frequency in Hz. Matrix of Fourier coefcients (amplitudes), each row species values for a single function for one component of the measure. Matrix of Fourier coefcients similar to A. Amplitudes or phase angles depending on the settings.

Obligatory-Initialization Members
Class AnyEnumFourierSerieType AnyVar AnyMatrix Name Type Freq A

AnyMatrix

205

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given") Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") Reaction forces associated with the driving constraints, i.e., the driver actuator forces in a general sense.

AnySwitch

Reaction.Type

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyReacForce Name t Pos Vel Acc Reaction

206

AnyKinEqInterPolDriver
Type: Creatable Base Class: AnyKinEqDriver (see p. 199) Description:
This class provides a driver function that interpolates between data points spaced in time. The following types of interpolation are available: Piecewise linear function (Notice that accelerations are zero for all times). Bezier interpolation. B-Spline interpolation of variable order. The data points can be entered in the designated data structure or they can be read from a data text le. The data le must be an ascii le holding space-separated values. The rst column must be the parameter values, whereas the remaining must hold the data points; as many as there are components in the kinematic measure to be driven. All lines of the le that does begin with a oating-point number are ignored and so is any contents on a line after the expected number oating-point values. Too few values on a line give an error, whereas too many produce a warning. Future releases: Notice that this driver is derived from AnyKinEqDriver. However, in the future drivers will be handled by a single driver class and a library of general functions and mathematical expressions, which can be used to specify the motion.

Object Members:
Expected Members
Class AnyKinMeasure Number [0..Inf] Description Kinematic measures that should be used by this object. Description Interpolation type.

Obligatory-Initialization Members
Class AnyInterPolType Name Type

Optional-Initialization Members
Class AnyIntArray Name MeasureOrganizer Description List of indices of components from the assembled measures to be included in the new (organized) measure. (="No values given")

207 AnySwitch Reaction.Type Type specication of the reaction forces. See AnyReacForce class description for further details. Default is On for all components. (Options: Off | On) Order of B-spline interpolation. Must be larger than or equal to 4 for kinematic drivers to ensure sufciently high order of continuity. (=4) Time data points. (="No values given") Matrix of data points. Each row contains the data points for one component of the measure in Pos. (="No values given") Name of a text le with data points in spaceseparated columns. The rst column must hold T and the following must correspond to the rows of Data. Comments can be entered into the data le in lines that do not start with a number and after the correct number of values (="") On allows data le loading to continue on some errors. These are typically when the number data points does not match the expected number. Error messages are send anyway and you should not expect data to work properly. (=Off, Options: Off | On) Description Object-time variable. (=0) The position vector, i.e., the current values of the measured quantity. (="No values given") The velocity vector, typically the timederivative of Pos. (="No values given") The acceleration vector, typically the timederivative of Vel. (="No values given") Reaction forces associated with the driving constraints, i.e., the driver actuator forces in a general sense.

AnyIntVar

BsplineOrder

AnyVector AnyMatrix

T Data

AnyFileVar

FileName

AnySwitchVar

FileErrorContinueOnOff

Denied-Access Members
Class AnyVar AnyVector AnyVector AnyVector AnyReacForce Name t Pos Vel Acc Reaction

208

AnyLigamentModel
Type: Abstract Base Class: AnyMechObject (see p. 117) Description:
This class is the base class for ligament models. A ligament model contains the constitutive law for a ligament, i.e., the force-length relationship. The constitutive model is a one-dimensional model which implies that ligaments can only have one degree of freedom.

Object Members:
Denied-Access Members
Class AnyVar Name t Description Object-time variable. (=0)

209

AnyLigamentModelPol
Type: Creatable Base Class: AnyLigamentModel (see p. 208) Description:
This ligament model provides a constitutive force-length equation having a polynomial form. The parameters of the function are the slack length, the initial stiffness at this length, together with one point on the curve and the gradient at this point, i.e., the tangent stiffness. This provides an adjustable non-linear form of the constitutive (force-length) relationship. We shall refer to the values at this point as the nominal value: the nominal strain, force and stiffness. The two stiffness values must be supplied as relative values referring to the nominal (mean) stiffness given by the two points. This nominal stiffness is F1/(eps1*L0) in N/m. The polynomial function consists of constant, rst, second, and fourth order terms. It is possible to make the function continue as a linear function for deformations above the nominal strain. This can be used for dening linear constitutive relationships with a slack region.

Object Members:
Obligatory-Initialization Members
Class AnyVar AnyVar AnyVar Name L0 eps1 F1 Description Slack length or undeformed length, i.e., length for zero force. Nominal strain (relative elongation, i.e., L1=(1+eps1)*L0). Nominal force (N), i.e., force at the nominal strain. Description Relative initial stiffness. (=1) Relative stiffness at nominal strain. (=1) Switch for controlling the lineraity of the relationship above nominal strain. (=On, Options: Off | On) Description Object-time variable. (=0)

Optional-Initialization Members
Class AnyVar AnyVar AnySwitch Name a0 a1 LinRegionOnOff

Denied-Access Members
Class AnyVar Name t

210

4.1 Class Tree for AnyMechObject


Notice that due to the amount classes derived from AnyMechObject, the class tree has been split up. Two major branches with respectively AnyKinMeasureUsr and AnyKinMeasure as base classes are shown in separate trees in the following sections. AnyMechObject (see p. 117) AnySurface (see p. 118) AnySurfSTL (see p. 119) AnyParamSurf (see p. 120) AnyParamSurfAnalytical (see p. 121) AnySurfEllipsoid (see p. 122) AnySurfSphere (see p. 123) AnySurfCylinder (see p. 124) AnyRefFrame (see p. 125) AnyFixedRefFrame (see p. 126) AnyPositionedRefFrame (see p. 127) AnyRefNode (see p. 128) AnyMovingRefFrame (see p. 129) AnySeg (see p. 130) AnyForceMeasure (see p. 132) AnyForceMomentMeasure (see p. 133) AnyForceMomentMeasure2 (see p. 134) AnyMuscleModel (see p. 136) AnyMuscleModel3E (see p. 137) AnyMuscleModel2ELin (see p. 139) AnyMuscleModelUsr1 (see p. 140) AnyKinMeasureBase (see p. 141) AnyKinMeasureUsr (see p. 142)> AnyKinMeasure (see p. 164)> AnyLigamentModel (see p. 208) AnyLigamentModelPol (see p. 209)

4.2 Class Tree for AnyKinMeasureUsr


AnyKinMeasureUsr (see p. 142) AnyForceBase (see p. 143) AnyAppliedForce (see p. 144) AnyMuscle (see p. 145) AnyGeneralMuscle (see p. 147) AnyViaPointMuscle (see p. 149) AnyShortestPathMuscle (see p. 151) AnyShortestPathMuscle2 (see p. 154) AnyLigament (see p. 157)

211 AnyViaPointLigament (see p. 158) AnyForce (see p. 159) AnyForce3D (see p. 160) AnyMoment3D (see p. 161) AnyReacForce (see p. 162)

4.3 Class Tree for AnyKinMeasure


AnyKinMeasure (see p. 164) AnyKinMeasureReal (see p. 165) AnyKinLinear (see p. 166) AnyKinCoM (see p. 168) AnyKinPLine (see p. 169) AnyKinSPLine2 (see p. 170) AnyKinSPLine (see p. 173) AnyKinRotational (see p. 175) AnyKinMeasureCombBase (see p. 178) AnyKinMeasureNormComb (see p. 179) AnyKinMeasureLinComb (see p. 180) AnyKinMeasureOrg (see p. 182) AnyJoint (see p. 184) AnyStdJoint (see p. 185) AnySphericalJoint (see p. 186) AnyTransSphericalJoint (see p. 188) AnyCylindricalJoint (see p. 190) AnyRevoluteJoint (see p. 192) AnyPrismaticJoint (see p. 194) AnyUniversalJoint (see p. 196) AnyKinEq (see p. 198) AnyKinEqDriver (see p. 199) AnyKinEqSimpleDriver (see p. 200) AnyKinEqPolynomialDriver (see p. 202) AnyKinEqFourierDriver (see p. 204) AnyKinEqInterPolDriver (see p. 206)

Chapter 5 Drawing and Styling Objects


In this chapter you can nd descriptions of drawing objects and styling objects. Drawing objects are objects that are visible in Model View Window of the AnyBodyTM program. Drawing objects are often related to certain mechanical objects. You could say they are the graphical representations of certain objects, for instance AnyDrawSeg is a standard drawing utility for drawing rigid segments, i.e., AnySeg. Styling objects are objects that denes style and appearances. This can be related to drawing object but styling objects are also used in other relations. Basic style classes are for instance classes dening fonts, line types, and the like.

5.1 Drawing Objects


AnyDrawObject (see p. 213) AnyDrawObjectRigid (see p. 214) AnyDrawObjectRigidFormatted (see p. 215) AnyDrawRefFrame (see p. 216) AnyDrawSeg (see p. 217) AnyDrawNode (see p. 218) AnyDrawNodes (see p. 219) AnyDrawSurf (see p. 220) AnyDrawSTL (see p. 222) AnyDrawParamSurf (see p. 223) AnyDrawCamera (see p. 224) AnyChart (see p. 225) AnyDrawVector (see p. 233) AnyDrawLine (see p. 235) AnyDrawPLine (see p. 237) AnyDrawViaPointMuscle (see p. 238) AnyDrawMuscle (see p. 239)

212

213

AnyDrawObject
Type: Abstract Base Class: AnyCongFolder (see p. 24) Description:
This is the base class for all drawing object classes. A drawing object is a 3-D object that is visible in the Model View window. This base class is abstract, but derived classes are creatable and dene the appearances in the Model View of AnyBodyTMs GUI. The appearance of some objects are controlled by parameters and typically the appearance is highly linked to the owner object. Actually many creatable drawing objects are only allowed inside certain types of objects.

214

AnyDrawObjectRigid
Type: Abstract Base Class: AnyDrawObject (see p. 213) Description:
This drawing object class is the base class for all geometrically rigid objects. This means that drawing object classes derived from this class dene objects that do not change shape during motion of the mechanical elements of the model.

215

AnyDrawObjectRigidFormatted
Type: Abstract Base Class: AnyDrawObjectRigid (see p. 214) Description:
This drawing object class is the base class for all geometrically rigid objects. This means that drawing object classes derived from this class dene objects that do not change shape during motion of the mechanical elements of the model. This extends its parent by facilities for controlling the appearance of the drawing, such as coloring and scaling.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

AnyVar

Face

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

216

AnyDrawRefFrame
Type: Creatable Base Class: AnyDrawObjectRigidFormatted (see p. 215) Description:
This is an object for drawing reference frames. The default size in 1 x 1 x 1 length unit.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Description Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2)

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

Denied-Access Members
Class AnyVar Name Face

217

AnyDrawSeg
Type: Creatable Base Class: AnyDrawRefFrame (see p. 216) Description:
This is an object for drawing a segment. It makes a symbolic stick drawing consisting of an ellipsoid that represents the inertia distribution and sticks connecting the nodes (AnyRefNode) that are attached to the segment.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVar Name RGB Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Scaling factor for the graphical representation of the inertia distribution. (=1) Description Scaling factors for each reference system axis. (={1, 1, 1}) Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2)

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic InertiaScale

Denied-Access Members
Class AnyVec3 AnyVar Name ScaleXYZ Face

218

AnyDrawNode
Type: Creatable Base Class: AnyDrawObjectRigidFormatted (see p. 215) Description:
This object draws a single node (AnyRefFrame) if it is put inside it.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Description Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2)

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

Denied-Access Members
Class AnyVar Name Face

219

AnyDrawNodes
Type: Creatable Base Class: AnyDrawNode (see p. 218) Description:
This object draws all the nodes (AnyRefFrames) in a certain folder, including the folder itself if it is an AnyRefFrame. This is an easy way to display all nodes on a segment without displaying the segment itself. This can be a practical alternative to AnyDrawSeg.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Description Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2)

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

Denied-Access Members
Class AnyVar Name Face

220

AnyDrawSurf
Type: Creatable Base Class: AnyDrawObjectRigidFormatted (see p. 215) Description:
This object draws a 3-D CAD model in the reference frame (AnyRefFrame) in which it is located. The input is les of either standard STL or AnyBodyTMs own ANYSURF format. Actually, the ANYSURF format is always used, so if an STL le is supplied, a new ANYSURF le is automatically created and updated when the STL le is changed. Providing the lename without extension makes the system assume the ".stl" extension; however, if the le is specied with the ".anysurf" extension then any STL le is ignored, i.e., the ANYSURF le is not updated automatically. The surface can be transformed during loading. This is done with a 3D transformation (class AnyFunTransform3D). You can enter a single transformation function, either by declaration or by reference, in an AnyDrawSurf object. Using the derived class AnyFunTransform3DLin function linear transformations including translations and rotations can be employed. The ScaleXYZ member can still be used to produce pure size scaling and mirroring along the reference axes. This transformation is done during visualization, i.e. after the transformation using the scaling function. Both scaling/transformation methods can conveniently be used together. For instance the drawing of an object can follow the scaling of the geometry of a human body model using generally dened scaling functions, whereas mirroring of the drawing for left-to-right-side reuse can be obtained with a simultanous ScaleXYZ denition.

Object Members:
Expected Members
Class AnyFunTransform3D Number [0..1] Description Scaling function that transforms the surface during loading. Description The STL or ANYSURF le name, incl. proper extension. Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1})

Obligatory-Initialization Members
Class AnySurfFile Name FileName

Optional-Initialization Members
Class AnyRGB AnyVec3 Name RGB ScaleXYZ

221 AnyVar Transparency Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

AnyVar

Face

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

222

AnyDrawSTL
Type: Creatable Base Class: AnyDrawObjectRigidFormatted (see p. 215) Description:
This object draws a 3-D CAD model in the reference frame (AnyRefFrame) in which it is located. The CAD model must be in ASCII STL-le format.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the STL le.

Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

AnyVar

Face

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

223

AnyDrawParamSurf
Type: Creatable Base Class: AnyDrawObjectRigidFormatted (see p. 215) Description:
This is a drawing object for parameterized surfaces (see class AnyParamSurf).

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Switch for showing wireframe on the surface. The wire frame is shown as iso-parametric curves. (=Off, Options: Off | On)

AnyVar

Face

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic WireFrameOnOff

224

AnyDrawCamera
Type: Creatable Base Class: AnyDrawObjectRigidFormatted (see p. 215) Description:
Drawing object for visualizing a camera in the model. Future releases: Please notice that this is a beta release of the object. The visuallization is still fairly primitive being just a simple cone indicating the lense. The will be improved in a future version.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyVec3 AnyVar Name RGB ScaleXYZ Transparency Description Object color in RGB values between 0 and 1. (={0.65, 0.65, 0.65}) Scaling factors for each reference system axis. (={1, 1, 1}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) Normal direction specication. Outwards normal is dened by the surface triangles vertex numbering as 0 means clockwise, 1 means counter-clockwise, -1 means both sides will be drawn on all object surfaces. Any other value implies automatic selection. (=2) General font setting for the objects text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

AnyVar

Face

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

225

AnyChart
Type: Creatable Base Class: AnyDrawObjectRigid (see p. 214) Description:
Class that denes a chart showing output. AnyChart is a general 2D and 3D charting facility. In principle, all charts are drawn as 3D objects, but planar chart are spanning only 2 dimensions. Typically, these two directions will be x and z directions of the associated reference frame, whereas the y direction is used only for 3D plots. AnyChart has many options like standard charting facilities known from other softwares. All of them are congurable from the AnyScriptTM code; please refer to the tables below and the classes of the member folder objects for further detail. AbsAxis, AbsAxis2, and ValueAxis contain setting for the rst, secondary, and value axes, respecitvely. Two dimensional charts, only use settings from the former and the latter. Style contains general settings of the appearance of the chart, and Legend contains settings for legends. Data to be displayed in the AnyChart object is dened in series (AnyChartSerie), which must be declared inside the Series folder. Please refer to the classes AnyChartSerieFolder and AnyChartSerie for details. AnyChart is a drawing object and can as such be included in the Model View of a model. An AnyChart object can simply be dened inside any reference frame (AnyRefFrame of derived) and will thereafter be attached to this frame with x and y axes as abscissae axes and z as the value axis. Additionally, AnyBodyTMs GUI application uses AnyChart as one of its charting facilities. This implies that the options you nd in the tables below are also available for the AnyChart View in AnyBodyTM. They are accessible from the Properties View of the AnyChart View. Both Properties View (general for all views with associated properties) and AnyChart View can be opened from the AnyBodyTM Windows menu, and the Properties View for AnyChart View can also be opened by the Properties Button in the AnyChart View toolbar. Future releases: Some facilities in AnyChart are still relatively primitive, compared to standard chart solutions you may nd in other software. We will try to improve the AnyChart according to arising needs and user demands. Until AnyChart is adequately functional, the old chart module in AnyBodyTM will still be available in the GUI application. We sincerely appreciate any feedback on the AnyChart features that may help us in the process of improving AnyChart.

Object Members:

226

Expected Members
Class AnyChartSerie Number [0..Inf] Description Expected members holding data serie denitions. These objects should be put in the Series folder and not in the root scope of AnyChart, where they will have no effect. Description Folder holding the series denitions.

Obligatory-Initialization Members
Class AnyChartSeriesFolder Name Series

Optional-Initialization Members
Class AnyRGBs Name Series.RGBdef Description List holding default color sequence for data curves. It must be a matrix where each row contains three (RGB) values. (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 0}, {0, 1, 1}, {1, 1, 1}, {0, 0, 0}}) Folder holding general style settings for the chart. Style of the plotting area. (=CartesianChart3D, Options: CartesianChart2D | CartesianChart3D) Sizes of three dimensions of the plotting area. (={1, 1, 1}) Line style for axes. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0}) Title text eld. Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="")

AnyChartStyleFolder AnyChartStyle

Style Style.Style

AnyVec3 AnyStyleDrawLine AnyEnumLine3DStyle AnyVar AnyRGB AnyChartTextField AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar

Style.Sizes Style.Axes Style.Axes.Style Style.Axes.Thickness Style.Axes.RGB Style.Title Style.Title.Visible Style.Title.Font Style.Title.Font.RGB Style.Title.Font.FontName Style.Title.Font.Height Style.Title.Font.Width Style.Title.Font.Bold Style.Title.Font.Italic Style.Title.Text

227 AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyChartLegendFolder AnySwitch AnyChartAxis AnySwitchVar AnyVar AnyVar AnySwitchVar AnySwitchVar AnyChartTextField AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar AnyChartAxisUnit AnySwitchVar Style.MessageFont Style.MessageFont.RGB Style.MessageFont.FontName Style.MessageFont.Height Style.MessageFont.Width Style.MessageFont.Bold Style.MessageFont.Italic Legend Legend.Visible AbsAxis AbsAxis.Visible AbsAxis.Min AbsAxis.Max AbsAxis.AutoMin AbsAxis.AutoMax AbsAxis.Title AbsAxis.Title.Visible AbsAxis.Title.Font AbsAxis.Title.Font.RGB AbsAxis.Title.Font.FontName AbsAxis.Title.Font.Height AbsAxis.Title.Font.Width AbsAxis.Title.Font.Bold AbsAxis.Title.Font.Italic AbsAxis.Title.Text AbsAxis.Unit1 AbsAxis.Unit1.Visible Font used for messages dispalyed inside in chart arear. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Folder holding the denition of the legend appearance. Switch for visiblity. (=Off, Options: Off | On) Primary abscissa axis denition. Switch for visiblity. (=On, Options: Off | On) Minimum value on the axis. If not set, it is automatically determined. (=0) Maximum value on the axis. If not set, it is automatically determined. (=1) Switch for automatic determination of minimum value on axis. (=On, Options: Off | On) Switch for automatic determination of maximum value on axis. (=On, Options: Off | On) Axis title. Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="") Primary unit denition (major units). Switch for visibility. (=On, Options: Off | On)

228 AnySwitchVar AnyIntVar AbsAxis.Unit1.AutoUnit AbsAxis.Unit1.Divisions Switch for automatic determination of the unit size. (=On, Options: Off | On) Size of the unit specied by a requested number of divisions of the axis data range. This is used for the automatical determination of the unit size. (=10) Size of the unit. If AutoUnit is On specied, it will be automatically determined from Divisions and the data range. (=0.2) Size of tick inside the plotting area. (=0) Size of tick outside the plotting area. (=0) Switch for visibility of the grid lines. (=Off, Options: Off | On) Style settings for the grid lines. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0}) Switch for visibility of the unit text. (=On, Options: Off | On) Font settings for the unit text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Space between the unit text and the axis. (=0) Format settings for the unit text. Number of digits in output. smaller than one. (=8) Disregarded if

AnyVar

AbsAxis.Unit1.Unit

AnyVar AnyVar AnySwitchVar AnyStyleDrawLine AnyEnumLine3DStyle AnyVar AnyRGB AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyVar AnyStyleNumeric2 AnyIntVar

AbsAxis.Unit1.TickInside AbsAxis.Unit1.TickOutside AbsAxis.Unit1.GridLines AbsAxis.Unit1.GridLineStyle AbsAxis.Unit1.GridLineStyle.Style AbsAxis.Unit1.GridLineStyle.Thickness AbsAxis.Unit1.GridLineStyle.RGB AbsAxis.Unit1.Text AbsAxis.Unit1.TextFont AbsAxis.Unit1.TextFont.RGB AbsAxis.Unit1.TextFont.FontName AbsAxis.Unit1.TextFont.Height AbsAxis.Unit1.TextFont.Width AbsAxis.Unit1.TextFont.Bold AbsAxis.Unit1.TextFont.Italic AbsAxis.Unit1.TextSpace AbsAxis.Unit1.NumberFormat AbsAxis.Unit1.NumberFormat.Digits

229 AnyIntVar AnySwitchVar AbsAxis.Unit1.NumberFormat.Style AbsAxis.Unit1.NumberFormat.Scale AbsAxis.Unit1.NumberFormat.ScaleVal AbsAxis2 AbsAxis2.Visible AbsAxis2.Min AbsAxis2.Max AbsAxis2.AutoMin AbsAxis2.AutoMax AbsAxis2.Title AbsAxis2.Title.Visible AbsAxis2.Title.Font AbsAxis2.Title.Font.RGB AbsAxis2.Title.Font.FontName AbsAxis2.Title.Font.Height AbsAxis2.Title.Font.Width AbsAxis2.Title.Font.Bold AbsAxis2.Title.Font.Italic AbsAxis2.Title.Text AbsAxis2.Unit1 AbsAxis2.Unit1.Visible AbsAxis2.Unit1.AutoUnit AbsAxis2.Unit1.Divisions Style of the numeric output. (=0) Switch for scaling. (=Off, Options: Off | On)

AnyVar

Scaling factor. (=1)

AnyChartAxis AnySwitchVar AnyVar AnyVar AnySwitchVar AnySwitchVar AnyChartTextField AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar AnyChartAxisUnit AnySwitchVar AnySwitchVar AnyIntVar

Secondary abscissa axis denition. Switch for visiblity. (=On, Options: Off | On) Minimum value on the axis. If not set, it is automatically determined. (=0) Maximum value on the axis. If not set, it is automatically determined. (=1) Switch for automatic determination of minimum value on axis. (=On, Options: Off | On) Switch for automatic determination of maximum value on axis. (=On, Options: Off | On) Axis title. Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="") Primary unit denition (major units). Switch for visibility. (=On, Options: Off | On) Switch for automatic determination of the unit size. (=On, Options: Off | On) Size of the unit specied by a requested number of divisions of the axis data range. This is used for the automatical determination of the unit size. (=10)

230 AnyVar AbsAxis2.Unit1.Unit Size of the unit. If AutoUnit is On specied, it will be automatically determined from Divisions and the data range. (=0.2) Size of tick inside the plotting area. (=0) Size of tick outside the plotting area. (=0) Switch for visibility of the grid lines. (=Off, Options: Off | On) Style settings for the grid lines. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0}) Switch for visibility of the unit text. (=On, Options: Off | On) Font settings for the unit text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Space between the unit text and the axis. (=0) Format settings for the unit text. Number of digits in output. smaller than one. (=8) Disregarded if

AnyVar AnyVar AnySwitchVar AnyStyleDrawLine AnyEnumLine3DStyle AnyVar AnyRGB AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyVar AnyStyleNumeric2 AnyIntVar

AbsAxis2.Unit1.TickInside AbsAxis2.Unit1.TickOutside AbsAxis2.Unit1.GridLines AbsAxis2.Unit1.GridLineStyle AbsAxis2.Unit1.GridLineStyle.Style AbsAxis2.Unit1.GridLineStyle.Thickness AbsAxis2.Unit1.GridLineStyle.RGB AbsAxis2.Unit1.Text AbsAxis2.Unit1.TextFont AbsAxis2.Unit1.TextFont.RGB AbsAxis2.Unit1.TextFont.FontName AbsAxis2.Unit1.TextFont.Height AbsAxis2.Unit1.TextFont.Width AbsAxis2.Unit1.TextFont.Bold AbsAxis2.Unit1.TextFont.Italic AbsAxis2.Unit1.TextSpace AbsAxis2.Unit1.NumberFormat AbsAxis2.Unit1.NumberFormat.Digits AbsAxis2.Unit1.NumberFormat.Style AbsAxis2.Unit1.NumberFormat.Scale

AnyIntVar AnySwitchVar

Style of the numeric output. (=0) Switch for scaling. (=Off, Options: Off | On)

231 AnyVar AbsAxis2.Unit1.NumberFormat.ScaleVal ValueAxis ValueAxis.Visible ValueAxis.Min ValueAxis.Max ValueAxis.AutoMin ValueAxis.AutoMax ValueAxis.Title ValueAxis.Title.Visible ValueAxis.Title.Font ValueAxis.Title.Font.RGB ValueAxis.Title.Font.FontName ValueAxis.Title.Font.Height ValueAxis.Title.Font.Width ValueAxis.Title.Font.Bold ValueAxis.Title.Font.Italic ValueAxis.Title.Text ValueAxis.Unit1 ValueAxis.Unit1.Visible ValueAxis.Unit1.AutoUnit ValueAxis.Unit1.Divisions Scaling factor. (=1)

AnyChartAxis AnySwitchVar AnyVar AnyVar AnySwitchVar AnySwitchVar AnyChartTextField AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar AnyChartAxisUnit AnySwitchVar AnySwitchVar AnyIntVar

Value axis denition. Switch for visiblity. (=On, Options: Off | On) Minimum value on the axis. If not set, it is automatically determined. (=0) Maximum value on the axis. If not set, it is automatically determined. (=1) Switch for automatic determination of minimum value on axis. (=On, Options: Off | On) Switch for automatic determination of maximum value on axis. (=On, Options: Off | On) Axis title. Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="") Primary unit denition (major units). Switch for visibility. (=On, Options: Off | On) Switch for automatic determination of the unit size. (=On, Options: Off | On) Size of the unit specied by a requested number of divisions of the axis data range. This is used for the automatical determination of the unit size. (=10) Size of the unit. If AutoUnit is On specied, it will be automatically determined from Divisions and the data range. (=0.2) Size of tick inside the plotting area. (=0) Size of tick outside the plotting area. (=0)

AnyVar

ValueAxis.Unit1.Unit

AnyVar AnyVar

ValueAxis.Unit1.TickInside ValueAxis.Unit1.TickOutside

232 AnySwitchVar AnyStyleDrawLine AnyEnumLine3DStyle AnyVar ValueAxis.Unit1.GridLines ValueAxis.Unit1.GridLineStyle ValueAxis.Unit1.GridLineStyle.Style ValueAxis.Unit1.GridLineStyle.Thickness ValueAxis.Unit1.GridLineStyle.RGB ValueAxis.Unit1.Text ValueAxis.Unit1.TextFont ValueAxis.Unit1.TextFont.RGB ValueAxis.Unit1.TextFont.FontName ValueAxis.Unit1.TextFont.Height ValueAxis.Unit1.TextFont.Width ValueAxis.Unit1.TextFont.Bold ValueAxis.Unit1.TextFont.Italic ValueAxis.Unit1.TextSpace ValueAxis.Unit1.NumberFormat ValueAxis.Unit1.NumberFormat.Digits ValueAxis.Unit1.NumberFormat.Style ValueAxis.Unit1.NumberFormat.Scale ValueAxis.Unit1.NumberFormat.ScaleVal Switch for visibility of the grid lines. (=Off, Options: Off | On) Style settings for the grid lines. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1)

AnyRGB AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyVar AnyStyleNumeric2 AnyIntVar

Color in RGB values between 0 and 1. (={0, 0, 0}) Switch for visibility of the unit text. (=On, Options: Off | On) Font settings for the unit text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Space between the unit text and the axis. (=0) Format settings for the unit text. Number of digits in output. smaller than one. (=8) Disregarded if

AnyIntVar AnySwitchVar

Style of the numeric output. (=0) Switch for scaling. (=Off, Options: Off | On)

AnyVar

Scaling factor. (=1)

233

AnyDrawVector
Type: Creatable Base Class: AnyDrawObject (see p. 213) Description:
A general vector drawing object. You can specify the 3D vector to be drawn by a mathematical expression, and similarly you can specify varying thickness, etc. The vector is attached to a reference frame (AnyRefFrame or derived class). The reference frame is dened as either a member or the owner of the AnyDrawVector object. First priority is given to AnyRefFrame members and if none such exists the owner is taken. If neither are found it is an error.

Object Members:
Expected Members
Class AnyRefFrame Number [0..1] Description Denition of the reference frame the vector is attached to. Description The vector to be drawn. Line thickness.

Obligatory-Initialization Members
Class AnyVec3 AnyVar Name Vec Line.Thickness

Optional-Initialization Members
Class AnySwitchVar Name PointAway Description Species whether the vector points away from reference frame or alternative points towards it. (=On, Options: Off | On) Species whether the vector is given in global coordinates or alternatively in local coordinates of the reference frame. (=On, Options: Off | On) Line style folder. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Color in RGB values between 0 and 1. (={0, 0, 0}) Style folder for starting cap of line.

AnySwitchVar

GlobalCoord

AnyStyleDrawLineWithCaps AnyEnumLine3DStyle AnyRGB AnyStyleDrawLineCap

Line Line.Style Line.RGB Line.Start

234 AnyEnumLine3DCapStyle Line.Start.Style Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow) Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0) Style folder for ending cap of line. Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow) Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0) Text to be associated with the object. (="") Relative position of text. Typical values should be between 0 and 1, which will position the text accordingly along the line. (=1) Font settings for text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Switch for activating drawing of coordinate indicators. (=Off, Options: Off | On)

AnyRGB AnyVar AnyVar AnyStyleDrawLineCap AnyEnumLine3DCapStyle

Line.Start.RGB Line.Start.Thickness Line.Start.Length Line.End Line.End.Style

AnyRGB AnyVar AnyVar AnyStringVar AnyVar

Line.End.RGB Line.End.Thickness Line.End.Length Text TextRelPos

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic DrawCoord

235

AnyDrawLine
Type: Creatable Base Class: AnyDrawObject (see p. 213) Description:
A general line drawing object. You can specify the 3D line by a mathematical expressions of its endpoints and similarly you can specify varying thickness, etc. The line is attached to a local reference frame (AnyRefFrame or derived class). The reference frame is dened as either a member or the owner of the AnyDrawLine object. First priority is given to AnyRefFrame members and if none such exists the owner is taken. If neither are found it is an error. Moreover, it can be specied to show a projection onto the axes of this system only.

Object Members:
Expected Members
Class AnyRefFrame Number [0..1] Description Denition of the reference frame the endpoints are attached to. Description The starting point of the line. The ending point of the line. Line thickness.

Obligatory-Initialization Members
Class AnyVec3 AnyVec3 AnyVar Name p0 p1 Line.Thickness

Optional-Initialization Members
Class AnyVec3 AnySwitchVar Name Offset GlobalCoord Description A vector that species. (={0, 0, 0}) Species whether the endpoints are given in global coordinates or alternatively in local coordinates of the reference frame. (=On, Options: Off | On) Projection axes, i.e., visible coordinates for projections. This can be an array of multiple axes. By default all three dimensions are shown. (Options: x | y | z) Line style folder. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Color in RGB values between 0 and 1. (={0, 0, 0}) Style folder for starting cap of line.

AnyRefFrameAxis

DirAxis

AnyStyleDrawLineWithCaps AnyEnumLine3DStyle AnyRGB AnyStyleDrawLineCap

Line Line.Style Line.RGB Line.Start

236 AnyEnumLine3DCapStyle Line.Start.Style Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow) Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0) Style folder for ending cap of line. Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow) Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0) Text to be associated with the object. (="") Relative position of text. Typical values should be between 0 and 1, which will position the text accordingly along the line. (=0.5) Font settings for text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

AnyRGB AnyVar AnyVar AnyStyleDrawLineCap AnyEnumLine3DCapStyle

Line.Start.RGB Line.Start.Thickness Line.Start.Length Line.End Line.End.Style

AnyRGB AnyVar AnyVar AnyStringVar AnyVar

Line.End.RGB Line.End.Thickness Line.End.Length Text TextRelPos

AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar

TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold TextFont.Italic

237

AnyDrawPLine
Type: Creatable Base Class: AnyDrawObject (see p. 213) Description:
An object of this class denes and draws a polyline between the origins of the reference frames (AnyRefFrames) in the folder, where the object is located. The sequence of the points on the line is the same as the sequence in which the reference frames are dened.

Object Members:
Obligatory-Initialization Members
Class AnyFloat Name Thickness Description Line thickness. This must either hold one value valid for all line segments or an array of values. For an array each element will be valid for a segment of the line and the last value will valid all remaining segments of the line. Color in RGB values between 0 and 1. This must either be an array with 3 values, i.e., one color for all line segments, or an array of RGB value sets, i.e., a matrix with three columns. Multiple colors are handled similarly to the multiple thickness values.

AnyRGBs

RGB

238

AnyDrawViaPointMuscle
Type: Creatable Base Class: AnyDrawPLine (see p. 237) Description:
This is a class for drawing a via point muscle. Future releases: This class will vanish in a future version, but please refer to AnyDrawMuscle, which contains improved capabilities for drawing muscles.

Object Members:
Obligatory-Initialization Members
Class AnyFloat Name Thickness Description Line thickness. This must either hold one value valid for all line segments or an array of values. For an array each element will be valid for a segment of the line and the last value will valid all remaining segments of the line. Color in RGB values between 0 and 1. This must either be an array with 3 values, i.e., one color for all line segments, or an array of RGB value sets, i.e., a matrix with three columns. Multiple colors are handled similarly to the multiple thickness values.

AnyRGBs

RGB

239

AnyDrawMuscle
Type: Creatable Base Class: AnyDrawPLine (see p. 237) Description:
This is a class for drawing a muscle. The muscle appearance can graphically illustrate various properties of the muscle such as the strength, the current strength, the force, or the activity. These things can be illustrated by the muscle thickness (bulging) and its color. The bulging feature varies the radius according to a relative measure between zero and one. The default (maximum) radius is determined by the strength of the muscle and a value of the maximum allowed stress in the muscle, which can be specied by the property MaxStress. With the coloring feature, the color can be varied between two colors according to a similar relative measure as for the bulging. The endpoints of the color scale is given by the color of the drawing object, RGB, and the RGB values in RGBColorScale. The former represents the maximum value and RGBColorScale represents the minimum value of relative measure.

Object Members:
Optional-Initialization Members
Class AnyRGBs Name RGB Description Color of the muscle. This must be an array of sets of RGB values between 0 and 1 (={0.5546875, 0.1015625, 0.1171875}) Object transparency parameter. Values must be in the range from 0.0 (completely transparent) to 1.0 (completely opaque). (=1) Integer value that controls if to draw the muscle or not Options are: 0: Do not draw the muscle 1: Draw the muscle (=1) Integer value that species that the muscle bulges according to: 1: The muscle activity. 2: The current strength relative to the nominal strength. 3: The actual force compared to the nominal strength. 4: Obtaining constant volume of the muscle. Otherwise, the muscle will have constant radius given by the nominal strength of the muscle and the member MaxStress. (=0)

AnyVar

Transparency

AnyVar

DrawOnOff

AnyVar

Bulging

240 AnyVar ColorScale Integer value that controls the color interpolation between the color in RGBColorScale and RGB. Options are: 1: The muscle activity. 2: The current strength relative to the nominal strength. 3: The actual force compared to the nominal strength. Otherwise, the muscle will have the color given in RGB. (=0) Color used for color scaling, values should be given in the range 0 to 1. (={0.95703125, 0.78515625, 0.78515625}) MaxStress is the maximum allowed stress in the muscle used for estimating the visual thickness of the muscles. The default radius of the muscle is determined based on the strength and this MaxStress value. (=250000) Description The thickness setting has no effect in this class. (=0.001)

AnyRGB

RGBColorScale

AnyVar

MaxStress

Denied-Access Members
Class AnyFloat Name Thickness

241

5.2 Scene Objects


AnySceneObject (see p. 242) AnyScene (see p. 243) AnySceneViewer (see p. 244)

242

AnySceneObject
Type: Abstract Base Class: AnyCongFolder (see p. 24) Description:
This is the base class for all object that in some way dene the model scene. This includes object containing scene settings (AnyScene), light objects (AnyLight), ...

243

AnyScene
Type: Creatable Base Class: AnySceneObject (see p. 242) Description:
This class comprises scene settings.

Object Members:
Optional-Initialization Members
Class AnyRGB Name BackgroundColor Description Background color of the scene. (={0.9, 0.9, 0.94})

244

AnySceneViewer
Type: Creatable Base Class: AnySceneObject (see p. 242) Description:
This class comprises scene viewer settings.

Object Members:
Optional-Initialization Members
Class AnyVar Name OrthogracEyeDistAdd Description An additional eye distance added to orthograc views. A large number allows to avoid nearclipping of elements when changing between orthograc and perspective viewing. (=1000) Switch for global reference frame appearance. (=Off, Options: Off | On) Switch for track ball appearance during rotation operations. (=On, Options: Off | On) Switch for focal plane appearance. (=Off, Options: Off | On)

AnySwitchVar AnySwitchVar AnySwitchVar

ShowRefFrame ShowTrackBall ShowFocalPlane

245

5.3 Style Dening Classes


AnyStyle (see p. 246) AnyStyleDraw (see p. 247) AnyChartObject (see p. 248) AnyChartSerie (see p. 249) AnyChartText (see p. 251) AnyChartTextField (see p. 252) AnyChartStyleFolder (see p. 253) AnyChartLegendFolder (see p. 255) AnyChartSeriesFolder (see p. 256) AnyChartAxisUnit (see p. 257) AnyChartAxis (see p. 259) AnyStyleDrawLine (see p. 261) AnyStyleDrawLineWithCaps (see p. 262) AnyStyleDrawPointMarkers (see p. 264) AnyStyleDrawLines (see p. 265) AnyStyleDrawLineCap (see p. 266) AnyStyleNumeric (see p. 267) AnyStyleNumeric1 (see p. 268) AnyStyleNumeric1f (see p. 269) AnyStyleNumeric2 (see p. 271) AnyStyleFont (see p. 272) AnyOutputFileHeaderFormat (see p. 273)

246

AnyStyle
Type: Abstract Base Class: AnyFolder (see p. 24) Description:
Base class for all style setting classes.

247

AnyStyleDraw
Type: Abstract Base Class: AnyStyle (see p. 246) Description:
Base class for all drawing style classes.

248

AnyChartObject
Type: Abstract Base Class: AnyStyleDraw (see p. 247) Description:
Base class for objects used in AnyChart.

249

AnyChartSerie
Type: Creatable Base Class: AnyChartObject (see p. 248) Description:
Class dening a data serie of a chart (AnyChart).

Object Members:
Obligatory-Initialization Members
Class AnyStringVar Name Value Description Search string for value axis (for more info. on search strings, see class AnyObjectSearchString). Line style denitions. For series with multiple value data sets, i.e., multiple curves, multiple values of each style-dening attribute can be specied. Style denitions for data point markers. For series with multiple value data sets, i.e., multiple curves, multiple values of each style-dening attribute can be specied. Description Name string (default value is the name of the AnyChartSerie object). (="AnyChartSerie") Search string for primary abscissa (for more info. on search strings, see class AnyObjectSearchString). (="") Search string for secondary abscissa (3D plots only) (for more info. on search strings, see class AnyObjectSearchString). (="") Switch for lines to be shown or not. (=On, Options: Off | On) Line style. (Options: LineStyleNone | LineStyleFull | LineStyleHidden) Color in RGB values between 0 and 1. A matrix with 3 columns holding the RGB values and a row for each color (="No values given") Line thickness. (="No values given") Switch for markers to be shown or not. (=On, Options: Off | On)

AnyStyleDrawLines

Lines

AnyStyleDrawPointMarkers

PointMarkers

Optional-Initialization Members
Class AnyChartSerieTitle AnyStringVar Name Title Abscissa

AnyStringVar

Abscissa2

AnySwitchVar AnyEnumLineStyle AnyRGBs

Lines.Visible Lines.Style Lines.RGB

AnyFloat AnySwitchVar

Lines.Thickness PointMarkers.Visible

250 AnyEnumPointMarkerStyle AnyFloat AnyInt PointMarkers.Style Marker style. (Options: PointStyleNone | PointStyleBox | PointStyleSphere | PointStyleStar | PointStyleCross | PointStyleCross2) Size of markers. (="No values given") Amount of points between every visible marker. (="No values given")

PointMarkers.Size PointMarkers.SkipPoints

251

AnyChartText
Type: Abstract Base Class: AnyChartObject (see p. 248) Description:
Base class for text objects in the chart.

Object Members:
Optional-Initialization Members
Class AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar Name Visible Font Font.RGB Font.FontName Font.Height Font.Width Font.Bold Font.Italic Description Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

252

AnyChartTextField
Type: Abstract Base Class: AnyChartText (see p. 251) Description:
Class for text elds in the chart.

Object Members:
Optional-Initialization Members
Class AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar Name Visible Font Font.RGB Font.FontName Font.Height Font.Width Font.Bold Font.Italic Text Description Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="")

253

AnyChartStyleFolder
Type: Hidden Base Class: AnyChartObject (see p. 248) Description:
Class that denes a chart showing output.

Object Members:
Optional-Initialization Members
Class AnyChartStyle Name Style Description Style of the plotting area. (=CartesianChart3D, Options: CartesianChart2D | CartesianChart3D) Sizes of three dimensions of the plotting area. (={1, 1, 1}) Line style for axes. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0}) Title text eld. Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="") Font used for messages dispalyed inside in chart arear. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10)

AnyVec3 AnyStyleDrawLine AnyEnumLine3DStyle AnyVar AnyRGB AnyChartTextField AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar

Sizes Axes Axes.Style Axes.Thickness Axes.RGB Title Title.Visible Title.Font Title.Font.RGB Title.Font.FontName Title.Font.Height Title.Font.Width Title.Font.Bold Title.Font.Italic Title.Text MessageFont MessageFont.RGB MessageFont.FontName MessageFont.Height

254 AnyIntVar AnySwitchVar AnySwitchVar MessageFont.Width MessageFont.Bold MessageFont.Italic Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

255

AnyChartLegendFolder
Type: Hidden Base Class: AnyChartObject (see p. 248) Description:
Class that denes a chart showing output.

Object Members:
Optional-Initialization Members
Class AnySwitch Name Visible Description Switch for visiblity. (=Off, Options: Off | On)

256

AnyChartSeriesFolder
Type: Hidden Base Class: AnyChartObject (see p. 248) Description:
Folder for holding series denitions in charts (AnyChart).

Object Members:
Expected Members
Class AnyChartSerie Class AnyRGBs Number [0..Inf] Name RGBdef Description Members holding data serie denitions. Description List holding default color sequence for data curves. It must be a matrix where each row contains three (RGB) values. (={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 0}, {0, 1, 1}, {1, 1, 1}, {0, 0, 0}})

Optional-Initialization Members

257

AnyChartAxisUnit
Type: Hidden Base Class: AnyChartObject (see p. 248) Description:
Class containing unit denitons for axes in a chart (AnyChart).

Object Members:
Optional-Initialization Members
Class AnySwitchVar AnySwitchVar AnyIntVar Name Visible AutoUnit Divisions Description Switch for visibility. (=On, Options: Off | On) Switch for automatic determination of the unit size. (=On, Options: Off | On) Size of the unit specied by a requested number of divisions of the axis data range. This is used for the automatical determination of the unit size. (=10) Size of the unit. If AutoUnit is On specied, it will be automatically determined from Divisions and the data range. (=0.2) Size of tick inside the plotting area. (=0) Size of tick outside the plotting area. (=0) Switch for visibility of the grid lines. (=Off, Options: Off | On) Style settings for the grid lines. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0}) Switch for visibility of the unit text. (=On, Options: Off | On) Font settings for the unit text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On)

AnyVar

Unit

AnyVar AnyVar AnySwitchVar AnyStyleDrawLine AnyEnumLine3DStyle AnyVar AnyRGB AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar

TickInside TickOutside GridLines GridLineStyle GridLineStyle.Style GridLineStyle.Thickness GridLineStyle.RGB Text TextFont TextFont.RGB TextFont.FontName TextFont.Height TextFont.Width TextFont.Bold

258 AnySwitchVar AnyVar AnyStyleNumeric2 AnyIntVar AnyIntVar AnySwitchVar AnyVar TextFont.Italic TextSpace NumberFormat NumberFormat.Digits NumberFormat.Style NumberFormat.Scale NumberFormat.ScaleVal Switch for italic type setting. (=Off, Options: Off | On) Space between the unit text and the axis. (=0) Format settings for the unit text. Number of digits in output. Disregarded if smaller than one. (=8) Style of the numeric output. (=0) Switch for scaling. (=Off, Options: Off | On) Scaling factor. (=1)

259

AnyChartAxis
Type: Hidden Base Class: AnyChartObject (see p. 248) Description:
Class containing axis denitons for a chart (AnyChart).

Object Members:
Optional-Initialization Members
Class AnySwitchVar AnyVar AnyVar AnySwitchVar AnySwitchVar AnyChartTextField AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyStringVar AnyChartAxisUnit AnySwitchVar AnySwitchVar AnyIntVar Name Visible Min Max AutoMin AutoMax Title Title.Visible Title.Font Title.Font.RGB Title.Font.FontName Title.Font.Height Title.Font.Width Title.Font.Bold Title.Font.Italic Title.Text Unit1 Unit1.Visible Unit1.AutoUnit Unit1.Divisions Description Switch for visiblity. (=On, Options: Off | On) Minimum value on the axis. If not set, it is automatically determined. (=0) Maximum value on the axis. If not set, it is automatically determined. (=1) Switch for automatic determination of minimum value on axis. (=On, Options: Off | On) Switch for automatic determination of maximum value on axis. (=On, Options: Off | On) Axis title. Switch for visiblity. (=On, Options: Off | On) Font settings. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Text string. (="") Primary unit denition (major units). Switch for visibility. (=On, Options: Off | On) Switch for automatic determination of the unit size. (=On, Options: Off | On) Size of the unit specied by a requested number of divisions of the axis data range. This is used for the automatical determination of the unit size. (=10)

260 AnyVar Unit1.Unit Size of the unit. If AutoUnit is On specied, it will be automatically determined from Divisions and the data range. (=0.2) Size of tick inside the plotting area. (=0) Size of tick outside the plotting area. (=0) Switch for visibility of the grid lines. (=Off, Options: Off | On) Style settings for the grid lines. Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0}) Switch for visibility of the unit text. (=On, Options: Off | On) Font settings for the unit text. Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On) Space between the unit text and the axis. (=0) Format settings for the unit text. Number of digits in output. Disregarded if smaller than one. (=8) Style of the numeric output. (=0) Switch for scaling. (=Off, Options: Off | On) Scaling factor. (=1)

AnyVar AnyVar AnySwitchVar AnyStyleDrawLine AnyEnumLine3DStyle AnyVar AnyRGB AnySwitchVar AnyStyleFont AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar AnyVar AnyStyleNumeric2 AnyIntVar AnyIntVar AnySwitchVar AnyVar

Unit1.TickInside Unit1.TickOutside Unit1.GridLines Unit1.GridLineStyle Unit1.GridLineStyle.Style Unit1.GridLineStyle.Thickness Unit1.GridLineStyle.RGB Unit1.Text Unit1.TextFont Unit1.TextFont.RGB Unit1.TextFont.FontName Unit1.TextFont.Height Unit1.TextFont.Width Unit1.TextFont.Bold Unit1.TextFont.Italic Unit1.TextSpace Unit1.NumberFormat Unit1.NumberFormat.Digits Unit1.NumberFormat.Style Unit1.NumberFormat.Scale Unit1.NumberFormat.ScaleVal

261

AnyStyleDrawLine
Type: Abstract Base Class: AnyStyleDraw (see p. 247) Description:
Class that holds a line style denition.

Object Members:
Optional-Initialization Members
Class AnyEnumLine3DStyle AnyVar AnyRGB Name Style Thickness RGB Description Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Line thickness. (=1) Color in RGB values between 0 and 1. (={0, 0, 0})

262

AnyStyleDrawLineWithCaps
Type: Abstract Base Class: AnyStyleDrawLine (see p. 261) Description:
Class that holds a line style denition for lines with ending caps.

Object Members:
Obligatory-Initialization Members
Class AnyVar Name Thickness Description Line thickness.

Optional-Initialization Members
Class AnyEnumLine3DStyle AnyRGB AnyStyleDrawLineCap AnyEnumLine3DCapStyle Name Style RGB Start Start.Style Description Line style. (=Line3DStyleFull, Options: Line3DStyleFull) Color in RGB values between 0 and 1. (={0, 0, 0}) Style folder for starting cap of line. Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow) Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0) Style folder for ending cap of line. Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow)

AnyRGB AnyVar AnyVar AnyStyleDrawLineCap AnyEnumLine3DCapStyle

Start.RGB Start.Thickness Start.Length End End.Style

263 AnyRGB AnyVar AnyVar End.RGB End.Thickness End.Length Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0)

264

AnyStyleDrawPointMarkers
Type: Abstract Base Class: AnyStyleDraw (see p. 247) Description:
Class that holds style denitions for one or multiple sets of point markers for curves. Each style-dening member of this class can hold several values, each of them dening an attribute for one line. Exceeding amount of values are disregarded and in case of to few values, the values are reused cyclicly. For instance the denition of three colors for six lines results in 2 lines of each color, and three colors for two lines results in the last color not being used.

Object Members:
Optional-Initialization Members
Class AnySwitchVar AnyEnumPointMarkerStyle AnyFloat AnyInt Name Visible Style Description Switch for markers to be shown or not. (=On, Options: Off | On) Marker style. (Options: PointStyleNone | PointStyleBox | PointStyleSphere | PointStyleStar | PointStyleCross | PointStyleCross2) Size of markers. (="No values given") Amount of points between every visible marker. (="No values given")

Size SkipPoints

265

AnyStyleDrawLines
Type: Abstract Base Class: AnyStyleDraw (see p. 247) Description:
Class that holds style denitions for multiple lines. Each style-dening member of this class can hold several values, each of them dening an attribute for one line. Exceeding amount of values are disregarded and in case of to few values, the values are reused cyclicly. For instance the denition of three colors for six lines results in 2 lines of each color, and three colors for two lines results in the last color not being used.

Object Members:
Optional-Initialization Members
Class AnySwitchVar AnyEnumLineStyle AnyRGBs Name Visible Style RGB Description Switch for lines to be shown or not. (=On, Options: Off | On) Line style. (Options: LineStyleNone | LineStyleFull | LineStyleHidden) Color in RGB values between 0 and 1. A matrix with 3 columns holding the RGB values and a row for each color (="No values given") Line thickness. (="No values given")

AnyFloat

Thickness

266

AnyStyleDrawLineCap
Type: Abstract Base Class: AnyStyleDraw (see p. 247) Description:
Class that holds a line-end style denition.

Object Members:
Optional-Initialization Members
Class AnyEnumLine3DCapStyle Name Style Description Cap style. This can optionally be an array producing a line cap composed of multiple simple caps styles, one for each element of the array. (Options: Line3DCapStyleVoid | Line3DCapStyleNone | Line3DCapStyleDisk | Line3DCapStyleCylinder | Line3DCapStyleEllipsoid | Line3DCapStyleArrow) Color in RGB values between 0 and 1. (={0, 0, 0}) Cap thickness (must be larger than line thickness). (=0) Cap length. (=0)

AnyRGB AnyVar AnyVar

RGB Thickness Length

267

AnyStyleNumeric
Type: Abstract Base Class: AnyStyle (see p. 246) Description:
Base class for all classes containing numeric style denitions.

268

AnyStyleNumeric1
Type: Abstract Base Class: AnyStyleNumeric (see p. 267) Description:
Class dening number formats for output.

Object Members:
Optional-Initialization Members
Class AnyIntVar Name Digits Description Number of digits in output. smaller than one. (=8) Disregarded if

269

AnyStyleNumeric1f
Type: Abstract Base Class: AnyStyleNumeric1 (see p. 268) Description:
Class dening number formats for output. This class contains extended formatting capabilities compared to the parent class, AnyStyleNumeric1. A xed amount of space, the width, and a style, decimal or scientic notation, can be assigned to the output, in addition to the precission already given by the number of digits after the decimal point. A more detailed and versatile formatting can achieved with C-style formatting specication known from the printf() function. This is done by the FormatStr member, which overrides any other specication. FormatStr = "%[ags] [width] [.precision] [{h | l | ll | I | I32 | I64}]type" type: f: Signed value having the form [ ?]d.d, where d is one or more decimal digits. The number of digits before the decimal point depends on the magnitude of the number, and the number of digits after the decimal point depends on the requested precision. e: Signed value having the form [ ?]d.d e [sign]d where d is one or more decimal digits, depending on the output format and size of the exponent, and sign is + or ? E: Identical to e, but using uppercase E instead of lowercase e. g: Signed value printed in f or e format, whichever is more compact for the given value and precision. The e format is used only when the exponent of the value is less than ? or greater than or equal to the precision argument. Trailing zeros are truncated, and the decimal point appears only if one or more digits follow it. G: Identical to g, but using the E format instead of e. ags: -: Left align the result within the given eld width. +: Prex the output value with a sign (+ or ? if the output value is of a signed type. 0: If width is prexed with 0, zeros are added until the minimum width is reached. If 0 and ?appear, the 0 is ignored. If 0 is specied with an integer format (i, u, x, X, o, d) and a precision specication is also present (for example, %04.d), the 0 is ignored. Blank : Prex the output value with a blank if the output value is signed and positive; the blank is ignored if both the blank and + ags appear. #: When used with the o, x, or X format, the # ag prexes any nonzero output value with 0, 0x, or 0X, respectively. When used with the e, E, f, a or A format, the # ag forces the output value to contain a decimal point in all cases. When used with the g or G format, the # ag forces the output value to contain a decimal point in all cases and prevents the truncation of trailing zeros. Ignored when used with c, d, i, u, or s.

270 width: The width argument is a nonnegative decimal integer controlling the minimum number of characters printed. If the number of characters in the output value is less than the specied width, blanks are added to the left or the right of the values ?depending on whether the ?ag (for left alignment) is specied ?until the minimum width is reached. If width is prexed with 0, zeros are added until the minimum width is reached (not useful for left-aligned numbers). The width specication never causes a value to be truncated. If the number of characters in the output value is greater than the specied width, or if width is not given, all characters of the value are printed (subject to the precision specication). precision: f: The precision value species the number of digits after the decimal point. If a decimal point appears, at least one digit appears before it. The value is rounded to the appropriate number of digits. e,E: The precision species the number of digits to be printed after the decimal point. The last printed digit is rounded. g,G: The precision species the maximum number of signicant digits printed. Notice that not some output functions may not support all possible formats in FormatStr, depending on their implementation. Notice also that FormatStr has higher priority that Digits, Width, and Style; the lower priorities attributes cannot be initialized togther with FormatStr, but their values are set from FormatStr, if possible.

Object Members:
Optional-Initialization Members
Class AnyIntVar AnyIntVar Name Digits Width Description Number of digits in output. Disregarded if smaller than one. (=8) Number of character spaces reserved for the number in output. Disregarded if smaller than one. (=0) Style specication. (=CompactNumber, Options: DecimalNumber | ScienticNumber | CompactNumber) Complete format specication using C-style character specication known from the printf() function. This overrides the any other specication. If not specied by the user it is determined automatically from the other specication. (="")

AnyEnumFloatNumberStyle AnyStringVar

Style

FormatStr

271

AnyStyleNumeric2
Type: Abstract Base Class: AnyStyleNumeric1 (see p. 268) Description:
Class dening number formats for output.

Object Members:
Optional-Initialization Members
Class AnyIntVar AnyIntVar AnySwitchVar AnyVar Name Digits Style Scale ScaleVal Description Number of digits in output. Disregarded if smaller than one. (=8) Style of the numeric output. (=0) Switch for scaling. (=Off, Options: Off | On) Scaling factor. (=1)

272

AnyStyleFont
Type: Abstract Base Class: AnyStyle (see p. 246) Description:
Base class for all drawing style classes.

Object Members:
Optional-Initialization Members
Class AnyRGB AnyStringVar AnyIntVar AnyIntVar AnySwitchVar AnySwitchVar Name RGB FontName Height Width Bold Italic Description Color in RGB values between 0 and 1. (={0, 0, 0}) Font name (Windows fonts). (="Times New Roman") Font height. (=10) Font width. (=4) Switch for bold face type setting. (=Off, Options: Off | On) Switch for italic type setting. (=Off, Options: Off | On)

273

AnyOutputFileHeaderFormat
Type: Hidden Base Class: AnyStyle (see p. 246) Description: Object Members:
Optional-Initialization Members
Class AnySwitchVar AnySwitchVar AnySwitchVar AnySwitchVar Name TitleSectionOnOff ConstSectionOnOff VarSectionOnOff ColumnNamesOnOff Description Switch for the title section. (=On, Options: Off | On) Switch for the header section containing constant variables. (=On, Options: Off | On) Switch for the variable description section. (=On, Options: Off | On) Switch for the row containing the column names in the data section. (=On, Options: Off | On) String containing a line prex used for all lines of the header section. (="")

AnyStringVar

LinePrex

Chapter 6 Studies and Operations


This chapter holds descriptions of studies and the interfaces to their functionality, operations. A study in AnyBodyTM is a class that can analyze the objects supplied to it. Studies are essential to any modeling in AnyBodyTM, since they produce the actual output. Each study has specic functionalities, for instance the AnyMechStudy, which is the fundamental study for kinematic and dynamic analysis of mechanical systems, and the AnyBodyStudy, which is a derived class with extended functionality for body modeling. An operation is a class that can execute functions in the studies. All operations are available in the operation window, typically located in the lower left part of main window of AnyBodyTMs GUI, from where they can be controlled. Numerical output is typically stored in a special folder of type AnyOutputFolder with the object name Output. Notice that several studies can exist in the same model (.any le) and they can even work on the same objects, i.e., the same model elements. Thereby they can to some extent exchange data since a function in one study leaves the objects in new states, which then can be the starting point for another study. If used carefully this can exploited in advanced combined modeling tasks. In this chapter we shall consider two other branches for classes. The AnyOprSet classes are classes that provide interfaces to operation settings. These are typical members of studies and operations. The second branch is classes derived from AnyDataFileBase that contain interfaces to external data such as data les and databases. These classes are typically used together with studies to import data to be analyzed and to export the results obtained by the study. In the following, sections covering studies, operations, operation settings and external data interface classes are found.

6.1 Studies
AnyStudy (see p. 276) AnyDesStudy (see p. 277) AnyDesEvalStudy (see p. 279) AnyParamStudyBase (see p. 280) AnyParamStudy1D (see p. 281) AnyParamStudy (see p. 283) 274

275 AnyOptStudy (see p. 285) AnyTimeStudy (see p. 288) AnyMechStudyBase (see p. 289) AnyKinStudy (see p. 291) AnyBodyCalibrationStudy (see p. 294) AnyBodyStudy (see p. 298) AnyMechStudy (see p. 304) AnyMechStudy1 (see p. 308) AnyBodyStudy1 (see p. 311)

276

AnyStudy
Type: Abstract Base Class: AnyCongFolder (see p. 24) Description:
This is the base class from which all studies are derived. A "study" is a class that contains a certain type of investigation of the model. This implies that it is a combination of mathematical problem and task denitions, solver procedures, and storage of results. Tasks can be performed by executing (running) associated operations (objects of AnyOperation-derived classes), which appear as member objects in the study. Occasionally, the operations are refered to as "analyses." All studies have a member (folder) called Output dened in AnyStudy. This folder contains the results that are computed during the executed operations. Only one set of output is stored; thus, executing a new operation after another will typically overwrite the previously stored results. The output typically consist of variations of certain quantities over one or more parameters. A particular, AnyStudy-derived study class denes these basic parameters (also referred to as independent or abscissa values) as well as which dependent quantities to be inluded in the output; rules to determine the dependent quantities are implemented an integral part of the study. For instance a simple rule could be to include all quantities (AnyFloats) that dependent on the independent parameters. The independent (abscissa) parameter values can be found in Output.Abscissa folder. A study does normally not operate on "the whole model", i.e., on everything inside Main; it only operates on what is inside the study scope. Typically, a model is created in the script in its own folder. In order to include it in the study, a reference from the scope of the study to the model folder must then be made. The model could be made directly inside the study, but keeping it outside provides a nice separation in particular for case where the model or parts of it must subjected to several studies. Notice that a study that operates on a model (also if just through a reference as described above) changes values in the objects of the model, even though the objects are located outside the study. A subsequent study/operation will then operate on these altered values. This implies the the seqeuence of operations/study analyses does matter. This is typically exploited by using one study to systematically prepare the model data for a another study that is the real objective of your work.

Object Members:
Denied-Access Members
Class AnyOutputFolder Name Output Description Folder that holds the result of the latest executed analysis (operation).

277

AnyDesStudy
Type: Abstract Base Class: AnyStudy (see p. 276) Description:
This class is the (abstract) base class of all "design studies". A design study is a study that systematically changes parameters (design variables) in the model and analyses their effects. The design variables are dened by the user by declaration of AnyDesVar-members. The effect of the design variables is measured ("design measures") by objects of the type AnyDesMeasure. These must also be declared in the study for it to be meaningful. You can declare multiple design variables as well as multiple design measures. Notice that AnyDesVarmembers are equipped with a range specication for the design variable. Notice also that design measures can be type-specied. These range and type specications may give the particular members special signicances in the various AnyDesStudy-derived classes. Design variables (by AnyDesVar objects) will typically link to real quantities inside objects of the model. By means of these links, the design studies can actually change the values of the real variables in the model. This implies that the model data will actually change during execution of operations and the model data may end up in a different state than before the operation. Apart from the AnyDesVar and AnyDesMeasure members, which are to be declared by the user, a design study contains one more important member. This is the analysis operation called Analysis. It is the operation that is executed by the AnyDesStudy-derived studies after changing the design variable and before measuring their effect. Analysis is an AnyOperationSequence, which, upon declaration of the study, is empty. It must be lled by the user in order for the study to have anything to measure on. Here you can enter one or more anlysis operations from other studies, but please notice that the sequence may be important. The design study contains Class Operations for saving and loading values of the design variables. The le format is a simple text based format where each line contain the variable name (short name) followed by the value. Saving design variables will write such a le for you. Loading design values will load and update the design variables values, but only when the found values are within the bounds specied by the associated AnyDesVar-member. Design variables that are not found in the le are not updated and design variable entries in the le, that does not match any variable in the study, have no effect. This rather low-level functionality allows the user to load les saved by one study from another study. This can be useful, but it is the sole responsibility of the user to take care about proper matching between the denitions in the les and studies.

Object Members:

278

Expected Members
Class AnyDesVar AnyDesMeasure Number [1..Inf] [1..Inf] Description Design variables of the study are dened as AnyDesVar objects. Design performance measures are dened as AnyDesMeasure objects. Description Optional log le for use by the numerical routines in the operations. It may not be used by all type of AnyDesStudy; the le will be empty when not used by the study. (="") This analysis operation.

Optional-Initialization Members
Class AnyFileVar Name LogFile

AnyOperationSequence Class AnyOutputFolder

Analysis

Denied-Access Members
Name Output Description Folder that holds the result of the latest executed analysis (operation).

279

AnyDesEvalStudy
Type: Creatable Base Class: AnyDesStudy (see p. 277) Description:
This class can evaluate design variable values based the output of other studies. In this specialization of the AnyDesStudy, you must dene as many design measures (AnyDesMeasure) as you have dened design variables (AnyDesVar). The study computes the value of the design measures and set the value of design variables equal to these. The only restriction is that the computed values have to obey the boundaries on the design variables; otherwise the closest bound valueis adopted as the nal result. The sequence of the declaration of design variable and measures determine which variable are equalled to which measured values.

Object Members:
Expected Members
Class AnyDesVar AnyDesMeasure Number [1..Inf] [1..Inf] Description Design variables of the study are dened as AnyDesVar objects. Design performance measures are dened as AnyDesMeasure objects. Description Optional log le for use by the numerical routines in the operations. It may not be used by all type of AnyDesStudy; the le will be empty when not used by the study. (="") This analysis operation.

Optional-Initialization Members
Class AnyFileVar Name LogFile

AnyOperationSequence Class AnyOutputFolder AnyDesEvalStudyOpr

Analysis

Denied-Access Members
Name Output UpdateDesign Description Folder that holds the result of the latest executed analysis (operation). Operation that executes the analysis and updates the values of the design variables.

280

AnyParamStudyBase
Type: Abstract Base Class: AnyDesStudy (see p. 277) Description:
This is an abstract base-class for parameter studies. Parameter studies are classes that can perform systematic variations of the parameters in a design model. Plese refer to the derived classes for more information about the possible parameter variation schemes. After the parameter study is completed, the design variables are reset to the original values, so the study does not alter the design state except during the analysis. Design variable expressions are updated with the original design values, but there is not run any further analyses routines, which implies that computed values, hereunder design measures, are not updated after the last step in the parameters study; they still hold the nal values from this step.

Object Members:
Expected Members
Class AnyDesVar AnyDesMeasure Number [1..Inf] [1..Inf] Description Design variables of the study are dened as AnyDesVar objects. Design performance measures are dened as AnyDesMeasure objects. Description Optional log le for use by the numerical routines in the operations. It may not be used by all type of AnyDesStudy; the le will be empty when not used by the study. (="") This analysis operation.

Optional-Initialization Members
Class AnyFileVar Name LogFile

AnyOperationSequence Class AnyOutputFolder AnyParamStudyOpr

Analysis

Denied-Access Members
Name Output ParameterStudy Description Folder that holds the result of the latest executed analysis (operation). Operation that executes the parameter study.

281

AnyParamStudy1D
Type: Creatable Base Class: AnyParamStudyBase (see p. 280) Description:
This class can perform a systematic variation of the parameters in a design model. The class name ending, 1D, refers to that thi parameters study is a one-dimensional study. It simply executes a sequence of analyses and stores the design analysis results after each step. The values of the design variables can, without regards of their bounds, be specied in the DesignValue table (matrix).

Object Members:
Expected Members
Class AnyDesVar AnyDesMeasure Number [1..Inf] [1..Inf] Description Design variables of the study are dened as AnyDesVar objects. Design performance measures are dened as AnyDesMeasure objects. Description Matrix (or table) of the values of the design variables. Each row in the matrix in one design vector and its length must therefore match the number of design variables. Description Optional log le for use by the numerical routines in the operations. It may not be used by all type of AnyDesStudy; the le will be empty when not used by the study. (="") This analysis operation. Switch for whether to enforce design variable upper and lower bounds. If On the design values outside the given bounds are moved to nearest bound; if Off the design bounds are disregarded. (=Off, Options: Off | On) Description

Obligatory-Initialization Members
Class AnyMatrix Name DesignValues

Optional-Initialization Members
Class AnyFileVar Name LogFile

AnyOperationSequence AnySwitchVar

Analysis EnforceBounds

Denied-Access Members
Class Name

282 AnyOutputFolder AnyParamStudyOpr AnyFloatVar Output ParameterStudy IterationStep Folder that holds the result of the latest executed analysis (operation). Operation that executes the parameter study. Step counter of the analysis sequence. (=0)

283

AnyParamStudy
Type: Creatable Base Class: AnyParamStudyBase (see p. 280) Description:
This class can perform a systematic variation of the parameters in a design model. The parameter variation is performed in a simple rectangular grid between the bounds of the design variables (AnyDesVar-members). The nStep is a vector that species the density of this grid; each component of the vector is the number of resolution step for each dimension of the design space. This implies that nStep must have the same number of components as there are design variables (AnyDesVar-members). Future releases: We are aware that the rectangular grid is a very simple and crude functionality for making general parameter studies that may even be even prohibitive for some practical applications due inexible control and/or computational cost. We are therefore prepared to consider extensions of these facilities depending on demand and will be grateful for any requests and comments from the users.

Object Members:
Expected Members
Class AnyDesVar AnyDesMeasure Number [1..Inf] [1..Inf] Description Design variables of the study are dened as AnyDesVar objects. Design performance measures are dened as AnyDesMeasure objects. Description Number of steps in the parameter variation. Each component in the vector corresponds to one parameter to be varied. Description Optional log le for use by the numerical routines in the operations. It may not be used by all type of AnyDesStudy; the le will be empty when not used by the study. (="") This analysis operation.

Obligatory-Initialization Members
Class AnyIntArray Name nStep

Optional-Initialization Members
Class AnyFileVar Name LogFile

AnyOperationSequence

Analysis

284

Denied-Access Members
Class AnyOutputFolder AnyParamStudyOpr Name Output ParameterStudy Description Folder that holds the result of the latest executed analysis (operation). Operation that executes the parameter study.

285

AnyOptStudy
Type: Creatable Base Class: AnyDesStudy (see p. 277) Description:
This study does optimization. It varies design parameters systematically with the aim of optimizing a certain criterion. Additionally, constraints can be applied to the process. Mathematically, the optimization can be formulated as minimize x subject to F ( x) (6.1)

gj ( x) 0, j = 1, m hk ( x) = 0, k = 1, l (l) (u) xi xi xi , i = 1, n

where x is a vector of the n design variable dened by AnyDesVar objects. F is the so-called objective function, which is dened by correct type specication of one of the AnyDesMeasure objects. The constraints, gj and hk , are also dened proper type specication of the remaining AnyDesMeasure objects. The nal row is the simple bounds on the design variable xi ; the lower (l) (u) and upper bounds, xi and xi , are dened for each design variable in the AnyDesVar objects. Please notice that none of the current solvers handle equality constraints, so this option in the AnyDesMeasure is currently only a preparation of the system for future use. The optimization processes inside AnyOptStudy is handled as a sequential process doing repetitive step, each improving (or trying to improve) the design. The basic independent parameter (abscissa value) in the optimization operation is the iteration step and the output of design variable values and design measures are stored for each such design step in the Output folder. The optimization solver is congured in the operation member, Optimization. Current AnyOptStudy provides the following solvers. Simple search: (Optimization.Solver = OptSimpleSearch) This method employs a simple scheme searching in the direction of each of the design variables in turn. A golden-section line search is used in each direction. Steepest descent based feasible direction search method: (Optimization.Solver = OptFeasibleDirSearch1) This method is based on the steepest descent search method approach for unconstrained optimization problems. In order to account for constraints, the search direction is modied to avoid constraint violations. A golden-section line search is used in the obtained search direction to improve the design point. The method is based on numerical sensitivity analysis for nding gradient; the perturbation is congurable in the solver settings. Furthermore, settings for convergence control and constraint activation handling is available in the settings.

286 Conjugate direction based feasible direction search method: (Optimization.Solver = OptFeasibleDirSearch2) This method is the same as the previously mentioned, but with the small modication that it employ the well-known conjugate direction modications of the search direction to increase the speed of convergence in ill-conditioned problems. This modication is only applied to regions where steepest descent method is previously used, i.e., regions with no active constraints. Future releases: We acknowledge that the currently available facilities in the AnyOptStudy are limited and we must emphazise that they may not solve any possible optimization problem. Optimization is a complicated eld and indeed mechanical and biomechanical problems can be particularly difcult to deal with. The AnyOptStudy has been made available in AnyBodyTM version 2.0 for the rst time and depending on the experiences, we will aim at developing it further in future releases. An alternative option to the facilities in AnyOptStudy is to use AnyBodyTMs console application together with an external optimization routine. We are always prepared to consider extentions of these optimization facilities arising from actual demands and will be grateful for any requests and comments from the users.

Object Members:
Expected Members
Class AnyDesVar AnyDesMeasure Number [1..Inf] [1..Inf] Description Design variables of the study are dened as AnyDesVar objects. Design performance measures are dened as AnyDesMeasure objects. Description Optional log le for use by the numerical routines in the operations. It may not be used by all type of AnyDesStudy; the le will be empty when not used by the study. (="") This analysis operation. Maximal number of iterations allowed. (=100) Solver type setting. Opt(=OptFeasibleDirSearch1, Options: SimpleSearch | OptFeasibleDirSearch1 | OptFeasibleDirSearch2) Absolute tolerance on objective function change in convergence criterion. (=1e-005)

Optional-Initialization Members
Class AnyFileVar Name LogFile

AnyOperationSequence AnyIntVar AnyEnumOptSolver

Analysis MaxIterationStep Optimization.Solver

AnyVar

Optimization.ConvergenceObjectiveTol

287 AnyVar Optimization.ConvergenceDesignTol Optimization.ConvergenceDesignTolArr Optimization.ConstraintActivationTol Optimization.ConstraintActivationTolArr Optimization.NumSensitivityPerturbation Optimization.NumSensitivityPerturbationArr Relative tolerance on design variable change in convergence criterion. (=1e-005) Similar to ConvergenceObjectiveTol, but an array with one element for each design variable. Default is all values equal to ConvergenceObjectiveTol. (="No values given") Absolute tolerance for activating constraints. (=0.0001) Similar to ConstraintActivationTol, but an array with one element for each constraint. Default is all values equal to ConstraintActivationTol. (="No values given") Absolute perturbation use in numerical sensitivity analyses. (=1e-005) Similar to NumSensitivityPerturbation, but an array with one element for each design variable. Default is all values equal to NumSensitivityPerturbation. (="No values given") Description Folder that holds the result of the latest executed analysis (operation). Current iteration step. (=0) Operation that executes the optimization.

AnyVector

AnyVar

AnyVector

AnyVar

AnyVector

Denied-Access Members
Class AnyOutputFolder AnyFloatVar AnyOptStudyOpr Name Output IterationStep Optimization

288

AnyTimeStudy
Type: Abstract Base Class: AnyStudy (see p. 276) Description:
This is the base class for all studies with time, t, as independent variable, for instance studies of ordinary differential equations in time. In AnyBodyTM today, this is the parent for mechanical studies (AnyMechStudyBase), which "studies" the mechanical (differential) equations of motion of rigid body systems and the derived study for musculoskeletal systems called AnyBodyStudy. In principle, this class can be used for other independent quantities than time, provided that it is a scalar.

Object Members:
Denied-Access Members
Class AnyOutputFolder AnyVar Name Output t Description Folder that holds the result of the latest executed analysis (operation). Time. (=0)

289

AnyMechStudyBase
Type: Creatable Base Class: AnyTimeStudy (see p. 288) Description:
This is the base class from which all mechanical models (studies) are derived. Notice that the Object Description is extended with Mechanical System Information that provides an overview of system degrees of freedom as well as kinematical and kinetical constraints.

Object Members:
Obligatory-Initialization Members
Class AnyVec3 Name Gravity Description The acceleration of gravity.

Optional-Initialization Members
Class AnyVar AnyVar AnyIntVar Name tStart tEnd nStep Description Initial time. (=0) Final time. (=1) Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101) Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1})

AnyVector

tArray

Denied-Access Members
Class AnyOutputFolder AnyVar Name Output t Description Folder that holds the result of the latest executed analysis (operation). Time. (=0)

290 AnyVar AnyVar AnyVar AnyVar AnyVar KinematicError Ekin Epot Emech Pmech Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0) Current mechanical energy of the system (=Ekin+Epot). (=0) Current mechanical power applied to the system. (=0)

291

AnyKinStudy
Type: Creatable Base Class: AnyMechStudyBase (see p. 289) Description:
This study class comprises operations for kinematical analysis. The kinematical analysis requires the system to be kinematically determinate, implying that there must be enough kinemtical constraints to determine all degrees of freedom in the system. The kinematical analysis is carried out by operations of the class AnyMechOprKinAnl. The InitialConditions operation is a single step kinematical analysis that is aimed at assembling the mechanism for initial positioning. The Kinematics operation performs sequentiel analysis of all time steps dened in the study. The Kinematics operation uses InitialConditions as pre-process, so the mechanism is assembled robustly before starting the analysis. Please study the AnyMechOprKinAnl class for more details on the kinematic analysis.

Object Members:
Obligatory-Initialization Members
Class AnyVec3 Name Gravity Description The acceleration of gravity.

Optional-Initialization Members
Class AnyVar AnyVar AnyIntVar Name tStart tEnd nStep Description Initial time. (=0) Final time. (=1) Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101)

292 AnyVector tArray Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1}) Operation that sets initial conditions, i.e., assembles the mechanism etc., according to the rst time step of the study. Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Kinematic analysis operation that processes all time steps of the study. It uses Initial_Conditions as pre-process (only for kinematically determinate system). Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100)

AnyMechOprKinAnl

InitialConditions

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar

InitialConditions.PreOperation InitialConditions.PostOperation InitialConditions.KinematicTol InitialConditions.MaxIteration InitialConditions.Relax InitialConditions.SingleStepOnOff InitialConditions.SingleStepNo Kinematics

AnyVar AnySwitchVar AnyIntVar AnyMechOprKinAnl

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar

Kinematics.PreOperation Kinematics.PostOperation Kinematics.KinematicTol Kinematics.MaxIteration

293 AnyVar AnySwitchVar AnyIntVar Kinematics.Relax Kinematics.SingleStepOnOff Kinematics.SingleStepNo Name Output t KinematicError Ekin Epot Emech Pmech Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Description Folder that holds the result of the latest executed analysis (operation). Time. (=0) Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0) Current mechanical energy of the system (=Ekin+Epot). (=0) Current mechanical power applied to the system. (=0)

Denied-Access Members
Class AnyOutputFolder AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar

294

AnyBodyCalibrationStudy
Type: Creatable Base Class: AnyKinStudy (see p. 291) Description:
The AnyBodyCalibrationStudy contains functionality for adjusting the musculoskeletal models systematically. We refer to this as a calibration of the model, therefrom the origin of class name. Often the parameters of such models are many, so that manual adjustment is exhaustive or impossible. Moreover adjustment of parameters for given parts of the model, such as muscles or ligaments, are typically based on some global measures of the whole body or the particular limb. For instance, one may know fairly accurately in which position of the knee, the thigh muscles have the optimal position, but converting this into an accurate adjustment of the muscle and tendon length requires detailed information about the muscle kinematics. This study provides general and easy applicable parameter adjustment schemes of this sort. You supply a kinematically determinate model to the study (i.e. drivers of all degrees of freedom), similarly to when using the AnyBodyStudy for kinematic or inverse dynamic analyses. The denition of the kinematics, as either a xed position or a motion, denes the positions for which the models parameters are adjusted. The model needs only include the elements that are needed to dene the elements to be calibrated. Thus only the muscles and ligaments to be calibrated by this study should be included, along with the mechanical parts they are attached to, i.e., segments, joints, and drivers. The following types of calibrations are available: Muscle Tendon Length Calibration In this calibration method, the length of the muscle tendons are adjusted so that the muscles ber length coincide with the optimal ber length for the given position of the system. Ligament Length Calibration In this calibration method, the length of the ligaments are adjusted so that the given position of the system corresponds to the undeformed ligament, i.e., the zero force position. Notice that if motion has be specied for the system, then the average of the bounds of the range of motion for each muscle or ligament is used as the "given position". Notice also that not all types of muscle models (AnyMuscleModel) and ligament models (AnyLigamentModel) necessarily are handled by these calibrations. Future releases: This type of calibration of musculoskeletal models is an area of research and it must expected that the functionality will change and be extended along with appearance of new methods. We will be happy for any suggestions for suitable methods that could improve the functionality in this class.

295

Object Members:
Optional-Initialization Members
Class AnyVar AnyVar AnyIntVar Name tStart tEnd nStep Description Initial time. (=0) Final time. (=1) Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101) Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1}) Operation that sets initial conditions, i.e., assembles the mechanism etc., according to the rst time step of the study. Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Kinematic analysis operation that processes all time steps of the study. It uses Initial_Conditions as pre-process (only for kinematically determinate system).

AnyVector

tArray

AnyMechOprKinAnl

InitialConditions

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar

InitialConditions.PreOperation InitialConditions.PostOperation InitialConditions.KinematicTol InitialConditions.MaxIteration InitialConditions.Relax InitialConditions.SingleStepOnOff InitialConditions.SingleStepNo Kinematics

AnyVar AnySwitchVar AnyIntVar AnyMechOprKinAnl

296 AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar Kinematics.PreOperation Kinematics.PostOperation Kinematics.KinematicTol Kinematics.MaxIteration Kinematics.Relax Kinematics.SingleStepOnOff Kinematics.SingleStepNo KinematicTol KinematicMaxIteration KinematicRelax TendonLengthAdjustment.PreOperation TendonLengthAdjustment.PostOperation LigamentLengthAdjustment.PreOperation LigamentLengthAdjustment.PostOperation Name Output t Gravity KinematicError Ekin Epot Emech Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Tolerance for the kinematic analysis (DEPRECATED). (=0) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis (DEPRECATED). (=0) Initial relaxation coefcient for the Newton iteration (DEPRECATED). (=0) Pre-process operation.

AnyVar AnySwitchVar AnyIntVar AnyVar AnyVar

AnyVar AnyMechOprSubProcess AnyMechOprSubProcess AnyMechOprSubProcess AnyMechOprSubProcess

Post-process operation.

Pre-process operation.

Post-process operation.

Denied-Access Members
Class AnyOutputFolder AnyVar AnyVec3 AnyVar AnyVar AnyVar AnyVar Description Folder that holds the result of the latest executed analysis (operation). Time. (=0) The acceleration of gravity. (={0, 0, 0}) Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0) Current mechanical energy of the system (=Ekin+Epot). (=0)

297 AnyVar Pmech Current mechanical power applied to the system. (=0) Operation that provides information about the model topology (DEPRECATED). Operation for setting initial conditions. Operation for performing kinematic analysis (only for kinematically determinate system) (DEPRECATED). Operation for performing inverse dynamic analysis (only for kinematically determinate system) (DEPRECATED). Operation for calibration of the muscles by adjustment of their tendon length. Operation for calibration of the ligaments by adjustment of their undeformed length.

AnyMechStudyModelInfo AnyMechOprDeprecated AnyMechOprDeprecated AnyMechOprDeprecated AnyBodyMusTenLenCalOpr AnyBodyLigamentLenCalOpr

ModelInformation SetInitialConditions KinematicAnalysis

InverseDynamicAnalysis TendonLengthAdjustment LigamentLengthAdjustment

298

AnyBodyStudy
Type: Creatable Base Class: AnyKinStudy (see p. 291) Description:
The AnyBodyStudy is a study-class for doing analysis on a musculoskeletal system (a body and its boundary conditions). Its primary function is to do inverse dynamic analysis of a kinematically determinate mechanical system. The class is derived from AnyKinStudy from which it inherits operations for doing kinematic analysis. The study can be extended by the user with further mechanical operations as any AnyMechStudyBasederived class can; but by default the class is equipped with the following: InitialConditions: A kinematic analysis specially aimed at assembling the mechanism of the mechanical system in its start positions. It is inherited from AnyKinStudy and it does only analyze one time step, typically the rst. Kinematics: Kinematical analysis of all time steps, which is an operation also inherited from AnyKinStudy. InverseDynamics: The inverse dynamics analysis is an operation that extends the kinematical analysis, Kinematics, with a muscle recruitment solver that distributes the loads arising from boundary conditions and the prescribed motion. The inverse dynamics problem is solved by an optimization approach that minimizes some muscle performance criterion with respect to the unknown forces of the system. The equations of motion, i.e., the dynamic equilibrium equations, enter the problem as constraints, as well as the condition that the muscles cannot push. For more information on how to specify the muscle recruitment criterion, please refer to the InverseDynamics member (see class AnyMechOprInvMuscleDynAnl) and in particular its member Criterion (see class AnyOprSetMuscleRecruitment). Muscle and ligament calibration are an associated features which are available in the AnyBodyCalibrationStudy. These functions assist in adjusting the complicated parameters sets of muscles and ligaments according to general kinematical input. For the more advanced muscle models, calibration of muscle parameters is an important step before performing dynamic analysis of the musculo skeletal system. Future releases: Notice that the AnyBodyStudy was redesigned for AnyBodyTM version 4.0. Therefore, it contains a number of deprecated members that serve the sole purpose of providing some backward compatibility during loading. The old functionality of AnyBodyStudy has been transferred to the class AnyBodyStudy1. This class is however deprecated and will be removed in a future version of AnyBodyTM. All muscle recruitment criteria available in the AnyBodyStudy1 is also available in AnyBodyStudy, but the numerical solver capabilities are much enhanced in AnyBodyStudy. It it strongly recommended to shift to using AnyBodyStudy for any purpose.

299

Object Members:
Obligatory-Initialization Members
Class AnyVec3 Name Gravity Description The acceleration of gravity.

Optional-Initialization Members
Class AnyVar AnyVar AnyIntVar Name tStart tEnd nStep Description Initial time. (=0) Final time. (=1) Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101) Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1}) Operation that sets initial conditions, i.e., assembles the mechanism etc., according to the rst time step of the study. Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On)

AnyVector

tArray

AnyMechOprKinAnl

InitialConditions

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar

InitialConditions.PreOperation InitialConditions.PostOperation InitialConditions.KinematicTol InitialConditions.MaxIteration InitialConditions.Relax InitialConditions.SingleStepOnOff

AnyVar AnySwitchVar

300 AnyIntVar AnyMechOprKinAnl InitialConditions.SingleStepNo Kinematics Zero-based index for the time step to use in the single-step analysis. (=0) Kinematic analysis operation that processes all time steps of the study. It uses Initial_Conditions as pre-process (only for kinematically determinate system). Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Operation for performing inverse dynamic analysis (only for kinematically determinate system). Pre-process operation. Post-process operation. Setting folder for specifying the muscle recruitment criterion. Muscle recruitment criterion type. (=MR_Polynomial, Options: MR_MinMaxStrict | MR_MinMaxAux | MR_Linear | MR_Quadratic | MR_QuadraticAux | MR_Polynomial) Switch for whether the upper bound on muscle activity is active in the criterion. (=On, Options: Off | On) Value of the upper bound on muscle activity. Typically it is 1.0 implying complete saturation of the muscle capability (=1) Power for the MR_Polynomial criterion. (=3) Folder with settings for primary term of the muscle recruitment criterion. The primary term depends on the Type.

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar

Kinematics.PreOperation Kinematics.PostOperation Kinematics.KinematicTol Kinematics.MaxIteration Kinematics.Relax Kinematics.SingleStepOnOff Kinematics.SingleStepNo InverseDynamics

AnyVar AnySwitchVar AnyIntVar AnyMechOprInvMuscleDynAnl AnyMechOprSubProcess AnyMechOprSubProcess AnyOprSetMuscleRecruitment AnyEnumMuscleRecruitmentType

InverseDynamics.PreOperation InverseDynamics.PostOperation InverseDynamics.Criterion InverseDynamics.Criterion.Type

AnySwitchVar

AnyVar

AnyVar AnyOprSetMuscleRecruitmentNormalization

InverseDynamics.Criterion.UpperBoundOnOff InverseDynamics.Criterion.UpperBound InverseDynamics.Criterion.Power InverseDynamics.Criterion.PrimaryTerm

301 AnyEnumMuscleRecruitmentNormalizationType InverseDynamics.Criterion.PrimaryTerm.Type Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1) Folder with settings for the auxillary linear term that is appended to the primary term in some cases. Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1) Folder with settings for the auxillary quadratic term that is appended to the primary term in some cases. Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1)

AnyVar

AnyVar

AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

InverseDynamics.Criterion.PrimaryTerm.Weight InverseDynamics.Criterion.PrimaryTerm.LowerLimit InverseDynamics.Criterion.AuxLinearTerm InverseDynamics.Criterion.AuxLinearTerm.Type

AnyVar

AnyVar

AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

InverseDynamics.Criterion.AuxLinearTerm.Weight InverseDynamics.Criterion.AuxLinearTerm.LowerLimit InverseDynamics.Criterion.AuxQuadraticTerm InverseDynamics.Criterion.AuxQuadraticTerm.Type

AnyVar

AnyVar

AnyVar

InverseDynamics.Criterion.AuxQuadraticTerm.Weight InverseDynamics.Criterion.AuxQuadraticTerm.LowerLimit KinematicTol

Lower bound for muscle quantities entering the term. (=1)

Tolerance for the kinematic analysis (DEPRECATED). (=0)

302 AnyVar KinematicMaxIteration KinematicRelax RecruitmentSolver Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis (DEPRECATED). (=0) Initial relaxation coefcient for the Newton iteration (DEPRECATED). (=0) Muscle recruitment objective and solver type (DEPRECATED). (=MinMaxSimplex, Options: MinMaxSimplex | MinMaxOOSolSimplex | MinMaxOOSolQP | MinMaxNRSimplex | MinMaxAQP) Switch for iterative method in the muscle recruitment solver (DEPRECATED). (=On, Options: Off | On) Linear penalty coefcient in the muscle recruitment objective when using linear optimizers (DEPRECATED). (=0) Quadratic penalty coefcient in the muscle recruitment objective when using quadratic optimizers (DEPRECATED). (=0.0001) Switch for reduction of the number of equilibrium equations in the muscle recruitment. With reduction the reaction forces are eliminated (DEPRECATED). (=On, Options: Off | On) Translation value used in the muscle recruitment to allow optimizer algorithms that only nd positive values to nd negative value. The translation value must be larger than the largest negative value reaction force (DEPRECATED). (=100000) The lower muscle strength limit (in Newton) for muscles that are included in the muscle recruitment. Muscles with strength below this limit are disregarded and their activity is canceled. (=1) A tolerance that is used during iterative muscle recruitment algorithms for determination of the muscles that can eliminated in a given iteration step (DEPRECATED). (=0.0001) Lower limit of muscle activity. This can be used as a termination criterion of iterative muscle recruitment algorithms. (=1e-005) Folder with settings for the simplex solver based on Numerical Recipies, i.e., the solver used in MinMaxNRSimplex option (DEPRECATED).

AnyVar AnyMuscleRecruitmentSolver

AnySwitch

RecruitmentIterativeMethod RecruitmentLpPenalty RecruitmentQpPenalty ReduceEquilEq

AnyVar

AnyVar

AnySwitch

AnyVar

ReactionForceLimit

AnyVar

StrongMuscleLimit

AnyVar

MuscleEliminationTol

AnyVar

ActivityLowerLimit

AnyOprSetNRSimplex

NRSimplex

303 AnyVar AnyVar NRSimplex.Zero NRSimplex.CoefZeroRel General tolerance for zero testing. (=1e-006) Relative zero testing tolerance used while nding pivot coefcient. It is the fraction between the real tolerance and the general tolerance, Zero. (=100) Folder with settings for the simplex solver from OOSol, i.e., the solver used in MinMaxOOSolSimplex option (DEPRECATED). Tolerance for zero testing. (=1e-006) Folder with settings for the QP solver from OOSol, i.e., the solver used in MinMaxOOSolQP option (DEPRECATED). Tolerance for zero testing. (=1e-006) Numerical gap for equalty constraints entered as two opposite inequalities. (=0) File for export of the coefcients of the equations of motion for each time step (DEPRECATED). (="") Description Folder that holds the result of the latest executed analysis (operation). Time. (=0) Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0) Current mechanical energy of the system (=Ekin+Epot). (=0) Current mechanical power applied to the system. (=0) Operation that provides information about the model topology (DEPRECATED). Operation for setting initial conditions. Operation for performing kinematic analysis (only for kinematically determinate system) (DEPRECATED). Operation for performing inverse dynamic analysis (only for kinematically determinate system) (DEPRECATED). The maximal muscle activity for the current time step (the envolope of the muscle activities). (=0)

AnyOprSetOOSolSimplex AnyVar AnyOprSetOOSolQP

OOSolSimplex

OOSolSimplex.Zero OOSolQP

AnyVar AnyVar AnyFileVar

OOSolQP.Zero OOSolQP.Pert EquilEqExportFileName

Denied-Access Members
Class AnyOutputFolder AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar Name Output t KinematicError Ekin Epot Emech Pmech

AnyMechStudyModelInfo AnyMechOprDeprecated AnyMechOprDeprecated AnyMechOprDeprecated AnyVar

ModelInformation SetInitialConditions KinematicAnalysis

InverseDynamicAnalysis MaxMuscleActivity

304

AnyMechStudy
Type: Creatable Base Class: AnyKinStudy (see p. 291) Description:
This class extends the kinematical analysis functions from the base class, AnyKinStudy with functions for kinetic (dynamic) analysis. For more information about the kinematical analysis functionality, please refer to the AnyKinStudy base class and the kinematics operations of class AnyMechOprKinAnl. Inverse dynamic analysis of kinematical and kinetical (=statical) determinate mechanical system is carried out by the InverseDynamics operation. This operation uses the Kinematics operation to solve the kinemtics, but each time step is extended with a kinetical analysis of the forces. The equations of motion (dynamic equations of equlibrium) are set up and the unknown (reaction) forces are determined. The equations contain all known (applied) forces and inertial forces arising from the prescribed motion. This inverse dynamics solver assumes the system to be kinetically determinate, i.e., the system has as many unknown forces as there are equations of equlibrium. This implies that statical indeterminate systems cannot be handled by this operation including the typical musculoskeletal systems. For analysis of musculoskeletal system, please refer to AnyBodyStudy. Please also refer to the class AnyMechOprInvDynAnl for more details on the InverseDynamics operations. Future releases: Notice that the AnyMechStudy was redesigned for AnyBodyTM version 4.0. Therefore, it contains a number of deprecated members that serve the sole purpose of providing some backward compatibility during loading. The old functionality of AnyMechStudy has been transferred to the class AnyMechStudy1. This class is, however, deprecated and will be removed in a future version of AnyBodyTM. It it strongly recommended to shift to using AnyMechStudy.

Object Members:
Obligatory-Initialization Members
Class AnyVec3 Name Gravity Description The acceleration of gravity.

Optional-Initialization Members
Class AnyVar AnyVar Name tStart tEnd Description Initial time. (=0) Final time. (=1)

305 AnyIntVar nStep Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101) Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1}) Operation that sets initial conditions, i.e., assembles the mechanism etc., according to the rst time step of the study. Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Kinematic analysis operation that processes all time steps of the study. It uses Initial_Conditions as pre-process (only for kinematically determinate system). Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006)

AnyVector

tArray

AnyMechOprKinAnl

InitialConditions

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar

InitialConditions.PreOperation InitialConditions.PostOperation InitialConditions.KinematicTol InitialConditions.MaxIteration InitialConditions.Relax InitialConditions.SingleStepOnOff InitialConditions.SingleStepNo Kinematics

AnyVar AnySwitchVar AnyIntVar AnyMechOprKinAnl

AnyMechOprSubProcess AnyMechOprSubProcess AnyVar

Kinematics.PreOperation Kinematics.PostOperation Kinematics.KinematicTol

306 AnyIntVar Kinematics.MaxIteration Kinematics.Relax Kinematics.SingleStepOnOff Kinematics.SingleStepNo InverseDynamics Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0) Operation for performing inverse dynamic analysis (only for kinematically determinate system). Pre-process operation. Post-process operation. Tolerance for the kinematic analysis (DEPRECATED). (=0) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis (DEPRECATED). (=0) Initial relaxation coefcient for the Newton iteration (DEPRECATED). (=0) Description Folder that holds the result of the latest executed analysis (operation). Time. (=0) Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0) Current mechanical energy of the system (=Ekin+Epot). (=0) Current mechanical power applied to the system. (=0) Operation that provides information about the model topology (DEPRECATED). Operation for setting initial conditions. Operation for performing kinematic analysis (only for kinematically determinate system) (DEPRECATED).

AnyVar AnySwitchVar AnyIntVar AnyMechOprInvDynAnl AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyVar

InverseDynamics.PreOperation InverseDynamics.PostOperation KinematicTol KinematicMaxIteration KinematicRelax

AnyVar

Denied-Access Members
Class AnyOutputFolder AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar Name Output t KinematicError Ekin Epot Emech Pmech

AnyMechStudyModelInfo AnyMechOprDeprecated AnyMechOprDeprecated

ModelInformation SetInitialConditions KinematicAnalysis

307 AnyMechOprDeprecated InverseDynamicAnalysis Operation for performing inverse dynamic analysis (only for kinematically determinate system) (DEPRECATED).

308

AnyMechStudy1
Type: Creatable Base Class: AnyMechStudyBase (see p. 289) Description:
This is the base class from which all mechanical models are derived. Its functionality comprises Mechanism topology description: Some information is reported in the Operation Report View of AnyBodyTM when executing the ModelInformation operation. This includes overview of the various mechanical elements such as segments, kinematic constraints and forces. This information can be used to analyze the system topology. Kinematic analysis: The kinematical analysis requires the system to be kinematically determinate. For such cases, the analysis assembles and solves the kinematic constraints for each requested time step. The position analysis solves the non-linear constraints by a Newton-Raphson like method. This means that it to some extend relies on the initial conguration of the system. In the rst step of an analysis, this is the loading time positions of the segments, whereas in all subsequent time steps the guessed position values are based on the previous known values of positions, velocities, and accelerations. Velocity and acceleration analysis are also carried out. These are linear systems of equations. The equation solver handles redundant kinematic constraints, which means that the system can appear to be over determined, but if the excess of equations are dependent of the others the system can be accepted. Generation of equations of motion: AnyMechObject generates equations of motion (for internal use only) for each segment and including the contribution of all applied forces and forces loads in the form of reaction forces. Basically all forces are treated the same in this process; they are all based on kinematic measures from which the coefcients of the inuence of the mechanical system can be deduced using the principle of virtual work (or rather virtual power). Hereafter the coefcients can be used to compute the inuence of known forces or to set up the coefcient matrix of unknown forces. Inverse dynamics of kinematically determinate systems: The inverse dynamic analysis is based on the kinematic analysis and as such it also requires the mechanical system to be kinematically determinate. In addition, the system must be what we could call statically determinate even though it can move. This means that the number of unknown reaction forces must match the number of degrees of freedom. The equations of motion are solved for the unknown reaction forces during the inverse dynamic analysis.

Object Members:
Obligatory-Initialization Members
Class Name Description

309 AnyVec3 Gravity The acceleration of gravity.

Optional-Initialization Members
Class AnyVar AnyVar AnyIntVar Name tStart tEnd nStep Description Initial time. (=0) Final time. (=1) Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101) Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1}) Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial relaxation coefcient for the Newton iteration. (=1) Description Folder that holds the result of the latest executed analysis (operation). Time. (=0) Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0) Current mechanical energy of the system (=Ekin+Epot). (=0) Current mechanical power applied to the system. (=0) Operation that provides information about the model topology.

AnyVector

tArray

AnyVar AnyVar

KinematicTol KinematicMaxIteration KinematicRelax

AnyVar

Denied-Access Members
Class AnyOutputFolder AnyVar AnyVar AnyVar AnyVar AnyVar AnyVar Name Output t KinematicError Ekin Epot Emech Pmech

AnyMechStudy1ModelInfo

ModelInformation

310 AnyMechStudy1SetInitCond AnyMechStudy1KinAnl AnyMechStudy1InvDynAnl SetInitialConditions KinematicAnalysis InverseDynamicAnalysis Operation for setting initial conditions. Operation for performing kinematic analysis (only for kinematically determinate system). Operation for performing inverse dynamic analysis (only for kinematically determinate system).

311

AnyBodyStudy1
Type: Creatable Base Class: AnyMechStudy1 (see p. 308) Description:
The AnyBodyStudy1 performs inverse dynamic analysis of a musculoskeletal system (a body). It is derived from AnyMechStudy1 and the operations in that class are overloaded with algorithms that can deal with the redundancy in the muscle recruitment problem. Inverse Dynamics: The inverse dynamics problem is solved by an optimization approach that minimizes some muscle performance criterion with respect to the unknown forces of the system. The equations of motion, i.e., the dynamic equilibrium equations, enter the problem as constraints, as well as the condition that the muscles cannot push. In AnyBodyTM the basic performance criterion is the maximal muscle activity, where the muscle activity is dened as the muscle force divided by the current muscle strength. The problem is solved iteratively eliminating uniguely determined muscles and redundant equations after each step of the iteration. The optimization in each step can be handled with different solvers according to the RecruitmentSolver attribute. Basically these solvers can be divided into linear programming (Simplex) and quadratic programming (QP) algorithms. The numerical library OOSol, which is used by AnyBodyTM contains both a Simplex and a QP algorithm. Furthermore, a simplex algorithm based on algorithms in the book Numerical Recipes in C++ by Press et. al. The attribute RecruitmentSolver allows you to select either of these three algoritms with value names composed of the library name (OOSol or NR) and the algorithm type (simplex or QP). The MinMaxSimplex is the default simplex solver, which currently is MinMaxOOSolSimplex. Both types of algoritms feature a penalty setting that can assist in making the problem better conditioned. In addition these penalties can be used to change the appearance of the problem: A large penalty in the linear formulation of the problem makes the problem converge towards a linear problem, i.e., minimization of the sum of muscle activities. A large penalty in the quadratic formulation makes it a minimization of the sum of squares of muscle activities. Solution in terms of muscle forces can be obtained using a model where all muscle models have constant strength equal to one. Muscle calibration: Muscle calibration was previously a function in the AnyBodyStudy1. It has now been moved to its own study, AnyBodyCalibrationStudy, where also extended functionality exists. The operation MuscleCalibrationAnalysis is therefore no longer present in AnyBodyStudy1

Object Members:
Obligatory-Initialization Members
Class AnyVec3 Name Gravity Description The acceleration of gravity.

312 AnyMuscleRecruitmentSolver Class AnyVar AnyVar AnyIntVar RecruitmentSolver Muscle recruitment objective and solver type.

Optional-Initialization Members
Name tStart tEnd nStep Description Initial time. (=0) Final time. (=1) Number of equally spaced time steps (plus one). Both tStart and tEnd are counted as time steps. (=101) Array of output-time values. This provides an alternative input to even spacing obtained by setting nStep. (={0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1}) Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial relaxation coefcient for the Newton iteration. (=1) Switch for iterative method in the muscle recruitment solver. (=On, Options: Off | On) Linear penalty coefcient in the muscle recruitment objective when using linear optimizers. (=0) Quadratic penalty coefcient in the muscle recruitment objective when using quadratic optimizers. (=0.0001) Switch for reduction of the number of equilibrium equations in the muscle recruitment. With reduction the reaction forces are eliminated. (=On, Options: Off | On)

AnyVector

tArray

AnyVar AnyVar

KinematicTol KinematicMaxIteration KinematicRelax RecruitmentIterativeMethod RecruitmentLpPenalty RecruitmentQpPenalty ReduceEquilEq

AnyVar AnySwitch AnyVar

AnyVar

AnySwitch

313 AnyVar ReactionForceLimit Translation value used in the muscle recruitment to allow optimizer algorithms that only nd positive values to nd negative value. The translation value must be larger than the largest negative value reaction force. (=100000) The lower muscle strength limit (in Newton) for muscles that are included in the muscle recruitment. Muscles with strength below this limit are disregarded and their activity is canceled. (=1) A tolerance that is used during iterative muscle recruitment algorithms for determination of the muscles that can eliminated in a given iteration step. (=0.0001) Lower limit of muscle activity. This can be used as a termination criterion of iterative muscle recruitment algorithms. (=1e-005) File for export of the coefcients of the equations of motion for each time step. (="") Folder with settings for the simplex solver based on Numerical Recipies, i.e., the solver used in MinMaxNRSimplex option. General tolerance for zero testing. (=1e-006) Relative zero testing tolerance used while nding pivot coefcient. It is the fraction between the real tolerance and the general tolerance, Zero. (=100) Folder with settings for the simplex solver from OOSol, i.e., the solver used in MinMaxOOSolSimplex option. Tolerance for zero testing. (=1e-006) Folder with settings for the QP solver from OOSol, i.e., the solver used in MinMaxOOSolQP option. Tolerance for zero testing. (=1e-006) Numerical gap for equalty constraints entered as two opposite inequalities. (=0) Description Folder that holds the result of the latest executed analysis (operation). Time. (=0) Current value of the kinematic error. (=0) Current kinematic energy of the system. (=0) Current potential energy of the system. (=0)

AnyVar

StrongMuscleLimit

AnyVar

MuscleEliminationTol

AnyVar

ActivityLowerLimit

AnyFileVar AnyOprSetNRSimplex

EquilEqExportFileName NRSimplex

AnyVar AnyVar

NRSimplex.Zero NRSimplex.CoefZeroRel

AnyOprSetOOSolSimplex AnyVar AnyOprSetOOSolQP

OOSolSimplex

OOSolSimplex.Zero OOSolQP

AnyVar AnyVar

OOSolQP.Zero OOSolQP.Pert

Denied-Access Members
Class AnyOutputFolder AnyVar AnyVar AnyVar AnyVar Name Output t KinematicError Ekin Epot

314 AnyVar AnyVar Emech Pmech Current mechanical energy of the system (=Ekin+Epot). (=0) Current mechanical power applied to the system. (=0) Operation that provides information about the model topology. Operation for setting initial conditions. Operation for performing kinematic analysis (only for kinematically determinate system). Operation for performing inverse dynamic analysis (only for kinematically determinate system). The maximal muscle activity for the current time step (the envolope of the muscle activities). (=0)

AnyMechStudy1ModelInfo AnyMechStudy1SetInitCond AnyMechStudy1KinAnl AnyMechStudy1InvDynAnl AnyVar

ModelInformation SetInitialConditions KinematicAnalysis InverseDynamicAnalysis MaxMuscleActivity

315

6.2 Operations
AnyOperation (see p. 316) AnyOperationDummy (see p. 317) AnyMechOprBase (see p. 318) AnyMechOpr (see p. 319) AnyMechOprKinAnl (see p. 320) AnyMechOprInvDynAnl (see p. 322) AnyMechOprInvMuscleDynAnl (see p. 323) AnyBodyMusTenLenCalOpr (see p. 325) AnyBodyLigamentLenCalOpr (see p. 326) AnyMechOprDeprecated (see p. 327) AnyMechOprSubProcess (see p. 328) AnyOperationSequence (see p. 329) AnyDesEvalStudyOpr (see p. 330) AnyParamStudyOpr (see p. 331) AnyOptStudyOpr (see p. 332) AnyMechStudy1ModelInfo (see p. 333) AnyMechStudy1SetInitCond (see p. 334) AnyMechStudy1KinAnl (see p. 335) AnyMechStudy1InvDynAnl (see p. 336) AnyMechStudyModelInfo (see p. 337)

316

AnyOperation
Type: Abstract Base Class: AnyCongFolder (see p. 24) Description:
The base class for all operations. Operations are objects that can execute (run) functions in studies (anyStudy). Execution is possible from the Operation window in the graphical user interface.

317

AnyOperationDummy
Type: Creatable Base Class: AnyOperation (see p. 316) Description:
This is an operation that does not do anything. It can be used to replace a real operation in cases where it are not needed, but that same model structure and appearant functionality is needed by other parts of the code: for instance a super operation may be calling it.

318

AnyMechOprBase
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Base class for operations associated with the basic mechanical studies, i.e. AnyMechStudyBase classes.

319

AnyMechOpr
Type: Abstract Base Class: AnyMechOprBase (see p. 318) Description:
Base class for operations associated with the basic mechanical studies, i.e. AnyMechStudyBase classes. This base-class is derived from AnyMechStudyBase and extended with pre- and postprocess operations. The PreOperation is executed before the body part of the AnyMechOpr itself, any PostOperation is executed after. Both operations are, by default, empty operations, which called be lled by the user e.g. with references to other operations (AnyOperation)

Object Members:
Optional-Initialization Members
Class AnyMechOprSubProcess AnyMechOprSubProcess Name PreOperation PostOperation Description Pre-process operation. Post-process operation.

320

AnyMechOprKinAnl
Type: Creatable Base Class: AnyMechOpr (see p. 319) Description:
This operation class performs kinematical analysis of a mechanical systems. The kinematical analysis requires the system to be kinematically determinate, implying that there must be enough kinemtical constraints to determine all degrees of freedom of the system. For such cases, the analysis assembles and solves the kinematic constraints for each requested time step. The position analysis solves the non-linear constraint equations by a Newton-Raphson like method. This means that it, to some extend, relies on the initial conguration of the system. In the rst step of an analysis, this is the loading time positions of the segments, whereas in all subsequent time steps, the initially guess is based on the previous known values of positions, velocities, and accelerations of the model segments. Velocity and acceleration analysis are also carried out. These are linear systems of equations. The equation solver handles redundant kinematic constraints, which means that the system can appear to be over-determinate, but only if the excess of equations are dependent of the other equations the system can be accepted. The AnyMechOprKinAnl can be executed in two modes controlled by the switch SingleStepOnOff: A single step mode, where the analysis is performed for a single time step of the study (by default the rst step), and a multi-step mode, where it sequentially solves the kinematical equations for each time step dened in the study.

Object Members:
Optional-Initialization Members
Class AnyMechOprSubProcess AnyMechOprSubProcess AnyVar AnyIntVar Name PreOperation PostOperation KinematicTol MaxIteration Description Pre-process operation. Post-process operation. Tolerance for the kinematic analysis. (=1e-006) Maximal number of Newton iterations in the solution of the non-linear equations in the kinematic position analysis. (=100) Initial value of relaxation coefcient for the Newton iteration. (=1) Switch for the single-step analysis. (=Off, Options: Off | On) Zero-based index for the time step to use in the single-step analysis. (=0)

AnyVar AnySwitchVar AnyIntVar

Relax SingleStepOnOff SingleStepNo

321

Denied-Access Members
Class AnyVar Name KinematicError Description Value of the kinematic error. (=0)

322

AnyMechOprInvDynAnl
Type: Creatable Base Class: AnyMechOpr (see p. 319) Description:
This operation performs inverse dynamic analysis of a kinematical and kinetical (statical) determinate mechanical system. For each time-step of the analysis, the operation performs a kinematical analysis to determine position, velocities, and accelerations of the prescribed motion. The kinematical analysis is carried out by a kinematical operation (AnyMechOprKinAnl) that must be supplied by the user. The kinetical (dynamic) analysis generates equations of motion for each segment and includes the contribution of all known (applied) forces and unknown (reaction) forces. In principle, all forces are treated the same in this part of the analysis; they are all based on kinematic measures from which the coefcients of the inuence on the mechanical system can be deduced using the principle of virtual work (or actually virtual power). Hereafter the coefcients are used to compute the actual inuence of known forces and to set up the coefcient matrix of unknown reaction forces. After setting up the equations, they are solved to nd the unknown reaction forces. It is a requirement that there as many unknown reaction forces as there are equations of dynamical equalibrium (i.e. equations of motion). This implies that the number of unknown reaction forces must match the number of degrees of freedom of the segments (if all segments were considered free in space).

Object Members:
Expected Members
Class AnyMechOprKinAnl Number [1] Description A expected member dening the kinematical analysis to be used inside each of the inverse dynamic analysis step

Optional-Initialization Members
Class AnyMechOprSubProcess AnyMechOprSubProcess Name PreOperation PostOperation Description Pre-process operation. Post-process operation.

323

AnyMechOprInvMuscleDynAnl
Type: Creatable Base Class: AnyMechOprInvDynAnl (see p. 322) Description:
This operation performs inverse dynamic analysis of musculoskeletal systems, i.e., mechanical systems including muscle. The inverse dynamics problem for this case is also called a muscle recruitment problem. Please refer to the member Criterion, see class AnyOprSetMuscleRecruitment for more informations about the muscle recruitment criteria.

Object Members:
Expected Members
Class AnyMechOprKinAnl Number [1] Description A expected member dening the kinematical analysis to be used inside each of the inverse dynamic analysis step

Optional-Initialization Members
Class AnyMechOprSubProcess AnyMechOprSubProcess AnyOprSetMuscleRecruitment AnyEnumMuscleRecruitmentType Name PreOperation PostOperation Criterion Criterion.Type Description Pre-process operation. Post-process operation. Setting folder for specifying the muscle recruitment criterion. Muscle recruitment criterion type. (=MR_Polynomial, Options: MR_MinMaxStrict | MR_MinMaxAux | MR_Linear | MR_Quadratic | MR_QuadraticAux | MR_Polynomial) Switch for whether the upper bound on muscle activity is active in the criterion. (=On, Options: Off | On) Value of the upper bound on muscle activity. Typically it is 1.0 implying complete saturation of the muscle capability (=1) Power for the MR_Polynomial criterion. (=3) Folder with settings for primary term of the muscle recruitment criterion. The primary term depends on the Type.

AnySwitchVar

Criterion.UpperBoundOnOff Criterion.UpperBound Criterion.Power Criterion.PrimaryTerm

AnyVar

AnyVar AnyOprSetMuscleRecruitmentNormalization

324 AnyEnumMuscleRecruitmentNormalizationType Criterion.PrimaryTerm.Type Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1) Folder with settings for the auxillary linear term that is appended to the primary term in some cases. Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1) Folder with settings for the auxillary quadratic term that is appended to the primary term in some cases. Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1)

AnyVar AnyVar AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

Criterion.PrimaryTerm.Weight Criterion.PrimaryTerm.LowerLimit Criterion.AuxLinearTerm Criterion.AuxLinearTerm.Type

AnyVar AnyVar AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

Criterion.AuxLinearTerm.Weight Criterion.AuxLinearTerm.LowerLimit Criterion.AuxQuadraticTerm

Criterion.AuxQuadraticTerm.Type

AnyVar

AnyVar

Criterion.AuxQuadraticTerm.Weight Criterion.AuxQuadraticTerm.LowerLimit

325

AnyBodyMusTenLenCalOpr
Type: Abstract Base Class: AnyMechOpr (see p. 319) Description:
Class for tendon length calibration operation in AnyBodyCalibrationStudy.

Object Members:
Optional-Initialization Members
Class AnyMechOprSubProcess AnyMechOprSubProcess Name PreOperation PostOperation Description Pre-process operation. Post-process operation.

326

AnyBodyLigamentLenCalOpr
Type: Abstract Base Class: AnyMechOpr (see p. 319) Description:
Class for ligament length calibration operation in AnyBodyCalibrationStudy.

Object Members:
Optional-Initialization Members
Class AnyMechOprSubProcess AnyMechOprSubProcess Name PreOperation PostOperation Description Pre-process operation. Post-process operation.

327

AnyMechOprDeprecated
Type: Abstract Base Class: AnyMechOprBase (see p. 318) Description:
Deprecated mechanical operations.

328

AnyMechOprSubProcess
Type: Abstract Base Class: AnyMechOprBase (see p. 318) Description:
This is a special (abstract) operation class used for dening sub-processes, such as pre- and postprocesses, inside the real user-accessible operations for doing mechanical analyses in AnyMechStudyBase and derived classes. This class works much like the AnyOperationSequence, but it is equipped with some additional (internal) functionality.

329

AnyOperationSequence
Type: Creatable Base Class: AnyOperation (see p. 316) Description:
This operation can hold a number of other operations and execute them in a sequence. The operations to be executed are the members and they will be executed in the sequence in which they have been declared. Typically, they will be dened as references to existing operations, for instance members of studies. Future releases: This operation is the rst step towards more general macro facilities in AnyScriptTM models. A future version of AnyBodyTM will allow macro specications that use the same macro language as the AnyBodyTM console application.

330

AnyDesEvalStudyOpr
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation that executes the update function in AnyDesEvalStudyOpr.

331

AnyParamStudyOpr
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation that executes a parameter study in AnyParamStudy.

332

AnyOptStudyOpr
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation that executes the optimization process in AnyOptStudy.

Object Members:
Optional-Initialization Members
Class AnyEnumOptSolver Name Solver Description Solver type setting. (=OptFeasibleDirSearch1, Options: OptSimpleSearch | OptFeasibleDirSearch1 | OptFeasibleDirSearch2) Absolute tolerance on objective function change in convergence criterion. (=1e-005) Relative tolerance on design variable change in convergence criterion. (=1e-005) Similar to ConvergenceObjectiveTol, but an array with one element for each design variable. Default is all values equal to ConvergenceObjectiveTol. (="No values given") Absolute tolerance for activating constraints. (=0.0001) Similar to ConstraintActivationTol, but an array with one element for each constraint. Default is all values equal to ConstraintActivationTol. (="No values given") Absolute perturbation use in numerical sensitivity analyses. (=1e-005) Similar to NumSensitivityPerturbation, but an array with one element for each design variable. Default is all values equal to NumSensitivityPerturbation. (="No values given")

AnyVar AnyVar AnyVector

ConvergenceObjectiveTol ConvergenceDesignTol ConvergenceDesignTolArr

AnyVar AnyVector

ConstraintActivationTol ConstraintActivationTolArr

AnyVar AnyVector

NumSensitivityPerturbation NumSensitivityPerturbationArr

333

AnyMechStudy1ModelInfo
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation for analyzing the mechanical model topology. This operation will provide information about model as text in the report view. This information will divided into sections; each section corresponding to one step of the operation.

334

AnyMechStudy1SetInitCond
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation for analyzing the given initial conditions of a mechanical model.

335

AnyMechStudy1KinAnl
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation that performs kinematic analysis of a kinematically determinate system.

336

AnyMechStudy1InvDynAnl
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation that performs inverse dynamic analysis of a kinematically determinate system.

337

AnyMechStudyModelInfo
Type: Abstract Base Class: AnyOperation (see p. 316) Description:
Operation for analyzing the mechanical model topology. This operation will provide information about model as text in the report view. This information will divided into sections; each section corresponding to one step of the operation.

338

6.3 Operation Settings Classes


AnyOprSet (see p. 339) AnyOprSetOptim (see p. 340) AnyOprSetNRSimplex (see p. 341) AnyOprSetOOSolSimplex (see p. 342) AnyOprSetOOSolQP (see p. 343) AnyOprSetMuscleRecruitment (see p. 344) AnyOprSetMuscleRecruitmentNormalization (see p. 346)

339

AnyOprSet
Type: Abstract Base Class: AnyFolder (see p. 24) Description:
Base class for folders containing solver settings.

340

AnyOprSetOptim
Type: Abstract Base Class: AnyOprSet (see p. 339) Description:
Base class for optimization solver settings.

341

AnyOprSetNRSimplex
Type: Abstract Base Class: AnyOprSetOptim (see p. 340) Description:
Settings for a simplex solver based on the algorithm from the book Numerical Recipices.

Object Members:
Optional-Initialization Members
Class AnyVar AnyVar Name Zero CoefZeroRel Description General tolerance for zero testing. (=1e-006) Relative zero testing tolerance used while nding pivot coefcient. It is the fraction between the real tolerance and the general tolerance, Zero. (=100)

342

AnyOprSetOOSolSimplex
Type: Abstract Base Class: AnyOprSetNRSimplex (see p. 341) Description:
Settings for a simplex solver from the OOSol library.

Object Members:
Optional-Initialization Members
Class AnyVar Name Zero Description Tolerance for zero testing. (=1e-006)

343

AnyOprSetOOSolQP
Type: Abstract Base Class: AnyOprSetOptim (see p. 340) Description:
Setting for a QP solver from the OOSol library (QP = Quadratic programming).

Object Members:
Optional-Initialization Members
Class AnyVar AnyVar Name Zero Pert Description Tolerance for zero testing. (=1e-006) Numerical gap for equalty constraints entered as two opposite inequalities. (=0)

344

AnyOprSetMuscleRecruitment
Type: Abstract Base Class: AnyOprSet (see p. 339) Description:
Class specifying the optimization criterion for a muscle recruitment problem, typically solved within an AnyBodyStudy by operations of class AnyMechOprInvMuscleDynAnl. The muscle recruitment problem specied by the members of this class can generally be formulated as minimize Primary Term + Auxiliary Terms subject to Equilibrium equations Muscle forces cannot push Limits on exerted muscle forces The primary specication is the type of the criterion. The table below provide an overview of the criterion types available, where the left column is possible values for the Type member variable. The auxillary terms of the objective function, that can be either linear or quadratic, is not available for all criterion types. The availability is also indicated in the table. Auxiliary Linear Term w1 |xi | MR_MinMaxStrict max |xi | N/A MR_MinMaxAux max |xi | + MR_Linear |xi | N/A MR_Quadratic x2 N/A i 2 MR_QuadraticAux xi + p |xi | MR_Polynomial N/A Solution is unique and equivalent to limp ( |xi |p )1/p . With the primary term alone, the solution is indeterminant. The power p is limited to p [2, 5]. Primary Term Auxiliary Quadratic Term w2 x2 i N/A + N/A N/A N/A N/A

Table 6.1: Overview of different solver criteria.

Object Members:
Optional-Initialization Members
Class AnyEnumMuscleRecruitmentType Name Type Description Muscle recruitment criterion type. Options: (=MR_Polynomial, MR_MinMaxStrict | MR_MinMaxAux | MR_Linear | MR_Quadratic | MR_QuadraticAux | MR_Polynomial)

345 AnySwitchVar UpperBoundOnOff Switch for whether the upper bound on muscle activity is active in the criterion. (=On, Options: Off | On) Value of the upper bound on muscle activity. Typically it is 1.0 implying complete saturation of the muscle capability (=1) Power for the MR_Polynomial criterion. (=3) Folder with settings for primary term of the muscle recruitment criterion. The primary term depends on the Type. Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1) Folder with settings for the auxillary linear term that is appended to the primary term in some cases. Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1) Folder with settings for the auxillary quadratic term that is appended to the primary term in some cases. Normalization type used to dene the muscle quantities entering the term. Options: (=MR_CurrentStrength, MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1)

AnyVar

UpperBound

AnyVar AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

Power PrimaryTerm

PrimaryTerm.Type

AnyVar AnyVar AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

PrimaryTerm.Weight PrimaryTerm.LowerLimit AuxLinearTerm

AuxLinearTerm.Type

AnyVar AnyVar AnyOprSetMuscleRecruitmentNormalization AnyEnumMuscleRecruitmentNormalizationType

AuxLinearTerm.Weight AuxLinearTerm.LowerLimit AuxQuadraticTerm

AuxQuadraticTerm.Type

AnyVar AnyVar

AuxQuadraticTerm.Weight AuxQuadraticTerm.LowerLimit

346

AnyOprSetMuscleRecruitmentNormalization
Type: Abstract Base Class: AnyOprSet (see p. 339) Description:
Class specifying the optimization criterion for muscle recruitment problem, typically solved wihtin an AnyBodyStudy with operations of class AnyMechOprInvMuscleDynAnl

Object Members:
Optional-Initialization Members
Class AnyEnumMuscleRecruitmentNormalizationType Name Type Description Normalization type used to dene the muscle quantities entering the term. (=MR_CurrentStrength, Options: MR_Constant | MR_CurrentStrength | MR_NominalStrength) Weight (or scaling) of the term in the total criterion. (=1) Lower bound for muscle quantities entering the term. (=1)

AnyVar AnyVar

Weight LowerLimit

347

6.4 External Data Interfaces


AnyDataFileBase (see p. 348) AnyOutputFileBase (see p. 349) AnyOutputFile (see p. 350) AnyMechOutputFileBase (see p. 353) AnyMechOutputFileEquilEqExport (see p. 354) AnyMechOutputFileForceExport (see p. 355) AnyInputDB (see p. 357) AnyInputBVH (see p. 359) AnyInputC3D (see p. 361) AnyInputFile (see p. 364)

348

AnyDataFileBase
Type: Abstract Base Class: AnyFolder (see p. 24) Description:
Abstract base class for all inputs from les.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

349

AnyOutputFileBase
Type: Abstract Base Class: AnyDataFileBase (see p. 348) Description:
Abstract base class for a number of output le classes.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

Optional-Initialization Members
Class AnyStyleNumeric1f Name NumberFormat Description Format settings for numerical values in text formatted les. Applies to oating-point numbers (AnyFloat) only. Number of digits in output. Disregarded if smaller than one. (=8) Number of character spaces reserved for the number in output. Disregarded if smaller than one. (=0) Style specication. (=CompactNumber, Options: DecimalNumber | ScienticNumber | CompactNumber) Complete format specication using C-style character specication known from the printf() function. This overrides the any other specication. If not specied by the user it is determined automatically from the other specication. (="")

AnyIntVar AnyIntVar

NumberFormat.Digits NumberFormat.Width NumberFormat.Style

AnyEnumFloatNumberStyle AnyStringVar

NumberFormat.FormatStr

350

AnyOutputFile
Type: Creatable Base Class: AnyOutputFileBase (see p. 349) Description:
This class provides functionality for saving output data to a le from a study (AnyStudy or derived) during execution of one of its operations. The members of this class are used to dene the le name, its format, and the variables that should be reported in the le. Notice that the AnyOutputFile object must declared inside the study in order for the study to create the le. If you wish to use the same output le specication in mulitple studies, you can do this by references from studies to output le declarations outside the studies. Such references will make the studies treat the output le objects as being declared inside the studies. You can specify the output in two ways. Basically, all variables in an object of this class will be included into the list of output. Alternatively, values can be found by a variable search similarly to the one available the Chart View of the AnyBodyTM GUI. The Search member is an AnyString that can hold one or more of such complete name variable-search strings. Wild-characters (*) can be used to perform advanced multiselections. The output-le object distinguishes between values that change during the operation and constants. Constants will be reported only once for instance in the header of the le whereas changing values will be reported for each step of the operation. The study that owns the executed operation automatically denes which values are changing and which are constant similarly to the automatic identication of values in the studys Output folder. The following formats are currently supported: lename.csv: Standard column formatted text output. Variables are reported in columns with one row for each operation step. The le header contains constants and column descriptions. Column separation sign is specied with the SepSign. Notice: "lename.csv" update for AnyBodyTM version 2.0.0 The lename.csv format has been updated slightly in order to allow direct import of AnyOutputFile generated les to other AnyScript classes. The header section does no longer contain numbers as the rst character so these lines can automatically be ltered out by importing routines in for instance AnyFunInterpol. Moreover, a line containing all column names have been added before the data columns; this improves imports to spread sheets such as Excel.

351 Future releases: It is considered to include other output formats in a future version. The following formats are being considered: lename.dat: Standard binary format. lename.any: AnyScript formatted le, which can directly be used as an include le. lename.m: Matlab M-le format that makes the data directly accessible from Matlab. Suggestions are very welcome from users who miss functionality from the AnyOutputFile.

Object Members:
Expected Members
Class AnyValue Number [1..Inf] Description All values (i.e. all AnyValue-derived members) can be reported in the output le depending on the le format settings. Description Name of the le.

Obligatory-Initialization Members
Class AnyFileVar Name FileName

Optional-Initialization Members
Class AnyStyleNumeric1f Name NumberFormat Description Format settings for numerical values in text formatted les. Applies to oating-point numbers (AnyFloat) only. Number of digits in output. Disregarded if smaller than one. (=8) Number of character spaces reserved for the number in output. Disregarded if smaller than one. (=0) Style specication. (=CompactNumber, Options: DecimalNumber | ScienticNumber | CompactNumber) Complete format specication using C-style character specication known from the printf() function. This overrides the any other specication. If not specied by the user it is determined automatically from the other specication. (="") Array of objects search strings (for more info. on search-strings, see class AnyObjectSearchString). (="No values given") Separator sign for the standard format. (=",")

AnyIntVar AnyIntVar

NumberFormat.Digits NumberFormat.Width NumberFormat.Style

AnyEnumFloatNumberStyle AnyStringVar

NumberFormat.FormatStr

AnyString

Search

AnyStringVar

SepSign

352 AnyStringVar AnyOutputFileHeaderFormat AnySwitchVar AnySwitchVar AnySwitchVar AnySwitchVar LineSepSign Header Header.TitleSectionOnOff Header.ConstSectionOnOff Header.VarSectionOnOff Header.ColumnNamesOnOff Header.LinePrex Line separator sign for the standard format. (="") Header formatting settings for the standard format. Switch for the title section. (=On, Options: Off | On) Switch for the header section containing constant variables. (=On, Options: Off | On) Switch for the variable description section. (=On, Options: Off | On) Switch for the row containing the column names in the data section. (=On, Options: Off | On) String containing a line prex used for all lines of the header section. (="")

AnyStringVar

353

AnyMechOutputFileBase
Type: Abstract Base Class: AnyOutputFileBase (see p. 349) Description:
Base class for a number of data-le classes that produce special output from mechanical studies (AnyMechStudy)

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

Optional-Initialization Members
Class AnyStyleNumeric1f Name NumberFormat Description Format settings for numerical values in text formatted les. Applies to oating-point numbers (AnyFloat) only. Number of digits in output. Disregarded if smaller than one. (=8) Number of character spaces reserved for the number in output. Disregarded if smaller than one. (=0) Style specication. (=CompactNumber, Options: DecimalNumber | ScienticNumber | CompactNumber) Complete format specication using C-style character specication known from the printf() function. This overrides the any other specication. If not specied by the user it is determined automatically from the other specication. (="")

AnyIntVar AnyIntVar

NumberFormat.Digits NumberFormat.Width NumberFormat.Style

AnyEnumFloatNumberStyle AnyStringVar

NumberFormat.FormatStr

354

AnyMechOutputFileEquilEqExport
Type: Creatable Base Class: AnyMechOutputFileBase (see p. 353) Description:
Output le for mechanical system export. It is exporting the mechanical system of equilibrium equations during the dynamic analyses in AnyMechStudy objects.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

Optional-Initialization Members
Class AnyStyleNumeric1f Name NumberFormat Description Format settings for numerical values in text formatted les. Applies to oating-point numbers (AnyFloat) only. Number of digits in output. Disregarded if smaller than one. (=8) Number of character spaces reserved for the number in output. Disregarded if smaller than one. (=0) Style specication. (=CompactNumber, Options: DecimalNumber | ScienticNumber | CompactNumber) Complete format specication using C-style character specication known from the printf() function. This overrides the any other specication. If not specied by the user it is determined automatically from the other specication. (="")

AnyIntVar AnyIntVar

NumberFormat.Digits NumberFormat.Width NumberFormat.Style

AnyEnumFloatNumberStyle AnyStringVar

NumberFormat.FormatStr

355

AnyMechOutputFileForceExport
Type: Creatable Base Class: AnyMechOutputFileBase (see p. 353) Description:
This class is an output le class particularly related to mechnical studies (AnyMechStudy and derived classes). It outputs les with information about the loads that are applied to a given segment, a number of selected segments, or all segments in the study. The load information is aimed at external post-processing such as structural analysis, for instance by the nite elements method. The loads comprise both applied loads and computed reaction forces, i.e., all AnyForceBase objects and they are all converted into a simple general format aimed at application in structural analysis. All loads are ordered according to their points of application and the actual load is given are as a 3D force vector and a 3D torque vector. Each AnyForceBase object can output multiple components of force, i.e., multiple sets of force and torque vectors, for instance if it is based on a multiple component kinematic measure (i.e. multiple components in Fout and Fout). Together with the force information, the current global position of the application point is outputted, along with information about force association with segments and type of force (class information). Future releases: This output le class is in a beta testing phase. Changes of the le format and other class functionality must be expected. More detailed description may be included when the format has reached a mature level.

Object Members:
Expected Members
Class AnySeg Number [0..Inf] Description Selected segments for which the output may be prepared depending on AllSegmentsInStudyOnOff. Description Name of the le.

Obligatory-Initialization Members
Class AnyFileVar Name FileName

Optional-Initialization Members
Class AnyStyleNumeric1f Name NumberFormat Description Format settings for numerical values in text formatted les. Applies to oating-point numbers (AnyFloat) only. Number of digits in output. Disregarded if smaller than one. (=8)

AnyIntVar

NumberFormat.Digits

356 AnyIntVar NumberFormat.Width NumberFormat.Style Number of character spaces reserved for the number in output. Disregarded if smaller than one. (=0) Style specication. (=CompactNumber, Options: DecimalNumber | ScienticNumber | CompactNumber) Complete format specication using C-style character specication known from the printf() function. This overrides the any other specication. If not specied by the user it is determined automatically from the other specication. (="") Switch that controls whether the output is prepared for all segments in the current study being analyzed, or for selected segments. Selected segments (=Off, Options: Off | On)

AnyEnumFloatNumberStyle AnyStringVar

NumberFormat.FormatStr

AnySwitchVar

AllSegmentsInStudyOnOff

357

AnyInputDB
Type: Creatable Base Class: AnyDataFileBase (see p. 348) Description:
This class can import data from a external SQL database. Currently supported types of databases are MS SQL Server 2000 MS SQL Server 2005 MySQL OracleXE MS Access By means of the class members you can specify the database type and connection information such as database name, lename, user name, password and other authetication options. All this will be assembled in the connection string, which you can inspects in ConnectString. Notice that not all options apply to all database types. Data is imported from the database according to an SQL command that must be specied in the string SQLCommand. Notice that this is a string structure that can hold more than one string and if multiple strings are supplied, all of them will be executed as independent SQL commands against the database. Each SQL command will create its own folder under the Data folder. These folder will be given default names if you do not do anything else, but you can specify names of your own choice for easier retrieval of you data. SQLCommandTag is a string structure that optionally can be lled with a similar amount of strings as the SQLCommand. These strings will be used as tags for the associated SQL command in SQLCommand. If a suitable tag is given, it will be used as the folder name for the tagged SQL command.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar AnyDBType AnyString Name FileName DatabaseType SQLCommand Description The name of the database le (when applicable). String specifying the database type. A string holding one or many SQL commands to be executed on the database during the model loading.

358

Optional-Initialization Members
Class AnyStringVar AnyStringVar AnyStringVar AnyStringVar AnySwitchVar Name ServerName DatabaseName UserName Password WindowsAuthentication OracleClientAccess SQLCommandTag Description Server name (not used for connections to MS Access). (="") The database name (when applicable). (="") The name of user accessing the database. (="") Password for the user name. (="") Use windows authentication, as opposed to database authentication (Only used for MS SQL Server) (=Off, Options: Off | On) Client aceess to Oracle databases (Only used for Oracle Server) (=Off, Options: Off | On) A string holding tags associated with the entries of the SQLCommand. In principle, the tags and the commands should match in dimensionality; if not tags are autogenerated. (="No values given")

AnySwitchVar AnyString

359

AnyInputBVH
Type: Creatable Base Class: AnyDataFileBase (see p. 348) Description:
Class to read les in BVH format (see. The class allows you to read the data in the le and it optionally can create a model with segments resembling the kinematical hierarchy in the le. The data import can apply scaling parameters to the translation and rotations independently. This is useful for les using other units than meters and radians, since these units are used by the generated model. The scaling is only applied to that data in the Model section so the original data can be found in the Motion section. Additionally, it is also possible to dene lters for the translation as well as rotational data contained in the le. By default, one lter is included in the object, but additional lters can also be dened simply by constructing them inside the object or by creating references. Specication of which lter to use is made using ranslationalDataFilterIndex and RotationalDataFilterIndex for the translational and rotational data, respectively.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

Optional-Initialization Members
Class AnyVar AnyVar AnySwitchVar AnySwitchVar Name TranslationScale RotationScale ConstructModelOnOff ModelDrawOnOff Description Scaling parameter applied to all translations used in the model drivers. (=1) Scaling parameter applied to all rotations used in the model drivers (=1) Switch for whether the kinematic model is constructed or not. (=On, Options: Off | On) Switch for whether the model is equipped with drawing objects for visualization in Model View. (=On, Options: Off | On) Array of colors to be used in the model drawing. Each color entrie is used for the associated level in the kinematical hierarchy (="No values given") Uniform scaling applied to the elements of model drawing. (=0.05)

AnyRGBs

ModelDrawRGBs

AnyVar

ModelDrawScale

360 AnyInterPolType InterPolType Type of the interpolation drivers (AnyKinEqInterPolDriver) in the model. (=Bspline, Options: PiecewiseLinear | Bezier | Bspline) Order information used for the interpolation drivers in the model. (=4) Index of the lter to be used for the translational data. Zero is the default lter in member Filter. Negative numbers means that no lter is applied. Positive numbers refer to lters entered by declaration of new objects in the BVH object. (=0) Index of the lter to be used for the rotational data. Zero is the default lter in member Filter. Negative numbers means that no lter is applied. Positive numbers refer to lters entered by declaration of new objects in the BVH object. (=0) Standard (default) lter (Butterworth type lter). Initial condition vector. (="No values given") Switch to specify whether or not the initial conditions are calculated automatically. (=Off, Options: Off | On) Switch to specify if ltering should only be performed in the forward direction or both in the forward and backward direction. (=Off, Options: Off | On) The lter order. (=2) The cut-off frequency(ies). (="No values given") The lter type. (Options: LowPass | HighPass | BandPass | BandStop)

AnyIntVar AnyIntVar

InterPolBsplineOrder TranslationalDataFilterIndex

AnyIntVar

RotationalDataFilterIndex

AnyFunButterworthFilter AnyVector AnySwitchVar

Filter Filter.z0 Filter.AutomaticInitialConditionOnOff Filter.FilterForwardBackwardOnOff

AnySwitchVar

AnyIntVar AnyVector AnyFilterType

Filter.N Filter.Fc Filter.Type

361

AnyInputC3D
Type: Creatable Base Class: AnyDataFileBase (see p. 348) Description:
Class to read les in C3D format. The class allows you to import the whole c3d le or only the header and parameter section. C3D is standard le format for containing movement analysis data such as marker trajectories, joint angles, measured forces or EMG. For more information about C3D les, please see http://c3d.org. The class also allows you to have a basic model dened, where each measured 3D point are dened as a segment and the position is driven using an interpolation driver of the specied type using the measured data for the 3D point, and the orientation is driven to zero. In the model, only the part of the points section that is measured data is used. This is by default judged based on the content of the camera bytes in the C3D datale but it is also possible to dene which 3D trajectories that are markers using the members MarkerUseAllPointsOnOff, MarkerUseCamMaskOnOff,MarkerIndices or MarkerLabels. Additionally, it is also possible to apply ltering to the markers, processed data, and analog data. By default, the marker trajectories are ltered using a second-order, zero-phase, lowpass Butterworth lter with a cutoff frequency at 10 Hz. Processed data and analog data are not ltered by default.

The class also has a class operation dened that allows you to right-click the C3D object in the model tree and save the C3D le to AnyScriptTM les.This will produce a series of AnyScript les which contain the data in the C3D le. These are: <output_lename>.any <output_lename>.Header.any <output_lename>.Analog.any <output_lename>.Points.Markers.any <output_lename>.Points.Processed.a <output_lename>.MarkerMover.any <output_lename>.MarkerListMover.any <output_lename>.Processed The Header, Analog and Points directly contain the data in these parts of the C3D le MarkerMover includes the denition of a segment including drivers. Finally, MarkerListMover and ProcessedListMover contain list of the markers to be driven. <output_lename>.any is the main le, which, if loaded, will setup the model.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

Optional-Initialization Members
Class AnySwitchVar Name ReadAllDataOnOff Description Switch to specify if all data should be read or not (=On, Options: Off | On)

362 AnySwitchVar TruncateExtraCharsInNamesOnOff PointsScaleFactor ConstructModelOnOff MarkerUseAllPointsOnOff MarkerUseCamMaskOnOff Switch to specify whether extra characters in group, parameter, points, or analog data names should be truncated. (=On, Options: Off | On) A scale factor to be multiplied to all 3D data points. (=1) Switch to specify if a model should be constructed from the measured 3D data points. (=On, Options: Off | On) Switch for using all point data as 3D marker data. (=Off, Options: Off | On) Switch for using the Camera Mask for deciding which point data as 3D marker data. Non-zero camera mask is interpreted as 3D marker data. (=On, Options: Off | On) Array of point indices to be used as 3D marker data. (="No values given") Array of point labels to be used as 3D marker data. (="No values given") Index of the lter to be used for the marker data. Zero is the default lter in member Filter. Negative numbers means that no lter is applied. Positive numbers refer to lters entered by declaration of new objects in C3D object. (=0) Index of the lter to be used for the "processed" point data. Zero is the default lter in member Filter. Negative numbers means that no lter is applied. Positive numbers refer to lters entered by declaration of new objects in C3D object. (=0) Index of the lter to be used for the data in the analog section. Zero is the default lter in member Filter. Negative numbers means that no lter is applied. Positive numbers refer to lters entered by declaration of new objects in C3D object. (=-1) Standard (default) lter (Butterworth type lter). Initial condition vector. (="No values given") Switch to specify whether or not the initial conditions are calculated automatically. (=Off, Options: Off | On)

AnyVar AnySwitchVar

AnySwitchVar AnySwitchVar

AnyIntArray AnyStringArray

MarkerIndices MarkerLabels

AnyIntVar

MarkerFilterIndex

AnyIntVar

ProcessedDataFilterIndex

AnyIntVar

AnalogFilterIndex

AnyFunButterworthFilter AnyVector AnySwitchVar

Filter Filter.z0 Filter.AutomaticInitialConditionOnOff

363 AnySwitchVar Filter.FilterForwardBackwardOnOff Switch to specify if ltering should only be performed in the forward direction or both in the forward and backward direction. (=Off, Options: Off | On) The lter order. (=2) The normalized cut-off frequency(ies). (="No values given") The sample frequency of the data to be ltered. (=0) The cut-off frequency(ies). (="No values given") The lter type. (Options: LowPass | HighPass | BandPass | BandStop) A switch to specify whether or not the marker data should be written to text les. If this is set to on, three output les are created per marker, i.e. one with position data, one with velocity data and one with acceleration data. The output les are named <MarkerName>_pos.txt, <MarkerName>_vel.txt and <MarkerName>_acc.txt. (=Off, Options: Off | On) Scale factor used when drawing the marker. (={0.025, 0.025, 0.025}) The color of a marker. (={0.65, 0.65, 0.65}) A switch to specify if markers should be drawn or not. (=On, Options: Off | On) The interpolation type used in the linear drivers of the 3D data points. (=Bspline, Options: PiecewiseLinear | Bezier | Bspline) Specication of the B-spline order. Only used if MarkerInterPolType = Bspline. (=8) Description (="No values given") (="No values given") (="No values given") (="No values given")

AnyIntVar AnyVector AnyVar AnyVector AnyFilterType

Filter.N Filter.W Filter.Fs Filter.Fc Filter.Type

AnySwitchVar

WriteMarkerDataToFilesOnOff

AnyVec3 AnyRGB AnySwitchVar AnyInterPolType

MarkerScaleXYZ MarkerRGB MarkerDrawOnOff MarkerInterPolType

AnyIntVar

MarkerBsplineOrder

Denied-Access Members
Class AnyStringArray AnyStringArray AnyStringArray AnyStringArray Name PointLabels PointLabelsOriginal AnalogLabels AnalogLabelsOriginal

364

AnyInputFile
Type: Creatable Base Class: AnyDataFileBase (see p. 348) Description:
Class to read a space seperated ASCII le. In the future, this class shoule be able to read any character separated ASCII le.

Object Members:
Obligatory-Initialization Members
Class AnyFileVar Name FileName Description Name of the le.

Optional-Initialization Members
Class AnySwitchVar Name FileErrorContinueOnOff Description A switch to indice whether reading of the data should continue eventhough the le contains errors. (=Off, Options: Off | On) Description The time axis. (="No values given") The data. (="No values given")

Denied-Access Members
Class AnyVector AnyMatrix Name T Data

Vous aimerez peut-être aussi