本帖最后由 尘缘一生 于 2014-5-27 16:17 编辑
再次表示感谢,调试成功! - ;;; 门钢构件表重量自动计算 明经 zzxxqq 2014.5.26
- (defun c:mggl (/ ss1 ss2 x1 x2 x3 txt1 txt2 ss3)
- (while (and
- (setq ss1 (ssget ":E:S" '((0 . "TEXT") (1 . "*#*"))))
- (setq ss2 (ssget ":E:S" '((0 . "TEXT") (1 . "*#*"))))
- )
- (setq txt1 (cdr (assoc 1 (entget (ssname ss1 0)))))
- (if (wcmatch txt1 "*X*")
- (setq x1 (atof (substr txt1 2))
- x2 (atof (substr txt1 (+ 2 (vl-string-position (ascii "X") txt1))))
- )
- (setq x1 (atof txt1)
- x2 1
- )
- )
- (setq txt2 (cdr (assoc 1 (entget (ssname ss2 0)))))
- (if (wcmatch txt2 "#*")
- (setq x3 (atof txt2))
- )
- (setq re (* x1 x2 x3 0.00000785))
- (if (setq ss3 (ssget ":E:S" '((0 . "TEXT"))))
- (progn
- (setq ent (entget (ssname ss3 0)))
- (entmod (subst
- (cons 1 (rtos re 2 1))
- (assoc 1 ent)
- ent
- )
- )
- )
- )
- )
- (princ)
- )
- ;;; 结束===========================================================*
引申考虑:
我LISP不精通,提点建议,如此好的代码,可以考虑编写一个“炸开文字和数字混编”的代码,就是文字炸开一起,数字炸开在一起,不要文字和数字字符都是单个的。
|