1. Cross_ruler
hiSetBindKey("Layout" "<Key>F1" "crossruler(1 20)")
hiSetBindKey("Layout" "Shift<Key>F1" "crossruler(2 3)")
procedure(crossruler(@optional (type 1) (Length 20))
prog((start_point)
leClearAllRuler(getEditRep())
start_point = hiGetPoint(hiGetCurrentWindow())
case(type
(1
leCreateRuler(getEditRep() list(start_point car(start_point) + Length : cadr(start_point)))
leCreateRuler(getEditRep() list(start_point car(start_point) - Length : cadr(start_point)))
leCreateRuler(getEditRep() list(start_point car(start_point) : cadr(start_point) + Length))
leCreateRuler(getEditRep() list(start_point car(start_point) : cadr(start_point) - Length))
)
(2
leCreateRuler(getEditRep() list(start_point car(start_point) + Length : cadr(start_point) + Length))
leCreateRuler(getEditRep() list(start_point car(start_point) - Length : cadr(start_point) - Length))
leCreateRuler(getEditRep() list(start_point car(start_point) + Length : cadr(start_point) - Length))
leCreateRuler(getEditRep() list(start_point car(start_point) - Length : cadr(start_point) + Length))
)
(t)
)
)
); procedure
2. Shape_ruler
hiSetBindKey("Layout" "Ctrl<Key>F1" "shaperuler()")
procedure(shaperuler()
prog((cv obj xlist ylist path)
cv = geGetWindowCellView()
obj = car(geGetSelSet(cv))
case(obj~>objType
(("rect" "inst")
path = obj->bBox
xlist = list(lowerLeft(path) list(xCoord(upperRight(path)) yCoord(lowerLeft(path))))
ylist = list(lowerLeft(path) list(xCoord(lowerLeft(path)) yCoord(upperRight(path))))
leCreateRuler(cv xlist)
leCreateRuler(cv ylist)
)
(("path")
leCreateRuler(cv obj~>points)
)
(t
hiDisplayModelessDBox('form "Error Window" "No Select object(rect/cell/path )" "" "")
)
)
)
);procedure