使用ezdxf添加底部对齐尺寸时文字倒置的解决方法咨询
解决ezdxf中从右到左对齐标注文字倒置的问题
为提升标注清晰度,我需要在ezdxf创建的DXF文件底部添加尺寸标注。使用add_aligned_dim方法从右到左设置点后,尺寸可置于对象下方,但标注文字出现倒置情况,问题出在dim5标注上。
相关代码如下:
# add dimension lines dim1 = msp.add_linear_dim(base=(9, 34), p1=(9, 33.4375), p2=(leng2 + 9 - 2.625, 33.4375), override={'dimexe': 0.25, 'dimdsep': ord('.')}, dxfattribs={"layer": "104"}) dim1.set_tick(size=0.25) dim1.render() dim2 = msp.add_linear_dim(base=(9, 36), p1=(9, 33.4375), p2=(leng2 + 9 - 1.125, 33.4375), override={'dimexe': 0.25, 'dimdsep': ord('.')}, dxfattribs={"layer": "104"}) dim2.set_tick(size=0.25) dim2.render() dim3 = msp.add_linear_dim(base=(9, 38), p1=(9, 33.4375), p2=(leng2 + 9, 33.4375), override={'dimexe': 0.25, 'dimdsep': ord('.')}, dxfattribs={"layer": "104"}) dim3.set_tick(size=0.25) dim3.render() dim4 = msp.add_aligned_dim(p1=(8.5, 29), p2=(8.5, 32.9375), distance=0.5, override={'dimexe': 0.25, 'dimdsep': ord('.')}, dxfattribs={"layer": "104"}) dim4.set_tick(size=0.25) dim4.render() dim5 = msp.add_aligned_dim(p1=(10.1250, 28.5), p2=(9, 28.5), distance=0.5, override={'dimexe': 0.25, 'dimdsep': ord('.')}, dxfattribs={"layer": "104"}) dim5.set_tick(size=0.25) dim5.render()
标注文字倒置效果如下:
有两种简单方法可以解决这个问题:
方法1:调换标注点顺序+负偏移距离
把dim5的p1和p2顺序反过来,同时将distance设为-0.5,让标注从左到右生成,偏移到对象下方时文字自然正常:
dim5 = msp.add_aligned_dim(p1=(9, 28.5), p2=(10.1250, 28.5), distance=-0.5, override={'dimexe': 0.25, 'dimdsep': ord('.')}, dxfattribs={"layer": "104"}) dim5.set_tick(size=0.25) dim5.render()
方法2:强制旋转标注文字
在dim5的override参数里添加'dimtxtrot': 180,直接把倒置的文字旋转180度修正:
dim5 = msp.add_aligned_dim(p1=(10.1250, 28.5), p2=(9, 28.5), distance=0.5, override={'dimexe': 0.25, 'dimdsep': ord('.'), 'dimtxtrot': 180}, dxfattribs={"layer": "104"}) dim5.set_tick(size=0.25) dim5.render()
也可以在创建标注后单独调用方法设置旋转:
dim5.set_text_rotation(180)
内容的提问来源于stack exchange,提问作者Rand0mdude
相关产品推荐
相关产品推荐

