duotu007 发表于 2010-5-27 11:33:00

求LSP,关于标注问题,求助前辈。

<p>可以设置尺寸偏移基点的数值,然后点选2点,选择方向(2点上还是2点下),生成标注。偏移基点的数值最好可以暂时保存,只要不退出当前图纸就可以一直记录,除非手动改变。</p>

Andyhon 发表于 2010-5-27 12:04:00

Try ....<br/>;; dd ==&gt; 偏移基点的数值<br/>(setq vv1 (/ pi 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv2 (* vv1 3)<br/>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>(Command "_dimlinear" pause pause<br/>&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp; (setq pt2 (GetVar "LastPoint"))<br/>&nbsp;&nbsp;&nbsp; (setq yy0 (cadr pt2)) <br/>&nbsp;&nbsp;&nbsp; (setq yy2 (cadr (getpoint pt2)))<br/>&nbsp;&nbsp;&nbsp; (if (minusp (- yy2 yy0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv3 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv1 dd)<br/>&nbsp; ) )<br/>&nbsp; ""<br/>)

duotu007 发表于 2010-5-27 12:32:00

本帖最后由 作者 于 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/>&nbsp; (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))<br/>&nbsp; (setq dd (getint "\n请输入新偏移长度 :"))<br/>&nbsp; (if ( = dd nil)<br/>&nbsp;&nbsp;&nbsp; (setq dd DIMOFFSET)<br/>&nbsp; )<br/>&nbsp; (setq vv1 (/ pi 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv2 (* vv1 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv3 (* vv1 3)<br/>&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (Command "_dimlinear" pause pause<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq pt2 (GetVar "LastPoint"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (initget 1 "w s a d")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq kw (getkword "位置[上w/下s/左a/右d]:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "w")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv1 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "s")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv3 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "a")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv2 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "d")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 0 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq DIMOFFSET dd)<br/>&nbsp; (princ)<br/>)</font></strong></p><p><strong><font face="Verdana" color="#61b713">在Andyhon基础上做写更改,基本满足矩形标注。</font></strong></p>

客人 发表于 2010-5-27 14:11:00

<p>//初始设置全局变量<br/>(SETQ DIMOFFSET 10)</p><p>//////////////////////////////<br/>(defun DIM1 ()<br/>&nbsp; (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))<br/>&nbsp; (setq dd (getint "\n请输入新偏移长度 :"))<br/>&nbsp; (if ( = dd nil)<br/>&nbsp;&nbsp;&nbsp; (setq dd DIMOFFSET)<br/>&nbsp; )<br/>&nbsp; (setq vv1 (/ pi 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv2 (* vv1 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv3 (* vv1 3)<br/>&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (Command "_dimlinear" pause pause<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq pt2 (GetVar "LastPoint"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (initget 1 "w s a d")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq kw (getkword "位置[上w/下s/左a/右d]:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "w")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv1 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "s")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv3 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "a")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv2 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "d")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 0 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq DIMOFFSET dd)<br/>&nbsp; (princ)<br/>)</p><p>在<strong><font face="Verdana" color="#61b713">Andyhon的基础上做些更改,可以满足矩形尺寸的标注了。</font></strong></p>

客人 发表于 2010-5-27 14:15:00

<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/>&nbsp; (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))<br/>&nbsp; (setq dd (getint "\n请输入新偏移长度 :"))<br/>&nbsp; (if ( = dd nil)<br/>&nbsp;&nbsp;&nbsp; (setq dd DIMOFFSET)<br/>&nbsp; )<br/>&nbsp; (setq vv1 (/ pi 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv2 (* vv1 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv3 (* vv1 3)<br/>&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; (Command "_dimlinear" pause pause<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq pt2 (GetVar "LastPoint"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (initget 1 "w s a d")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq kw (getkword "位置[上w/下s/左a/右d]:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "w")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv1 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "s")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv3 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "a")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 vv2 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( = kw "d")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (polar pt2 0 dd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq DIMOFFSET dd)<br/>&nbsp; (princ)<br/>)</font></strong></p><p><strong><font face="Verdana" color="#61b713">在Andyhon基础上做写更改,基本满足矩形标注。</font></strong></p>
页: [1]
查看完整版本: 求LSP,关于标注问题,求助前辈。