[灌水]ZZXXQQ,请进来,看看。
<p>我用你的改标注尺寸编辑圆的程序,在模型空间和图纸空间(非浮动),作了比较,有这个结果:</p><p><font face="Verdana">模型空间:</font></p>
<p><font face="Verdana">命令: !ent1<br/>((-1 . <图元名: 7ef03d90>) (0 . "CIRCLE") (5 . "BE62") (102 . "{ACAD_REACTORS") <br/><font color="#0000ff">(330 . <图元名: 7ef03ea0>) </font>(330 . <图元名: 7ef03f68>) (102 . "}") (330 . <图元名: <br/>7ef01cf8>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "粗实线") (100 . <br/>"AcDbCircle") (10 102.134 132.913 0.0) (40 . 19.37) (210 0.0 0.0 1.0))</font></p>
<p><font face="Verdana">图纸空间:</font></p>
<p><font face="Verdana">命令: !ent1<br/>((-1 . <图元名: 7ef03dd8>) (0 . "VIEWPORT") (5 . "BE6B") (102 . <br/>"{ACAD_XDICTIONARY")<font color="#000000"> (360 . <图元名: 7ef03de0>) </font>(102 . "}") (102 . <br/>"{ACAD_REACTORS") <font color="#0000ff">(330 . <图元名: 7ef03ea0>) </font>(102 . "}") (330 . <图元名: 7ef01ed0>) <br/>(100 . "AcDbEntity") (67 . 1) (410 . "A4") (8 . "粗实线") (100 . "AcDbViewport") <br/>(10 112.995 95.76 0.0) (40 . 50.0) (41 . 67.7598) (68 . 2) (69 . 2) (12 102.134 <br/>132.913 0.0) (13 0.0 0.0 0.0) (14 10.0 10.0 0.0) (15 10.0 10.0 0.0) (16 0.0 0.0 <br/>1.0) (17 0.0 0.0 0.0) (42 . 50.0) (43 . 0.0) (44 . 0.0) (45 . 40.2593) (50 . <br/>0.0) (51 . 0.0) (72 . 1000) (90 . 557120) (281 . 0) (71 . 1) (74 . 0) (110 0.0 <br/>0.0 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (79 . 0) (146 . 0.0) (170 . 0) (61 <br/>. 5) (348 . <图元名: 7ef01fa8>) (292 . 1) (282 . 1) (141 . 0.0) (142 . 0.0) (63 . <br/>250) (421 . 3355443))</font></p>
<p> </p>
<p>是不是意味着,再作改进其实也能用。注意:<font color="#0000ff">(330 . <图元名: 7ef03ea0>) </font></p> 本身程序是为实模式写的。如果能直接或稍加修改用在图纸模式也是不错的。 <span style="FILTER: glow(color='#9898BA',strength='2'); WIDTH: 105px"><font color="#da2549" face="Verdana"><b>ZZXXQQ</b></font></span>有进度吗? 有进度了。
;可用于布局的圆尺寸驱动 明经 ZZXXQQ 2010.6.6
(defun c:tt ()
(if (and (setq s1 (entsel "\n选择圆标注 :"))
(setq ent (entget(car s1)))
(setq rr (cdr(assoc 42 ent)))
(= (cdr(assoc 0 ent)) "DIMENSION")
(= (cdr(assoc 100 (reverse ent))) "AcDbDiametricDimension")
(setq en (cdr(assoc 330 ent)))
) (progn
(if (assoc 410 ent) (progn
(setq ent1 (entget (cdr(assoc 331 (reverse (entget en)))))
r (cdr(assoc 40 ent1)))
(if (setq newr (getdist (strcat "\n新半径<" (rtos rr 2 3) "> :"))) (progn
(setq nr (/ (* r newr) rr))
(setq ent1 (subst (cons 40 nr) (assoc 40 ent1) ent1))
(entmod ent1)
))
) (progn
(setq ent1 (entget (cdr(assoc 331 (entget en))))
r (cdr(assoc 40 ent1)))
(if (setq newr (getdist (strcat "\n新半径<" (rtos r 2 3) "> :"))) (progn
(setq ent1 (subst (cons 40 newr) (assoc 40 ent1) ent1))
(entmod ent1)
))
))
))
(princ)
)
<p>zzxxqq,很好了,半径应当是直径。</p>
<p>对直径标注有效,半径标注就无效了,好象是个问题。</p>
页:
[1]