import ezdxf
def generate_dxf(layout):
doc = ezdxf.new()
msp = doc.modelspace()
# 绘制主体建筑
main = layout.elements['main_house']
msp.add_lwpolyline([
layout.rotate_layout((main['position'][0]-main['size'][0]/2, main['position'][1]-main['size'][1]/2)),
layout.rotate_layout((main['position'][0]+main['size'][0]/2, main['position'][1]-main['size'][1]/2)),
layout.rotate_layout((main['position'][0]+main['size'][0]/2, main['position'][1]+main['size'][1]/2)),
layout.rotate_layout((main['position'][0]-main['size'][0]/2, main['position'][1]+main['size'][1]/2)),
layout.rotate_layout((main['position'][0]-main['size'][0]/2, main['position'][1]-main['size'][1]/2))
], close=True)
# 添加风水标注
msp.add_mtext("九运丁山癸向分金168.5°",
dxfattribs={'insert': layout.rotate_layout((0,7)), 'height': 0.5})
doc.saveas('fengshui_layout.dxf')