求LSP,关于标注问题,求助前辈。
<p>可以设置尺寸偏移基点的数值,然后点选2点,选择方向(2点上还是2点下),生成标注。偏移基点的数值最好可以暂时保存,只要不退出当前图纸就可以一直记录,除非手动改变。</p> Try ....<br/>;; dd ==> 偏移基点的数值<br/>(setq vv1 (/ pi 2)<br/> vv2 (* vv1 3)<br/>) <br/>(Command "_dimlinear" pause pause<br/> (progn<br/> (setq pt2 (GetVar "LastPoint"))<br/> (setq yy0 (cadr pt2)) <br/> (setq yy2 (cadr (getpoint pt2)))<br/> (if (minusp (- yy2 yy0))<br/> (polar pt2 vv3 dd)<br/> (polar pt2 vv1 dd)<br/> ) )<br/> ""<br/>) 本帖最后由 作者 于 2010-5-27 14:15:28 编辑 <br /><br /> <p>有点思路了,谢谢,自己在摸索摸索。</p><p><strong><font face="Verdana" color="#61b713">//初始设置全局变量<br/>(SETQ DIMOFFSET 10)</font></strong></p><p><strong><font face="Verdana" color="#61b713">//////////////////////////////<br/>(defun DIM1 ()<br/> (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))<br/> (setq dd (getint "\n请输入新偏移长度 :"))<br/> (if ( = dd nil)<br/> (setq dd DIMOFFSET)<br/> )<br/> (setq vv1 (/ pi 2)<br/> vv2 (* vv1 2)<br/> vv3 (* vv1 3)<br/> ) <br/> (Command "_dimlinear" pause pause<br/> (progn<br/> (setq pt2 (GetVar "LastPoint"))<br/> (initget 1 "w s a d")<br/> (setq kw (getkword "位置[上w/下s/左a/右d]:"))<br/> (cond <br/> (( = kw "w")<br/> (polar pt2 vv1 dd)<br/> )<br/> (( = kw "s")<br/> (polar pt2 vv3 dd)<br/> ) <br/> (( = kw "a")<br/> (polar pt2 vv2 dd)<br/> ) <br/> (( = kw "d")<br/> (polar pt2 0 dd)<br/> ) <br/> )<br/> )<br/> )<br/> (setq DIMOFFSET dd)<br/> (princ)<br/>)</font></strong></p><p><strong><font face="Verdana" color="#61b713">在Andyhon基础上做写更改,基本满足矩形标注。</font></strong></p> <p>//初始设置全局变量<br/>(SETQ DIMOFFSET 10)</p><p>//////////////////////////////<br/>(defun DIM1 ()<br/> (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))<br/> (setq dd (getint "\n请输入新偏移长度 :"))<br/> (if ( = dd nil)<br/> (setq dd DIMOFFSET)<br/> )<br/> (setq vv1 (/ pi 2)<br/> vv2 (* vv1 2)<br/> vv3 (* vv1 3)<br/> ) <br/> (Command "_dimlinear" pause pause<br/> (progn<br/> (setq pt2 (GetVar "LastPoint"))<br/> (initget 1 "w s a d")<br/> (setq kw (getkword "位置[上w/下s/左a/右d]:"))<br/> (cond <br/> (( = kw "w")<br/> (polar pt2 vv1 dd)<br/> )<br/> (( = kw "s")<br/> (polar pt2 vv3 dd)<br/> ) <br/> (( = kw "a")<br/> (polar pt2 vv2 dd)<br/> ) <br/> (( = kw "d")<br/> (polar pt2 0 dd)<br/> ) <br/> )<br/> )<br/> )<br/> (setq DIMOFFSET dd)<br/> (princ)<br/>)</p><p>在<strong><font face="Verdana" color="#61b713">Andyhon的基础上做些更改,可以满足矩形尺寸的标注了。</font></strong></p> <p><strong><font face="Verdana" color="#61b713">//初始设置全局变量<br/>(SETQ DIMOFFSET 10)</font></strong></p><p><strong><font face="Verdana" color="#61b713">//////////////////////////////<br/>(defun DIM1 ()<br/> (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))<br/> (setq dd (getint "\n请输入新偏移长度 :"))<br/> (if ( = dd nil)<br/> (setq dd DIMOFFSET)<br/> )<br/> (setq vv1 (/ pi 2)<br/> vv2 (* vv1 2)<br/> vv3 (* vv1 3)<br/> ) <br/> (Command "_dimlinear" pause pause<br/> (progn<br/> (setq pt2 (GetVar "LastPoint"))<br/> (initget 1 "w s a d")<br/> (setq kw (getkword "位置[上w/下s/左a/右d]:"))<br/> (cond <br/> (( = kw "w")<br/> (polar pt2 vv1 dd)<br/> )<br/> (( = kw "s")<br/> (polar pt2 vv3 dd)<br/> ) <br/> (( = kw "a")<br/> (polar pt2 vv2 dd)<br/> ) <br/> (( = kw "d")<br/> (polar pt2 0 dd)<br/> ) <br/> )<br/> )<br/> )<br/> (setq DIMOFFSET dd)<br/> (princ)<br/>)</font></strong></p><p><strong><font face="Verdana" color="#61b713">在Andyhon基础上做写更改,基本满足矩形标注。</font></strong></p>
页:
[1]