| ||
procedure(MagicCopy()
let((cv objs Box transList objList objTransList newObj)
cv=geGetEditCellView()
Box=enterBox()
Box=list(geWindowToEditPoint(hiGetCurrentWindow() xCoord(Box))
geWindowToEditPoint(hiGetCurrentWindow() yCoord(Box)))
objs=dbShapeQuery(cv leGetEntryLayer() Box)
foreach(obj objs
transList=nconc(transList list(dbGetHierPathTransform(obj)))
);foreach
objs=FlatList(objs)
objTransList=mapcar('list objs transList)
newObj=foreach(mapcar obj objTransList
dbCopyFig(car(obj) cv cadr(obj))
);foreach
foreach(obj newObj
if(obj~>objType == "polygon" || obj~>objType == "rect" then
obj=leConvertPolygonToPath(obj)
);if
);foreach
);let
);proc
procedure(FlatList(testList)
let((cv listNew)
listNew=nil
if(listp(testList)
then
foreach(one testList
if(listp(car(last(one)))
then
listNew=nconc(listNew FlatList(one))
else
listNew=append1(listNew car(last(one)))
);if
);foreach
else
error("FlatList():argument must be a list")
);if
listNew
);let
);proc
hiSetBindKey("layout" "<Key>8" "MagicCopy()")