by Reinhard Siegel
MultiSurf provides a wide variety of mathematical functions. The complete set of functions is listed below.
Often used functions are the following ones:
Let us consider a simple example. Open model wl_length.ms2.
The model shows hull surface "hull". We want to measure the waterline length.
Here the function DIST has been used.
Since both rings have coordinates Y = 0 and Z = 0 an alternative is to use the function XPOS. The expression for the formula "wl_length" would then read: XPOS(ring2) - XPOS(ring1).
In order to display the result of our calculation (i. e. the value of variables and formulas) we have two options:
For Real Values display use the Tools menu or the shortcut letter key V.
To present the content of variables by the entity Text Label follow thes steps.
More complex use of variables and formulas is made in the models sloop_rig.ms2, J22.ms2 and main_dimensions.ms2.
|ABS||1, any units||Same units as argument||Absolute value|
|ACOS||1: unitless||unitless||arc cosine (radians)|
|ACOSD||1: unitless||unitless||arc cosine (degrees)|
|ALARM||2: any units||Unitless||ALARM has 2 arguments ALARM(x,y). The alarm "goes off" (goes into error) if (1) it is set (x > 0) AND (2) y < 0. Using a formula or expression for y, you can build various warning limits into a model.|
|ANGLE||3: point, point, point||Unitless (degree)||Angle of three points (angle at pt2 between the directions to pt1 and pt3)|
|ARCLEN||3: curve, unitless, unitless||Length||Arc distance along curve, from t1 to t2|
|AREA||2: surface, use_sym (0 or 1)||Area = L^2||Area of surface, CompSurf, or TriMesh|
|ASIN||1: unitless||unitless||arc sine (radians)|
|ASIND||1: unitless||unitless||arc sine (degrees)|
|ATN||1, unitless||Radian (unitless)||Arc tangent|
|ATND||1, unitless||Degree (unitless)||Arc tangent (in degrees)|
|ATN2||2, both with same units||Radian (unitless)||Arc tangent(y/x)|
|ATN2D||2, both with same units||Degree (unitless)||Arc tangent(y/x) (in degrees)|
|BBOX||1. Entity or Entity List 2. Real scale factor 3. Real sign 4. Index, 1 to 3 for X, Y, or Z component||Length||The BBOX function gets information about the bounding box of an entity, or a set of entities specified by an Entity List. A bounding box is the smallest rectangular solid, aligned with the global coordinate system, that encloses the selected entities.|
|BSPL||1. KnotList, or *UNIFORM for uniformly spaced knots.
2. K, polynomial order (2 for linear, 3 for quadratic, 4 for cubic, etc.)
3. N, number of basis functions.
4. I, index indicating which basis function to evaluate (1 to N).
5. T, parameter (nominal range 0 to 1, but can be any real value)
|unitless||The BSPL function evaluates the so-called “B-spline basis functions”, which are the mathematical foundations of B-spline and NURBS curves and surfaces.
Example: BSPL( *UNIFORM, 3, 5, 2, 0.40) returns 0.3200.
In this case the knots are uniform (0, 0, 0, 1/3, 2/3, 1, 1, 1); the B-splines are quadratic (K = 3); there are N = 5 of them; I = 2 selects the second basis function; T is 0.40.
222. NURB has too few knots for its order and number of control points.
223. NURB has too many knots for its order and number of control points.
234. Insufficient spacing between knots.
556. BSPL function: order less than 1.
557. BSPL function: number of basis functions less than 1.
558. BSPL function: index is out of range (1 to number of basis functions).
|CEIL||1: any units||Same units as argument||CEIL(x) is the smallest integer that is greater than or equal to x.|
|CENTROID||3: entity, use_sym (0 or 1), index (1-3, for X,Y,Z coordinate)||Length||Coordinates of centroid|
|CLEAR||2: point, graphic entity||Length||Clearance|
|COS||1, radian (unitless)||Unitless||Cosine|
|COSD||1, degree (unitless)||Unitless||Cosine (of angle in degrees)|
|COSH||1: unitless||unitless||hyperbolic cosine|
|CURV||1/Length||Curvature of host curve or snake, at t location of bead/ring.
If t is on a breakpoint, hi_side (0 or 1) controls whether curvature is measured below or above the break.
kind: 0 is 3-D curvature of curve or snake; 1 is normal curvature of snake; 2 is geodesic curvature of snake.
|CURVINT||3: curve, t, real||L times units of real||Integral of real times ds along curve.
ds is the element of arc length along the curve.
t is a Variable.
real is a Formula descended from t.
|DIST||2: point, point||Length||Distance between points|
|ERROR||1: entity||Unitless||Error code attached to entity (0 if no error).|
|FLOOR||1: any units||Same units as argument||FLOOR(x) is the greatest integer that is less than or equal to x.|
|FRAMEPOS||3: point, frame, index (1-3, for x,y,z coordinate)||Length||Coordinates of point in frame|
|GRAPH||2: graph, unitless||Unitless||Evaluation of graph|
|HYDRO||6: sp.gr., Zcg, sink, trim, heel, index||various, depending on index||Fixed-position hydrostatics based on the visible contours.
index is 1 to 29; selects one of 29 results, e.g. index = 6 for displacement volume;
index = 15 for wetted surface.
|IF||3: any units||Same as units of selected argument||If arg1 >0, arg2; else arg3|
|LOG||1, unitless||Unitless||Natural logarithm|
|LOG10||1, unitless||Unitless||Base-10 logarithm|
|MASS||3: entity, use_sym, index||M
|Mass, if use_sym is not 0, includes symmetry images.
Index = 0 returns Mass.
Index = 1, 2 or 3, the value returned is the mass moment with respect to X, Y or Z. This is the product of mass times the X, Y or Z coordinate of the centroid. Unit dimensions are ML.
|MAX||2, both with same any units||Same units as arguments||Maximum|
|MIN||2, both with same any units||Same units as arguments||Minimum|
|PI||1; any units||Unitless||PI has 1 argument, but its value is immaterial; PI(x) = pi for any x.|
|ROUND||1, any units||Same units as argument||Rounding to integer|
|ROUND2||1, any units||Same units as argument||( x, places) rounds x to the specified number of decimal places. E.g., ROUND2(PI(0),2) is 3.140000.|
|SIGN||1: any units||Unitless||SIGN(x) is +1 when x > 0, -1 when x < 0, 0 when x = 0.|
|SIN||1, radian (unitless)||Unitless||Sine|
|SIND||1, degree (unitless)||Unitless||Sine (of angle in degrees)|
|SINH||1: unitless||unitless||hyperbolic sine|
|SQRT||1, unit dimensions all multiples of 2||Unit dimensions of argument divided by 2||Square root|
|STRAIN||2: Surface/TriMesh, index||Unitless||Surface/TriMesh is a surface or TriMesh entity
index = 0 or 1, for minimum or maximum strain
This function reports the strain range for an Expanded Surface or Expanded TriMesh.
|SURFCURV||5: magnet, hi_side_u, hi_side_v, kind, angle||L^-1 for kind = 0 or 2; L^-2 for kind = 1||Surface curvature
kind = 0, normal curvature
kind = 1, Gaussian curvature
kind = 2, mean curvature
|SURFINT||4: surface, u, v, real||L^2 times units of real||Integral of real times dA over surface
dA is the element of area on the surface
u and v are Variables
real is a Formula descended from u and v.
|TAN||1, radian (unitless)||Unitless||Tangent|
|TAND||1, degree (unitless)||Unitless||Tangent (of angle in degrees)|
|TANH||1: unitless||unitless||Hyperbolic tangent|
|TPOS||1, bead or ring||Unitless||t parameter|
|UNITMASS||1: entity||M for a point
ML^-1 for a curve
ML^-2 for a surface
ML^-3 for a solid
|unit weight property of entity|
|UPOS||1, magnet or ring||Unitless||u parameter|
|VELOCITY||3: curve, t, hi_side||Length||Rate of change of arc length with respect to t
If t is on a breakpoint, hi_side (0 or 1) controls whether velocity is measured below or above the break.
|VOLUME||2: solid, use_sym (0 or 1)||Volume = L^3||Volume of solid|
|VPOS||1, magnet or ring||Unitless||v parameter|
|XPOS||1, point||Length||X coordinate|
|YPOS||1, point||Length||Y coordinate|
|ZPOS||1, point||Length||Z coordinate|