I think I can help you with your problem, but first let me commend you on how far you have gotten on your own! Ok, for your problem, the easiest way would be use our Flatten Y tool in the script. You should be able to simply call it before doing your rotate about point. I see your script is also missing one other feature. If you need to turn these into cross-hatch, you will also need to duplicate the non-rotated, post flattened quad. This should give you the cross hatches you want.
I took your script and added what I just described.
db = mgGetCurrentDb() selectList = mgGetSelectList (db) num = mgGetRecListCount (selectList) for i in range (0, num): rec,m = mgGetNextRecInList (selectList) ok, bounds = mgGetBounds (rec) center = mgCoord3dDivide (mgCoord3dAdd (bounds.max, bounds.min), 2.0) mgDeselectAll(db) mgSelectOne (rec) paramBlock = mgGetParamBlock ("Flatten Y") mgParamSetInteger (paramBlock, "Flatten to", 0) mgParamSetDouble (paramBlock, "Percent", 100) mgExecute ("Flatten Y", paramBlock) newRec = mgDuplicate (rec) mgInsert(rec, newRec) paramBlock = mgGetParamBlock ("Rotate About Point") mgParamSetDouble3 (paramBlock, "Center Point", center.x, center.y, center.z) mgParamSetDouble (paramBlock, "Angle", 90) mgExecute ("Rotate About Point", paramBlock)