Class Reference layout

The main window of the layout design. More...

Member

void addFunctionKey(int key,int function)
void addMacroKey(int key,string macroFileName, string title, string iconFileName)
void addMacroMenuEntry(string macroName, stringList menu)
void addMacroToolButton(string macroName,string parameter,string iconfilename)
backgroundModule* backgroundTool
barcodeModule* barcodeTool
booleanHandler* booleanTool
void choose()
void chooseImport()
void closeDesign()
bool debug
drawingField* drawing
drc* drcTool
int executeMacro(string filename)
extractionModule* extractionTool
string filename
int getBool(string caption,string label)
string getDirectory(string path="")
double getDouble(string caption,string label,double value=0, int digits=1)
int getInteger(string caption,string label, int value=0)
string getItem(string caption,string label,stringList values)
int getLayer(string label, int value=0)
point getMousePoint()
string getOpenFilename(string filter="", string path="")
string getStatistic()
string getSaveFilename(string filter="")
int getSize(string caption,string label, int value=1)
string getText(string caption,string label,string value="")
string getToolbarState()
string getVersion()
void hideToolBar(string name)
void macroPause()
netListModule* netlistTool
bool objectExists()
bool objectVisible()
void open(string fileName)
void print()
void save()
void saveAs()
void screenshot()
void setCell()
void setCellname()
void setLayerSorting(int sort)
void setMenuEnabled(string name,bool b)
bool setShortcut(string function,string key)
bool setShortcut(int function,string key)
void setSnapToGrid(bool b)
void setSnapToPoint(bool b)
void setSnapToMiddle(bool b)
void setSnapToLine(bool b)
void setSnapToCenter(bool b)
void setSnapToIntersection(bool b)
void setToolbarEnabled(string name,bool b)
void setToolbarState(string)
void showMessage(string caption,string label)
void showStatus(string label)
textEdit* showTextEditor()
void showToolBar(string name)
void toolBarAdd(string name,string buttons)
view3dModule* view3dTool
void deleteActuellCell()
void group()
void newCell()
void saveScreenshot(string filename)
void trigger3dRenderAll()
void trigger3dRenderAuto()
void trigger3dRenderSelect()

Detailed Description

graph LR classDef thisClas fill:#eaf5fc,stroke:#3c7faa,stroke-width:4px; classDef clas fill:#eaf5fc,stroke:#3c7faa,stroke-width:1px; la(layout)==drawing==>dr(drawingField) click dr "/layoutscript/api/drawingfield" click la "/layoutscript/api/layout" class dr clas class la thisClas la==backgroundTool==>ba(backgroundModule) click ba "/layoutscript/api/backgroundmodule" class ba clas la==barcodeTool==>br(barcodeModule) click br "/layoutscript/api/barcodemodule" class br clas la==booleanTool==>bo(booleanHandler) click bo "/layoutscript/api/booleanhandler" class bo clas la==drcTool==>drc(DRC) click drc "/layoutscript/api/drc" class drc clas la==netlistTool==>ex(extractionModule) click ex "/layoutscript/api/extractionmodule" class ex clas la==netlistTool==>net(netListModule) click net "/layoutscript/api/netlistmodule" class net clas la==view3dTool==>vd(view3dModule) click vd "/layoutscript/api/view3dmodule" class vd clas

This class is the main widget of the window from which the macro was executed. It is directly accessible via the classname "layout" from any C++ macro.

layout->filename="/var/layouts/samples1.gds";
layout->newCell();

Most methods of this call require a user dialog. A direct access of the drawing is possible via the member drawing to an object of the class drawingField.

Further modules to modify the design data are available with the pointers backgroundTool, barcodeTool, booleanTool, drcTool and netlistTool.

In LayoutScript for Python and for Ruby the keyword layout does not exists. A new layout object had to be created via the project class.

l=project.newLayout()   # open new instance of layout class for Python

l=Project.new_layout()  # open new instance of layout class for Ruby

Member Function Documentation


void layout::addFunctionKey(int key,int function)

