Insert operator creates new geometry. Depending on the rule it is either ignored (e.g. *Peel* rule), optional (**Centres **of the *Grid* rule) or required (*Insert* and *Place* rules).

i(geometry_path)

i(geometry_path,r1)

i(geometry_path,r1,r2)

##### Parameters

*geometry_path*– a string that specifies new geometry to be inserted, either- “
**builtin:**<primtive_shape>” – a predefined shape based on primitives where <primitive_shape> is either*circle, square*or*rhombus. r1*is the size of the shape. If*r2*is specified, it is passed as size2 along y axis; in such case circle becomes an**ellipse**, and square – a**rectangle**. - “
**iregion:shrink**” – iregion is shrunk by*r1*and used as the inserted shape - “
**iregion:smoothen**” – iregion is shrunk by*r1*(see above) and then smoothed with*r2*weight; if*r1*is not given value 0.5 is used.

- “
*r1*,*r2*– extra parameters (mentioned above)

##### Examples

Insert a circle with radius 15% of the input region (provided rule accepts shape insertion) into a shape labelled *InsertedCircle*:

{ i("builtin:circle", %15) InsertedCircle }

…rhombus 20 wide and 15 high:

i("builtin:rhombus", 20, 15)