小程序的功能是对框选的数值文本减去指定值后替换原值,好像哪里不对,谁能帮改改
;;;小程序的功能是对框选的数值文本减去指定值后替换原值;;;很久不用lsp了,忘了。
(defun C:JZ (/ ss)
(vl-load-com)
(princ "\n文本减去指定值(JZ)")
(princ "\n选择要减去指定值的文本:")
(setq ss (ssget '((0 . "*TEXT,ATTDEF"))))
(setq s "")
(setq n 0
c 1.20;;指定值暂时固定为1.20
)
(if ss
(progn
(repeat
(setq vo (vlax-ename->vla-object (ssname ss n)))
(setq
s (atof
(vl-string-trim " " (vlax-get-property vo 'TextString))
)
)
(vlax-put-property vo 'TextString (rtos (- s c) 2 3))
(setq n (1+ n))
)
(princ "\n所选文本已经减值: ")
(princ (rtos c))
(princ)
)
)
)
(defun C:JZ (/ ss n c vo s)
(vl-load-com)
(princ "\n文本减去指定值(JZ)")
(princ "\n选择要减去指定值的文本:")
(setq n 0c 1.20);;指定值暂时固定为1.20
(if(setq ss(ssget'((0 . "*TEXT,ATTDEF"))))
(progn
(repeat(sslength ss)
(setq vo (vlax-ename->vla-object (ssname ss n))
n (1+ n)
s (atof(vl-string-trim " " (vlax-get-property vo 'TextString))))
(vlax-put-property vo 'TextString(rtos (- s c) 2 3))
)
(princ "\n所选文本已经减值: ")
(princ (rtos c))
(princ)
)
)
) "repeat"不下去
增加两行(defun C:JZ (/ ss)
(vl-load-com)
(princ "\n文本减去指定值(JZ)")
(princ "\n选择要减去指定值的文本:")
(setq ss (ssget '((0 . "*TEXT,ATTDEF"))))
(setq s "")
(setqn 0
c 1.20
;;指定值暂时固定为1.20
)
(setq nn (sslength ss)) ; 增加的一行
(if ss
(progn
(repeat nn
;; 增加的一行
(setq vo (vlax-ename->vla-object (ssname ss n)))
(setq
s (atof
(vl-string-trim " " (vlax-get-property vo 'TextString))
)
)
(vlax-put-property vo 'TextString (rtos (- s c) 2 3))
(setq n (1+ n))
)
(princ "\n所选文本已经减值: ")
(princ (rtos c))
(princ)
)
)
)
;;; [名称] yrJianZhi(JZ)
;;; [功能] 对选定的文本减去指定值
;;; [作者] yrgui QQ:860630000
(defun yrJianZhi (/ ss n c vo s)
(vl-load-com)
(setq c (getreal "\n文本减去指定值:<1.2>"))
(if (not c)
(setq c 1.2)
)
(princ "\n选择要减去指定值的文本:")
(setq n 0)
(if(setq ss(ssget'((0 . "*TEXT,ATTDEF"))))
(progn
(repeat(sslength ss)
(setq vo (vlax-ename->vla-object (ssname ss n))
n (1+ n)
s (atof(vl-string-trim " " (vlax-get-property vo 'TextString))))
(vlax-put-property vo 'TextString(rtos (- s c) 2 3))
)
(princ "\n所选文本已经减值: ")
(princ (rtos c 2 3))
(princ)
)
)
) 占个楼,看热闹 占个楼,看热闹
页:
[1]