liminnet 发表于 2008-11-18 15:40:00
caoyin 发表于 2008-11-18 16:05:00
;; ▓ (lt:dim-definingPoint edata)<br/>;; [功能] 获取标注的定义点<br/>;; [参数] edata---标注对象的 DXF 定义数据<br/>;; [返回] 包含两个点的表,依次为 (第一个尺寸线定义点 第二个尺寸线定义点)<br/>(defun lt:dim-definingPoint (edata / dxf typ p10 p13 p14 ang)<br/> (setq dxf (lambda (x) (cdr (assoc x edata)))<br/> typ (- (dxf 70) 32)<br/> p10 (dxf 10)<br/> p13 (dxf 13)<br/> )<br/> (list (cond<br/> ((zerop typ)<br/> (setq ang (dxf 50) p13 (list (car p13) (cadr p13) (last p10)))<br/> (inters p10 (polar p10 ang 1) p13 (polar p13 (+ ang (/ pi 2)) 1) nil)<br/> )<br/> ((= typ 1)<br/> (setq p14 (dxf 14) ang (if (equal p14 p13 1e-7) 0 (angle p14 p13)))<br/> (if (equal p10 p14 1e-7)<br/> p13<br/> (polar p10 ang (dxf 42))<br/> )<br/> )<br/> )<br/> p10<br/> )<br/>)caoyin 发表于 2008-11-18 16:08:00
<p>还有更好方法:</p><p>就是获取箭头块(或SOLID)的坐标</p>liminnet 发表于 2008-11-18 16:24:00
liminnet 发表于 2008-12-3 11:21:00
liminnet 发表于 2008-12-3 11:35:00
caoyin 发表于 2008-12-3 14:12:00
<p>这是早期版本产生的,改为</p><p>(defun lt:dim-definingPoint (edata / dxf typ p10 p13 p14 ang)<br/> (setq dxf (lambda (x) (cdr (assoc x edata)))<br/> typ (dxf 70)<br/> p10 (dxf 10)<br/> p13 (dxf 13)<br/> )<br/> (if (> typ 1) (setq typ (- typ 32)))</p>liminnet 发表于 2008-12-3 14:43:00
caoyin 发表于 2008-12-3 16:28:00
<p></p><p>(setq edata (entget (car (entsel))<font color="#0909f7">'("ACAD")</font>))</p><p>-></p><p>........</p><p>("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 40) (1040 . 1.5) (1070 . 79) <br/>(1070 . 0) (1070 . 144) <font color="#ff0000">(1040 . 0.133333)</font> (1070 . 179) (1070 . 0) (1002 . <br/>"}"))))</p><p>将红色部分是当前标注对象的测量比例因子,将(dxf 42)替换成 <font color="#0000ff">(dxf 42) 除以该值</font><font color="#000000">,自己改改看</font></p><p>得到实际的测量距离</p>liminnet 发表于 2008-12-3 17:10:00
页:
[1]
2