hxh2901 发表于 2005-4-26 15:02:00

求一个LISP标注小程序

当标注一段距离时,我想把尺寸的值精确地扩大1.224745倍。这个值的变化要在标注的同时完成。就是说尺寸线上的值要比实际值大1.224745倍。用LISP可以做到么。

yshf 发表于 2005-7-1 21:52:00

;用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)

hxh2901 发表于 2005-7-11 08:43:00

谢谢二楼的好人啊

<P>这个小程序真的有用耶</P>
<P>只是发现个小问题:标注的值后面有好几位小数点,无法和标注样式里设置的一致,比如我设置只有两位小数点,你的程序标出来的值有7位小数点。如果能和标注样式里的设置一致就完美啦。</P>
<P>再次谢谢这位大虾~</P>

xqyhome 发表于 2005-7-11 11:31:00

<P>&nbsp; (rtos (* blc (distance p1 p2)) 2 7)</P>
<P>把 7 改为2 ,不就得了。</P>

li809 发表于 2005-7-13 21:21:00

谢谢

hxh2901 发表于 2005-7-14 15:21:00

增减小数点时,无法四舍五入?请问有没有办法增加这个功能呢

sdwy196912 发表于 2005-7-15 07:30:00

hxh2901发表于2005-7-14 15:21:00static/image/common/back.gif增减小数点时,无法四舍五入?请问有没有办法增加这个功能呢


<P><BR>我想应该有办法的.用 if&nbsp;语言 就可以了.</P>
<P>不过麻烦点.</P>

yshf 发表于 2005-7-18 11:27:00

<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]
查看完整版本: 求一个LISP标注小程序