Contact telephone 0531-87069882


山东国泰建筑工程设计咨询有限公司



联系我们
全国咨询热线:0531-87069882

公司电话:0531-87069882

联系人:王经理

公司传真:0531-87087186

邮箱:wls01@sina.com

公司地址:山东省济南市市中区小纬四路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)
)