联系我们
全国咨询热线:0531-87069882
公司电话:0531-87069882
联系人:王经理
公司传真:0531-87087186
公司地址:山东省济南市市中区小纬四路46号
AutoCAD计算钢板重量的Lisp小程序
文章作者:山东国泰工程检测鉴定有限公司 上传更新:2016-07-22 16:53
;;;===================================================================
;;; steelw1 统计钢板重量 -12x200x300 -12x200 300
;;;
;;; 选择代表重量的字符串后回车或右键,再选择组成钢板尺寸的字符串,可以
;;; 是单个字符串如-12x200x300,也可以是两个字符串如-12x200 300,回车后
;;; 开始选中的代表重量的字符串变成对应的钢板重量。
;;;
;;;==========山东国泰工程检测鉴定有限公司 冯益孝========================
(defun C:steelw1 ( )
; / p l n e os as ns s chm omenu ocmde)
(setq omenu (getvar "menuecho"))
(setq ocmde (getvar "cmdecho"))
(setvar "menuecho" 1)
(setvar "cmdecho" 0)
(setq ladd nil)
(setq os (ssget '((0 . "text"))))
(setq ss1 (entget (ssname os 0)))
(setq chm 0 p (ssget '((0 . "text"))))
(if p (progn
(setq l 0 n(sslength p))
(while (< l n)
(setq e (entget (ssname p l)))
(progn
(setq s (cdr (setq as (assoc 1 e))))
(if (numberp (setq inumb (read s)))
(progn
(setq chm (1+ chm))
(setq ladd (cons inumb ladd))
)
)
(if (not (numberp (setq inumb (read s))))
(progn
(setq s (substr s 2 (strlen s)))
(setq si 1)
(setq sb 1)
(while (= 1 (strlen (setq st (substr s si 1))))
(if (or (= st "x") (= st "X"))
(progn
(setq EE (substr s sb (- si sb)))
(setq ladd (cons (read EE) ladd))
(setq sb (1+ si))
)
)
(setq si (1+ si))
)
(setq EE (substr s sb (1- si)))
(setq ladd (cons (read EE) ladd))
)
)
)
(setq l (1+ l))
)
))
(setq ladd (cons 0.00000785 ladd))
(setq fadd (apply '* ladd))
(setq c (assoc 1 ss1))
(setq d (cons 1 (rtos fadd 2 1)))
(entmod (subst d c ss1))
(setq ss1 (entget (ssname os 0)))
(if (assoc 62 ss1)
(entmod (subst (cons 62 1) (assoc 62 ss1) ss1))
(entmod (cons (cons 62 1) ss1))
)
(princ "total ")
(princ chm)
(princ " text lines! Number is: ")
(princ fadd)
(setvar "menuecho" omenu)
(setvar "cmdecho" ocmde)
)