Hi Andrew,
I used the code below to make my pCell. I don't know why it doesn't work well for some special division of 360 degree.
pcDefinePCell(list(ddGetObj("TTA") "ycRotate" "layout")
( (p2_r1 float 300.0)
(p2_gapl float 280.0)
(p2_gapa float 70.0)
(p2_gapb float 25.0)
(SETS int 20)
)
let((i x0 div_angle p2_base p2_rect p2_gap yctView
pcInst pcParameters pcParamProp pcLayer pcPurpose
) ;local parameters
(pcLib = (pcCellView~>lib))
;Retrieve pCell parameters
(pcParameters = ((pcCellView~>parameters)~>value))
(pcPurpose = "drawing")
div_angle = 360/SETS
(p2_base = dbCreateEllipse(pcCellView
list(4 pcPurpose)
list(((-p2_r1):(-p2_r1)) (p2_r1:p2_r1))
))
(p2_rect = dbCreateRect(pcCellView
list(64 pcPurpose)
list((p2_gapl:(-p2_gapb)) ((p2_gapl + 2*p2_gapa):p2_gapb))
))
yctView = dbOpenCellViewByType("Mic" "YCTemp" "layout" "maskLayout" "s")
p2_gap = dbCopyFig(p2_rect yctView)
for(i 2 SETS
dbTransformCellView(yctView 1 div_angle)
dbCopyFig(p2_gap pcCellView)
); for i
dbClose(yctView)
); let
); Pcell define