明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2271|回复: 7

求一个LISP标注小程序

[复制链接]
发表于 2005-4-26 15:02 | 显示全部楼层 |阅读模式
当标注一段距离时,我想把尺寸的值精确地扩大1.224745倍。这个值的变化要在标注的同时完成。就是说尺寸线上的值要比实际值大1.224745倍。用LISP可以做到么。
发表于 2005-7-1 21:52 | 显示全部楼层
;用LISP当然可以做到,请试用以下程序:
(defun c:blbz()
(setq cm (getvar "cmdecho") blc 1.224745)
(setvar "cmdecho" 0)
(while (setq p1 (getpoint "\n 尺寸界限第一点 :"))
(command "_dimaligned" p1
(setq p2 (getpoint p1 "\n尺寸界限第二点 :"))
"t"
(rtos (* blc (distance p1 p2)) 2 7)
pause
)
)
(setvar "cmdecho" cm)(princ)
 楼主| 发表于 2005-7-11 08:43 | 显示全部楼层

谢谢二楼的好人啊

这个小程序真的有用耶

只是发现个小问题:标注的值后面有好几位小数点,无法和标注样式里设置的一致,比如我设置只有两位小数点,你的程序标出来的值有7位小数点。如果能和标注样式里的设置一致就完美啦。

再次谢谢这位大虾~

发表于 2005-7-11 11:31 | 显示全部楼层

  (rtos (* blc (distance p1 p2)) 2 7)

把 7 改为2 ,不就得了。

发表于 2005-7-13 21:21 | 显示全部楼层
谢谢
 楼主| 发表于 2005-7-14 15:21 | 显示全部楼层
增减小数点时,无法四舍五入?请问有没有办法增加这个功能呢
发表于 2005-7-15 07:30 | 显示全部楼层
hxh2901发表于2005-7-14 15:21:00增减小数点时,无法四舍五入?请问有没有办法增加这个功能呢


我想应该有办法的.用 if 语言 就可以了.

不过麻烦点.

发表于 2005-7-18 11:27 | 显示全部楼层

将(rtos (* blc (distance p1 p2)) 2 7)改为:

(rtos (/ (fix (+ 0.5 (* blc (distance p1 p2) (expt 10 nx)))) (expt 10 nx) 1.0) 2 nx)即可,其中nx为所需要的小数位数。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 10:01 , Processed in 0.189522 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表