Search
»»»Home «««
Framework
Screenshots
FAQ
»»»TELL «««
Types
Operators
Functions
Example
»»»Toped «««
Database
Cells
Add
Select
Edit
Properties
Rendering
GUI
Miscellaneous
»»»Ifaces «««
GDSII
OASIS
CIF
DRC

Edit selected objects

Operations modifying the database are described in this chapter. All of them work over already selected objects. Object selection operations are described in previous chapter.

move

Move selected objects. The function will move all selected objects according to the displacement vector, defined by the input points. Partially selected objects will be modified due to the fact that selected edges will change their position. Modified shapes will be validated just before the operation is finished, and potentially invalid shapes (if any) will be excluded from the operation.

[Tip]move …

void move(start_point, end_point)

void move()

___________________________________________
point start_point
First reference point - starting point of the displacement vector.
point end_point
Second reference point - ending point of the displacement vector.

The last function is interactive and is used for editor purposes. When executed, Toped expects two points to be selected using the mouse or keyboard. After the first point is selected Toped draws a temporary view of the moving objects bound to the possible point of displacement. When second point is selected, temporary view is replaced by the regular one. Displacement vector is controlled during the operation according to the current settings. Virtually the same result can be achieved using the construct below,

move(getpoint(),getpoint());

but the editor will not show any temporary objects, neither will control the direction of the vector.

Example 1. move

   move({{-43,164},{-22,141}});

top

copy

Copy selected objects. This function will create a copy of all selected objects and will place the new objects according to the displacement vector, defined by the input points. Partially selected objects will not be modified.

[Tip]copy …

void copy(start_point, end_point)

void copy()

___________________________________________
point start_point
First reference point - starting point of the displacement vector.
point end_point
Second reference point - ending point of the displacement vector.

The last function is interactive and targeted for editor purposes. It works in a way quite similar to the one described in the move function.

Example 2. copy

   copy({{-43,164},{-22,141}});

top

delete

Delete selected objects. Partially selected objects will be left unchanged.

[Tip]void delete()
-

The selected cell references will be deleted by this command and the hierarchy of the referenced cells will be updated accordingly. It is important to mention however, that cell structures themselves are unchanged.

Example 3. delete

   delete();

top

rotate

Rotate selected objects. Partially selected objects will not be modified. The rotation angle is in degrees. There are no restrictions on the type of the rotated objects. All types of layout objects including the cell references can be rotated on arbitrary angles. This operation may produce an off-grid shape. Caution should be taken when angles are not divisible by Pi/2.

[Tip]void rotate …

void rotate(center, angle)

void rotate(angle)

point center
The center of rotation
real angle
The rotation angle counter clockwise

The last function is interactive and is used for editor purposes. When executed, Toped expects a point to be selected using the mouse or keyboard. Toped draws a temporary image which represents the displacement of the selected objects if the rotation is executed around the current marker position. When a point is selected, temporary view is replaced by the regular one.

Example 4. rotate

   rotate({43,64},90);
   rotate(45);

top

flip

Mirrors the selected objects towards a reference line parallel to the X or Y axis.

[Tip]void flip …

void flip(direction,reference)

void flip(direction)

direction
One of the predefined constants: _vertical or _horizontal. When _vertical is selected the reference line is parallel to the X axis.
point reference
The coordinate of the point will be used to define the reference line. Only one coordinate will be used depending on the value of direction parameter

The second function is interactive. Toped expects a point to be selected using the mouse or the keyboard. The temporary image represents the displacement of the selected objects if the flip is executed using the current marker position.

changelayer

Transfer objects to another layer. All selected objects except the references will be moved to the target layer.

[Tip]void changelayer(layer).
int layer
The target layer

Example 5. changelayer

   changelayer(9);

top

changestring

Change the contents of selected text objects. All selected text objects will get a new contents.

[Tip]void changestring(newval).
string newval
The string for the text objects

Example 6. changestring

   changestring("no_name");

top

polycut

Cut selected shapes with a polygon. The cutting polygon is given by the input parameter. It is checked for validity. Toped performs both - AND and ANDNOT logical operations between each of the originally selected shapes and the cutting polygon. polycut doesn’t delete any of the resulting figures instead, the objects produced by AND operation are selected and ready for the subsequent edit command. polycut returns a list of references to those objects.

[Tip]polycut …

layout list polycut(cutting_poly)

layout list polycut()

point list cutting_poly
A list of points determining the cutting polygon

The last overloaded function is interactive. When executed, Toped expects list of points to be selected using the mouse or typed on the keyboard. After the first point is selected Toped draws a temporary rubber band closed polygon using already selected points. When the last point is selected, the temporary draw disappears and the operation is executed.

Example 7. polycut

   polycut({{-1,75},{10,75},{10,70},{15,70},{15,66},{-10,66},{-10,70},{-1,70}});

top

boxcut

Cut selected shapes with a box. This is a interactive function added for convenience. Internally it calls polycut with the input box represented as a polygon. When executed, Toped expects two points to be selected using the mouse (or keyboard). After first point was selected Toped draws a temporary rubber band rectangle between that point and the cursor position. When second point is selected, the temporary rectangle disappears and the operation is executed

[Tip]layout list boxcut()
-

top

merge

Merge selected shapes. This operation performs logical OR of the selected shapes, but only if they belong to the same layer. The resulting shapes are validated and selected after the operation. merge returns the list of references to those shapes.

[Tip]layout list merge()
-

Example 8. merge

   merge();

top

resize

Resize selected shapes. This operation performs parallel translation of all object edges. The object shape is usually preserved, but often the resulting object can have less vertices than the initial one. When executed with a negative parameter the resulting object might be null i.e. the operation can delete an object. This operation is often called bloat/shrink. It should not be confused with a simple scaling operation. The operation works on boxes, polygons and wires.

[Tip]void resize(delta).
real delta
Each edge is translated outwards by this factor. If delta is positive the objects will be bloated up. If delta is negative the direction of the translation will be reversed and the object will shrink.

Example 9. resize

   resize(-0.5); //shrink the selected object
   resize(1);    // bloat them up

top