Set the feature of an extra keyboard. key is the number of the key. It is numbered from 0 to the amount of keys the keyboard has. function is the feature code of the featur you want to add. As toolbutton, modification of the extra keyboard are not store and it is recommended to set it with an autostart macro. (introduced with release 20210905)


void layout::addMacroKey(int key,string macroFileName, string title, string iconFileName)

Will set an key of an external keyboard to a macro. key is the number of the key at the keyboard. macroFileName os the full path of the macro, title the capture and IconFileName the full path of the icon file. (introduced with release 20210910)


void layout::addMacroMenuEntry(string macroName, stringList menu)

Adds a macro named macroName to the menu of the LayoutEditor by copying the macro to the LayoutEditor folder inside you home folder. The menu position is define by the list menu. For example if the list contains two elements Utilities and My_macros, the macro will be displayed inside theUtilties/My_macros sub menu. In contrast to layout::addMacroToolButton the macro will stay in the menu with any restart. To remove the macro delete the copied version of the macro in the mentioned folder. The method will adjust the setting for setup::macroPath by adding home/LayoutEditor/menu to it if required. (introduced by version 20210612)


void layout::addMacroToolButton(string macroName,string parameter,string iconfilename)

Adds a new button to the toolbars. The button will be added to the toolbar 'Macros'. If this toolbar does not exist, it will be created. macroName specifies the name of the macro to be executed. It should include the full path to the macro. iconfilename points to the file for the icon of the new button. If the given file does not exist, the default macro icon is used. parameter should be an empty string. It may be used in furture updates to give additional information to the macro. Macrobuttons will not stored with shut-down. It has to be restored with a further macro call. So usually this method is used in a autostart macro that is automatic started after program start.


backgroundModule* layout::backgroundTool

The background utilities to add images in the background are accessible via this pointer to the class backgroundTool.


barcodeModule* layout::barcodeTool

The barcode utilities are accessible via this pointer to the class barcodeModule.


booleanHandler* layout::booleanTool

The boolean utilities to perform Boolean Operations are accessible via this pointer to the class barcodeModule.


void layout::choose()

A file dialog to select a filename is opened. The selected file will be loaded.


void layout::chooseImport()

A file dialog is shown. The selected file will be imported and added to the existing file.


void layout::closeDesign()

The current design will be removed and an empty design is shown like after the program start.


static bool layout::debug

If it is true, the debug mode is on. In the debug mode additional information is printed to the terminal where the LayoutEditor is started. If the LayoutEditor was not started from a terminal the output is not visible.


drawingField* layout::drawing

This pointer to class drawingField is the main class of the drawing. It holds all relevant information of the design.


drc* layout::drcTool

The design rule checker is accessible via this pointer to the class drc.


int layout::executeMacro(string filename)

Another macro is executed. The execution of the calling macro stopped until the termination or completion of the started macro.

Parameter:
filename filename of the macro to be executed

Returns: the exit code of the called macro


extractionModule* layout::extractionTool

a utility tool to extract electrical parameter from the design


string layout::filename

This string hold the filename of the current opened design. In case of an OpenAccess design it contains the library name with an extension '.oa'.


int layout::getBool(string caption,string label)

The user will be prompted to enter a boolean.

Parameter:
caption title of the window
label text in the dialog inside the window

Returns: 0 if yes/true is selected, otherwise '1' is returned.


string layout::getDirectory(string path="")

A user interface to select an exinsting folder is displayed (introduced with release 20201123).

Returns: the folder choosen by the use, an empty string is returned in case the operation was canceled.


double layout::getDouble(string caption,string label,double value=0, int digits=1)

The user will be prompted to enter a double.

Parameter:
caption the title of the window
label this string will be displayed inside the window
value default value
digits maximal number of digits

Returns: the double entered by the user


int layout::getInteger(string caption,string label, int value=0)

The user will be prompted to enter a integer.

Parameter:
caption the title of the window
label this string will be displayed inside the window
value default value

Returns: the integer entered by the user.


