- 积分
- 10
- 精华
- 阅读权限
- 20
- 注册时间
- 2008-3-19
- 最后登录
- 1970-1-1
|
我们不再是孤独的探索者;让我们的手紧紧相连,一起成长。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 xvjiex 于 2010-5-31 14:23 编辑
各位高手:本人在网上下载了一个lsp小插件,但不会使用.请高手指点一下如何使用.
插件的功能是可以"累加,累减,累乘".但我得到的结果却是0.
如:我加载该插件后,输入add,输入a,选择对象(线条),输入保留位数2,选择目标(文字).最后的结果总是0.00.。
插件内容如下
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; Copyright (C) 2001 By Chen Yuan
; <add.LSP>
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
(DEFUN C:add(/ tt fs SS y n index add ent bstype s sss x j)
(setq tt 0 add 0 j 0)
(setq fs (getstring "\n运算方式[累加A/累减(S)/累乘M](A):"))
(prompt "\n选择目标:")
(setq ss (ssget))
(setq y (getint "\n精度(小数点后位数):"))
(SETQ N (SSLENGTH ss))
(SETQ INDEX 0)
(if (or (= fs "a") (= fs "A")) (setq add 0 tt 0))
(if (or (= fs "s") (= fs "S")) (setq add 0 tt 2))
(if (or (= fs "m") (= fs "M")) (setq add 1.0 tt 1))
(REPEAT N
(SETQ ENT (ENTGET (SSNAME ss INDEX)))
(SETQ INDEX (+ INDEX 1))
(SETQ bstype (ASSOC 0 ENT))
(IF (= "TEXT" (CDR bstype))
(PROGN
(SETQ S (CDR (ASSOC 1 ENT)))
(SETQ S (ATOF S))
(if (= tt 0) (setq add (+ add s)))
(if (= tt 1) (setq add (* add s)))
(if (and (= tt 2) (= j 0)) (setq add (+ add s)))
(if (and (= tt 2) (= j 1)) (setq add (- add s)))
(setq j 1)
)
)
)
(SETQ add (RTOS add 2 y))
(prompt "\n选择存储目标:")
(setq sss (ssget))
(SETQ ENT (ENTGET (SSNAME sss 0)))
(SETQ add (CONS (CAR (ASSOC 1 ENT)) add))
(SETQ X (SUBST add (ASSOC 1 ENT) ENT))
(ENTMOD X)
(princ)
)
(princ "\n累加(减、乘)程序ADD.LSP已加载,使用请键入ADD。程序编制:陈愿。")
以上内容也可以看附件
ADD.rar
(706 Bytes, 下载次数: 14)
|
|