Something like this: defun( DE_VariantAssemblyDraw (variantSymbols, topLayer, bottomLayer) foreach(sym, variantSymbols bBox = nil objs = setof(obj, sym ->children, memv(obj ->objType, '("path", "shape", "polygon")) && obj ->layer == strcat("PACKAGE GEOMETRY/ASSEMBLY_", if(sym ->isMirrored, "BOTTOM", "TOP"))) foreach(obj, objs bBox = if(bBox then list(list(min(caar(bBox), caar(obj ->bBox)), min(cadar(bBox), cadar(obj ->bBox))), list(max(caadr(bBox), caadr(obj ->bBox)), min(cadadr(bBox), cadadr(obj ->bBox)))) else obj ->bBox ) newObj = car(axlDBCreateRectangle(bBox, nil, if(sym ->isMirrored, bottomLayer, topLayer), nil, sym)) ) ) )
↧