string layout::getItem(string caption,string label,stringList values)

The user will be prompted to choose a item from a list.

Parameter:
caption the title of the window
label this string will be displayed inside the window before the list
values a list with all items

Returns: the item text choosen by the user. An empty string is returned in the case the Cancel button was pressed.


int layout::getLayer(string label, int value=0)

The user will be prompted to choose a layer from a list of all existing layers.

Parameter:
label propt text of the dialog
value default value

Returns: the layer number entered by the user. -1 is returned in the case the Cancel button was pressed.


point layout::getMousePoint()

The execution of the macro is stoped until the user entered a mouse inside the drawing by mouse. The entered mouse position is returned. The user has full control of the displayed design like changuing the displayed cell or zomm in and out. (introduced with release 20191207) This feature is only available in C++ scripts.


string layout::getOpenFilename(string filter="", string path="")

A file open dialog is shown. The optinal parameter filter set the default filter use in the dialog. The filter format is "filtername (*.ex1 *.ex2)". With path the folder the dialog starts with is set.

Returns: a string with the filename or a empty string if the Cancel button was pressed.


string layout::getStatistic()

Returns: a string with some statistic information on the design.


string layout::getSaveFilename(string filter="")

A file save dialog is shown. The optional parameter filter set the default filter use in the dialog. The filter format is "filtername (*.ex1 *.ex2)".

Returns: a string with the filename or a empty string if the Cancel button was pressed.


int layout::getSize(string caption,string label, int value=1)

The user will be prompted to enter a value in userunits.

Parameter:
caption the title of the window
label this string will be displayed inside the window
value default value in database units

Returns: value entered by the user in database units


string layout::getText(string caption,string label,string value="")

The user will be prompted to enter a text.

Parameter:
caption the title of the window
label this string will be displayed inside the window
value default value

Returns: the text entered by the user. An empty string is returned in the case the Cancel button was pressed.


string layout::getToolbarState()

Returns: an encoded string containing all required information to restore the current toolbar and dock window setup. With setToolbarState the current setup can be restored


string layout::getVersion()

Returns: a string with the current version number of the LayoutEditor. (introduced with release 20201223)


void layout::hideToolBar(string name)

Hides the toolbar with the name.


void layout::macroPause()

paused the macro and enables user interaction to the design. The macro is continued with a right mouse click in most modes. (introduced with release 20191209) This feature is only available in C++ scripts.


netListModule* layout::netlistTool

The netlist utilities are accessible via this pointer.


bool layout::objectExists()

Returns: true if an layout window was already created during the start of the software. By using autoLayerMacro.layout macro it can happened that the macro is executed before a layout object is available and its methods can be used. With this method this can be checked without causing an an error rising up. This method is only available in C++ macros. (introdiuced with release 20201201)


bool layout::objectVisible()

Returns: true if a layout window is currently visible on the screen. This function is indended to avoid any output on a non-visible window like a layout->showStatus("text"); . (introduced with release 20201230)


void layout::open(string fileName)

The design with the name fileName is opened. If the current design was changed, you will be asked to save it before.


void layout::print()

A printer dialog will be opened.


void layout::save()

The current opened design will be saved to disc. If the meber variable filename is empty, you will be prompted to enter a filename.


void layout::saveAs()

You will be prompted to enter a filename. The current design will be saved.


void layout::screenshot()

The screen view will be saved. You will be prompted to enter a filename. The screen resolution is used for the pixel gaphic.


void layout::setCell()

You will be prompted to select a cell. The cell will be displayed.


void layout::setCellname()

You will be prompted to enter a name for the current displayed cell.


void layout::setLayerSorting(int sort)

Sets the display of the layer window inside the layout window. (introduced with release 20180614)

sort value sorting
1 layer as list
2 layer as block
3 sort by name
4 sort by number
5 sort by 3d lavel

void layout::setMenuEnabled(string name,bool b)

