"""Dump DIMENSION entities (defpoints, measurement, text) of a region (read only).""" import sys from dxftools import doc lab = sys.argv[1] x0, y0, x1, y1 = map(float, sys.argv[2:6]) for e in doc(lab).modelspace().query("DIMENSION"): p = e.dxf.defpoint q2, q3 = e.dxf.get("defpoint2"), e.dxf.get("defpoint3") pts = [v for v in (p, q2, q3) if v is not None] if not any(x0 <= v.x <= x1 and y0 <= v.y <= y1 for v in pts): continue try: m = e.get_measurement() except Exception: m = None f = lambda v: f"({v.x:.1f},{v.y:.1f})" if v is not None else "-" print(e.dxf.handle, f"{m:.1f}" if isinstance(m, float) else m, repr(e.dxf.get("text", "")), f(q2), f(q3), f(p), e.dxf.get("angle", 0))