尺寸在 ezdxf 中如何工作

how does dimension work in ezdxf

我正在制作一个项目,其中我需要将一些东西绘制到一个 dxf 文件中。我正在使用 dxfwrite,但我需要仅在 ezdxf 上可用的 HATCH 函数,但我无法弄清楚如何在 ezdxf 中使用 dim 函数。有什么想法吗?

我有定义但没有明确的例子: https://github.com/mozman/ezdxf/blob/master/ezdxf/modern/dimension.py

已经尝试在函数中搜索文档字符串

import ezdxf

dwg = ezdxf.new('AC1015')  
msp = dwg.modelspace()  
msp.add_aligned_dim?

ezdxf 目前不支持尺寸。

OP 问题中链接到的 DIMENSION 相关代码只是为以后的实施做准备——这将(可能)永远不会发生。

我在 github 上问过类似的问题。这是我得到的回复。

dxfwrite 维度可作为插件 ezdxf.addons.dimlines 使用,请参阅此 example

此插件未记录。我不想鼓励使用这个假维度,因为真正的维度支持即将到来 ezdxf。

来自作者。 查看 github 问题 here

的回复

试试这个

import ezdxf
from ezdxf.tools.standards import setup_dimstyle

DIM_TEXT_STYLE = ezdxf.options.default_dimension_text_style

# create a new DXF R2010 drawing, official DXF version name: 'AC1024'
doc = ezdxf.new('R2010',setup=True)  


#create a new dimstyle
setup_dimstyle(doc,
               name='EZDXF1',
               fmt='EZ_MM_0.1_H25_MM',
               blk=ezdxf.ARROWS.closed_filled,
               style=DIM_TEXT_STYLE,
               )

dimstyle = doc.dimstyles.get('EZDXF1')
#keep dim line with text        
dimstyle.dxf.dimtmove=0

msp = doc.modelspace()
points=[(0,0),(20,0),(20,10),(0,10),(0,0)]
#draw rectang
msp.add_lwpolyline(points)
msp.add_aligned_dim(p1=(0, 0), p2=(0, 10),distance=1, dimstyle='EZDXF1')
msp.add_aligned_dim(p1=(0, 10), p2=(20, 10),distance=11, dimstyle='EZDXF1')
msp.add_aligned_dim(p1=(0, 0), p2=(20, 10),distance=1, dimstyle='EZDXF1',text="test")
doc.saveas('dim.dxf')