disabled or enabled a single menu entry or a hole menu. (introduced with release 20191206)

 layout->setMenuEnabled("Draw/Merge",false); // the merge item in the draw menu will be disabled
 layout->setMenuEnabled("Draw/Merge",true);  // enabled again

 layout->setMenuEnabled("File",false); // the file menu will be disabled 

 layout->setMenuEnabled("Utilities/Misc",false); // the Misc menu within the Utilities will be disabled 

bool layout::setShortcut(string function,string key)

Use this function to modify any existing shortcut. It returns true, if the modification was successful. & marks the underline in the menuname. As normally always the first character is underlined, add a & in the front.

layout->setShortcut("&Zoom Fit All","F"); // set 'F' to zoom fit
layout->setShortcut("&Zoom Fit Selection","Shift+F"); // set 'Shift F' to zoom fit selection

Shortcuts are not saved with program shutdown and the modifications will not affect new opened windows. So it should usualy placed in a autostart macros to have the modified shortcut available in all windows.


bool layout::setShortcut(int function,string key)

As the overloaded method, but with the feature code as parameter.


void layout::setSnapToGrid(bool b)

Snapping to grid is activated or deactivated depending on the given bool value.


void layout::setSnapToPoint(bool b)

Snapping to point is activated or deactivated depending on the given bool value.


void layout::setSnapToMiddle(bool b)

Snapping to middle of a line is activated or deactivated depending on the given bool value.


void layout::setSnapToLine(bool b)

Snapping to line is activated or deactivated depending on the given bool value.


void layout::setSnapToCenter(bool b)

Snapping to shape center is activated or deactivated depending on the given bool value.


void layout::setSnapToIntersection(bool b)

Snapping to intersections is activated or deactivated depending on the given bool value.


void layout::setToolbarEnabled(string name,bool b)

disabled or enabled a toolbar. (introduced with release 20191206)

 layout->setToolbarEnabled("Edit",false);

void layout::setToolbarState(string)

Sets the toolbar and dock window configuration. The string parameter needs to be created with the getToolbarState.


void layout::showMessage(string caption,string label)

A message will be displayed.

Parameter:
caption the title of the window
label this string will be displayed inside the window

void layout::showStatus(string label)

A message will be displayed in the statusbar for 2 seconds. The macro will continue to run. If the further status message is posted before the 2 seconds are over, the existing message is exchanged.

Parameter:
label text displayed in the status bar

textEdit* layout::showTextEditor()

Will create a new text Editor window in a thread save way.


void layout::showToolBar(string name)

Shows the name toolbar.


void layout::toolBarAdd(string name,string buttons)

Add a new tool bar, separate multipli buttons with a ';'. Next to the feature name the feature code can be use to spezify the feature.

layout->toolBarAdd("my toolbar","New Layout;Zoom Mouse;Code 39;Quit"); 

view3dModule* layout::view3dTool

The 3d view is accessable via this class.

Obsolete Members


void layout::deleteActuellCell()

After a confirmation the current display cell will be deleted. If there are no more cell in the drawing, a new empty cell will be created.

OBSOLETE: Please use drawing->deleteCurrentCell() instead.


void layout::group()

All selected elements are moved to a new cell. A correlating cellref will be added.

OBSOLETE: Please use drawing->group() instead.


void layout::newCell()

A new empty cell will be added, named with an unused cell name and it is set as current cell.

OBSOLETE: Please use drawing->newCell() instead.


void layout::saveScreenshot(string filename)

The screen will be saved in the file with the name filename. The type is selected by the extension.

OBSOLETE: Please use drawing->saveScreenshot(string filename) instead.


void layout::trigger3dRenderAll()

renderAll will be called after the macro terminates.

OBSOLETE: Please use view3dTool->trigger3dRenderAll() instead.


void layout::trigger3dRenderAuto()

renderAuto will be called after the macro terminates.

OBSOLETE: Please use view3dTool->trigger3dRenderAuto() instead.


void layout::trigger3dRenderSelect()

renderSeclect will be called after the macro terminates.

OBSOLETE: Please use view3dTool->trigger3dRenderSelect() instead.