求一个LISP标注小程序
当标注一段距离时,我想把尺寸的值精确地扩大1.224745倍。这个值的变化要在标注的同时完成。就是说尺寸线上的值要比实际值大1.224745倍。用LISP可以做到么。 ;用LISP当然可以做到,请试用以下程序:<BR>(defun c:blbz()<BR> (setq cm (getvar "cmdecho") blc 1.224745)<BR> (setvar "cmdecho" 0)<BR> (while (setq p1 (getpoint "\n 尺寸界限第一点 :"))<BR> (command "_dimaligned" p1<BR> (setq p2 (getpoint p1 "\n尺寸界限第二点 :"))<BR> "t"<BR> (rtos (* blc (distance p1 p2)) 2 7)<BR> pause<BR> )<BR> )<BR> (setvar "cmdecho" cm)(princ)谢谢二楼的好人啊
<P>这个小程序真的有用耶</P><P>只是发现个小问题:标注的值后面有好几位小数点,无法和标注样式里设置的一致,比如我设置只有两位小数点,你的程序标出来的值有7位小数点。如果能和标注样式里的设置一致就完美啦。</P>
<P>再次谢谢这位大虾~</P> <P> (rtos (* blc (distance p1 p2)) 2 7)</P>
<P>把 7 改为2 ,不就得了。</P> 谢谢 增减小数点时,无法四舍五入?请问有没有办法增加这个功能呢 hxh2901发表于2005-7-14 15:21:00static/image/common/back.gif增减小数点时,无法四舍五入?请问有没有办法增加这个功能呢
<P><BR>我想应该有办法的.用 if 语言 就可以了.</P>
<P>不过麻烦点.</P> <P>将(rtos (* blc (distance p1 p2)) 2 7)改为:</P>
<P>(rtos (/ (fix (+ 0.5 (* blc (distance p1 p2) (expt 10 nx)))) (expt 10 nx) 1.0) 2 nx)即可,其中nx为所需要的小数位数。<BR></P>
页:
[1]