procedure(AddMosM1()
let((cv objs metal1 temp shapes x y ux uy xy row column transform M1_width)
M1_width = 0.1
cv = geGetEditCellView()
objs = geGetSelSet()
foreach(obj objs
transform = nil
if(obj~>objType == "inst" then transform = list(obj~>transform));end if
if(obj~>objType == "mosaic" then
x = xCoord(obj~>xy)
y = yCoord(obj~>xy)
ux = obj~>uX
uy = obj~>uY
row = obj~>rows
column = obj~>columns
for(a 0 row-1
for(b 0 column-1
case(car(obj~>tileArray)
("R0" xy = list(x+bux : y+auy))
("MXR90" xy = list(x+aux : y+buy))
("R90" xy = list(x-aux : y+buy))
("MY" xy = list(x-bux : y+auy))
("R0" xy = list(x+aux : y-buy))
("MXR90" xy = list(x+bux : y-auy))
("R0" xy = list(x-bux : y-auy))
("MXR90" xy = list(x-aux : y-buy))
);end case
transform = append1(transform list(car(xy) car(obj~>tileArray) 1.0))
);end for
);enf for
);end if
shapes = obj>master>shapes
foreach(shape shapes
if(car(shape~>lpp) == "M1" && cadr(shape~>lpp) == "drawing"
then
foreach(trans transform
metal1 = dbCopyFig(shape cv trans)
temp = leConvertPolygonToPath(metal1)
temp~>width = M1_width
);foreach
);if
);foreach
);foreach
);let
);proc
hiSetBindKey("Layout" "