本帖最后由 lxw320 于 2015-12-27 20:19 编辑
((0 . "*text")) *与text间不能有空格
 - (defun c:ee ( / apple_txt nl apple_nl apple_kkj apple_getstr apple_hb1 apple_hb0 apple_oldjd x y z apple_wz apple apple_wz1 zkh zkh1 apple_newjd obj qq nb nb1)
- (vl-load-com)
- (setq apple_txt nil nl nil apple_nl nil apple_kkj nil apple_getstr nil)
- (if (ssget '((0 . "*text")))
- (vlax-for obj (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
- (setq apple_txt (cons(strcat(vla-get-textstring obj) "*")apple_txt))
- )
- )
- (setq apple_hb (vl-catch-all-apply 'strcat apple_txt))
- (while (vl-string-search "\\p" apple_hb)
- (setq apple_hb (vl-string-subst "*" "\\p" apple_hb))
- )
- (setq apple_hb0 apple_hb)
- (while
- (setq nb (vl-string-search "{" apple_hb)
- nb1 (vl-string-search "}" apple_hb))
- (setq nl (cons (substr apple_hb (+ nb 1)(- nb1 (- nb 1))) nl))
- (setq apple_hb (substr apple_hb (+ nb1 2)))
- )
- (setq apple_hb1 (vl-catch-all-apply 'strcat nl))
- (mapcar
- '(lambda (x)
- (setq apple_hb0 (vl-string-subst " " x apple_hb0))
- ) nl
- )
- (while
- (setq apple_wz (vl-string-search ";" apple_hb1))
- (setq apple_hb1 (substr apple_hb1 (+ apple_wz 2)))
- (setq zkh (vl-string-search "}" apple_hb1))
- (setq zkh1 (vl-string-search "\" apple_hb1)
- )
- (cond
- ((null zkh1)(setq qq zkh))
- (t (setq qq (min zkh zkh1)))
- )
- (setq apple_nl (cons (substr apple_hb1 1 (+ qq 1)) apple_nl))
- (setq apple_hb1 (substr apple_hb1 (+ qq 2)))
- )
- (setq apple_nl (cons apple_hb0 apple_nl))
- (setq apple_nl (vl-catch-all-apply 'strcat apple_nl))
- (mapcar '(lambda (y)
- (if (not(or(and(<= y 57)(>= y 48)) (= y 46) (= y 45)))
- (setq y 32))
- (setq apple_kkj (cons y apple_kkj)))
- (vl-string->list apple_nl)
- )
- (setq apple_kkj (vl-string-trim " " (vl-list->string (reverse apple_kkj))))
- (while
- (setq apple_wz1 (vl-string-search " " apple_kkj))
- (setq apple_getstr (cons (substr apple_kkj 1 apple_wz1) apple_getstr))
- (setq apple_kkj (vl-string-trim " " (substr apple_kkj (+ apple_wz1 2))))
- )
- (setq apple_getstr
- (mapcar '(lambda (z)
- (atof z)
- )
- (vl-remove "." (vl-remove "-"(cons apple_kkj apple_getstr))))
- )
- (setq apple_jsjg (vl-catch-all-apply '+ apple_getstr))
- (princ "\n所选文字中数字的和为:")
- (princ apple_jsjg)
- (cond ((null apple_oldjd) (setq apple_oldjd 2)))
- (initget 4)
- (setq apple_newjd (getint(strcat "\n输入计算精度<" (rtos apple_oldjd) ">")))
- (if (not apple_newjd)
- (setq apple_newjd apple_oldjd) (setq apple_oldjd apple_newjd)
- )
- (vl-cmdf "text" (getpoint "\n计算结果插入点:")(getdist "\n输入字高:") 0 (rtos apple_jsjg 2 apple_newjd))
- (princ)
- )
|