Majority of functions accepts only an argument (). However, some of them also require pre-argument {}, and post argument []. For example, a simple sinus function going to look like:sin(0.24) ==> 0.23770262642713458accepting only angle value in radians. Whereas more complicated logarithm requires definition of the base too:log{10}(2780) ==> 3.4440447959180758A numeric integration function expects integration boundaries in pre-argument, integration function in argument, and discretization value in post argument, which is an integer between 100 and 100000.int{2,7}(2*x^2-15)[1000] ==> 148.333375Post argument for the int function is optional, the default value of discretization is 1000. Functions requiring a set of numbers: min, max, mean, and stdev, accept those numbers in pre-argument.max{5, 7, 81} ==> 81To make a reference to another cell use its address in the format A7, B5, and so on. No special signs required.
! -- Only argument allows usage of mathematical operations and other functions. Pre argument accepts numbers, constants, and cell references. Post argument — numbers or letters.
! -- The only variable recognized by the system is x and it can be used only inside the integration function or sum of series.
sin()sinecos()cosinetan()tangentcot()cotangentasin()arcsineacos()arccosineatan()arctangentacot()arccotangentsinh()hyperbolic sinecosh()hyperbolic cosinetanh()hyperbolic tangentcoth()hyperbolic cotangentabs()absolute valueln()natural logarithmlog{base}()logarithmmin{x1, x2, ... xn}minimummax{x1, x2, ... xn}maximummean{x1, x2, ... xn}mean valuestdev{x1, x2, ... xn}standart deviationsums{min: step: max}(f(x))sum of seriesint{min, max}(f(x))[discretization]integrationThe type of a cell's value may vary depending on its content.
27.527.5 + A1#carbon steel{
width: 789
length: 896
}
Global variables act as a kind of third dimension in the spreadsheet space. They can be used for subcalculations or data storage. To assign global variables, open the cell description table and click the G button.
Each new variable should start on a new line, and its type can be a number, string, expression, or object. In fact, the main reason for introducing global variables into the system was to provide a way to insert objects into a script without “polluting” the spreadsheet.
! -- Care should be taken when deleting a global variable, since the part of the list below it will shift upward, changing variable names.
Objects are special data types consisting of key-value pairs. They store data that can be used by other cells. For any cell to be of type object its content shall start with slash / or curly brace {, depending on the type of the object you want to create. For a simple object the required syntax looks like the following example.
As you can see, an object key is a string with no spaces, and object value can be either number, expression, string, or another object. A mapped object is an object which values are all objects with the same keys. Like in the example below.
Another type of special object is an interval object, where keys are not strings, but min-max intervals. It can be useful in a scenario, where instead of string, a number is used for information retrieving. In these cases, the system will go from top to bottom trying to find the interval where the provided number lies, and when it does, it will return the corresponding key, which again, may be a number, a string, an expression, or another object.
! -- Round bracket in the interval specification (0, 5] means that zero is not included, whereas square bracket stands for opposite.
! -- During the verification process, only the first suitable interval will be returned. It means that if the last interval has a form of (-it will act as a default.inf, inf)
When a certain cell has an object type, simply addressing it in any expression will introduce object into that expression, which generally will end up in math error, since no math operation can be done with objects. To retrieve a certain value from a targeted object, an argument can be used together with a cell address like in the following example:
For a case where A1 is an interval object, only a number argument is accepted. In other cases, both string or number types are allowed. The number argument will be simply transformed to string. So, if the A1 is a simple object, A1(37.85) will attempt to find a key '37.85' within it.
! -- Together with global variables, objects are the tool to introduce tabulated data into a script: constants, material properties, geometrical characteristics and so on.
It is possible to create a drop-down menu for each cell with a set of predefined values, which can significantly improve script usability. To do this, you need to define an option object. Under the hood, it is simply another spreadsheet cell that is invisible to the user. Technically, its value can be any type available to a spreadsheet cell, but in practice only the object type makes sense, and it cannot be an interval object. To define the option object, open the cell description table and click the Options button.
If you place the following code into the option object of cell A1, and save it, you will see a short menu with three options: S355, 316L, and Aluminum. Clicking on any of them will insert a reference like &S355 into the cell content, and the cell value will become an S355 object with two properties: yield_stress and density. You can access them in any other cell by using a cell reference with an argument, for example: A1(#density).
Options can become even more powerful when used in chains. For example, you may create a large object G1 in the global variables, containing properties for two groups of materials: plastics and steels. You can reference it in the option object of cell A1 by simply writing G1 there. When you then choose between steel and plastic, the value of A1 will be an object similar to the previous example. Furthermore, when you open the option object of another cell — say, A2 — you can reference the value of A1 there. So, the options of the A2 cell will change depending on what was chosen for A1.
To change any cell value conditionally you must start its definition (formula) with the if statement. The concept of the condition block structure is the same as it is with the functions — if, elif, else define type of the block. It has to be followed by curly braces (pre-argument) describing conditions, and brackets (argument) which will hold the function or value that is going to be used if the conditions are met. No post argument expected. Every new block has to start on a new line.
if{D2 <= 7}(3.75 + D2^1.7)elif{D2 > 7 && D2 < 12}(24.75 + D2^1.85)else(125)! -- If block can only be first and else block can only be last.
! -- In case where no conditions are met NaN will be returned, which can not be used in further calculations.
! -- Accepted logical operators are && for logical and, || for logical or.
! -- Accepted comparisons: > for greater, < for less, >= for greater or equal, <= for less or equal, == for equal, != for not equal
To make a conditional cell comment open a cell description table and hit the conditional comment button. Conditional comment syntax is basically the same as for conditional cell value: pre-argument holds a set of conditions, argument stores a comment string, and optional post argument defines semaphore type and accepts only three letters which represents green, orange, and red colours.if
if{D2 <= 355}(ok)[g]elif{D2 > 355 && D2 <= 500}(possible plastic deformation)[o]else(high risk of failure)[r]! -- In case where no conditions are met no comment string will be returned and the semaphore will take its neutral form — ○
A simple markup language is used within the text editor to enable symbol definition, cell references, subscripts, and superscripts. A set of currently available special symbols is shown in the editor header. These symbols are:
$ — cell reference ($A2, $F4, ...)% — symbol definition (%{overline-r}(F)[t-v:x-b] ==> | %F_t^x ==> )_ — subscript (H_2O — H2O)^ — superscript (m^n— mn)Every newly created block has a paragraph block type, but you can change it to header, image, ordered or unordered list.
! -- Available colors are red, green, blue, orange, violet, default, silver.
! -- Available accents are overline, dot, ddot, hat, check, tilde, breve, bar, vec, acute, grave, mathring, underline, widehat, widetilde.
! -- Only color can be specified for symbol indexes.
There are five different levels of cell reference:
$A2 — cell value$$A2 — cell expression (values mode)$$$A2 — cell expression (symbols mode)$S$A2 — cell symbol$T$A2 — cell titleIf the reference level is higher than one and a post argument is used, all lower levels will also be rendered with equal signs between them. The post argument will be applied to the first-level reference, which is a cell value. The acceptable forms of the post argument and their meanings are explained below.
$A2[] — units$A2[s] — units, semaphore$A2[sc] — units, semaphore, comment$A2[sc, r4] — units, semaphore, comment, rounding to fourth digit$A2[r2] — units, rounding to second digit! -- The default rounding is to three decimal places.
! -- References in report do not accept arguments. In cases where it is necessary to render an object property in a report, first create a global variable equal to the required property.
! -- If the title reference has a post argument, starts on a new line, and is followed by a line break, it will be rendered in a special mode that also includes a description of all symbols used in the expression.
$T$A2[sc] ==>Column stress
= = = 145 [MPa] OK↳ -- Vertical force [N] -- Column section area [mm2]