Non Orthogonal Cell Array
This macro creats a cell array with a non orthogonal spacing. In normal use of the LayoutEditor such an array can be created by editing the properties of an existing array. These kinds of arrays are supported in GDSII, however unsupported in other file format like OpenAccess
Download: cellarray.layout
1 #!/usr/bin/layout
2 #name=Macro: cellArray.layout
3 #help=non orthogonal cell array
4
5
6 int main(){
7 string cellname=layout->drawing->currentCell->cellName;
8 cell *c=layout->drawing->findCell("baseCell");
9 if (c==NULL){
10 layout->newCell();
11 layout->drawing->currentCell->cellName="baseCell";
12 layout->drawing->point(0,0);
13 layout->drawing->point(10000,10000);
14 layout->drawing->box();
15 c=layout->drawing->currentCell;
16 layout->drawing->setCell(cellname);
17 }
18 pointArray pa;
19 pa.resize(3);
20 pa.set(0,0,0);
21 pa.set(1,200000,10000); //length and dircetion of the x axis including all repetition similar to the GDSII spec.
22 pa.set(2,10000,200000); //same for the y axis
23 element *e=layout->drawing->currentCell->addCellrefArray(c,pa,10,10);
24 layout->drawing->scaleFull();
25 }