;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;幕匠LISP实验室;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;程序功能：板块编号   [备注：]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN C:BH ()
  (setq olderr  *error*
        *error* myerror)
  (setq ocmd (getvar "cmdecho"))
  (setq oblp (getvar "blipmode"))
  (setq os (getvar "osmode"))
  (setq oldclayer (getvar "clayer"))
  (setvar "cmdecho" 0)
  (IF(= a nil)      
    (progn(if (= c nil)(setq  c   100.0))
       (setq rr1 c )
       (setq rr (rtos c 2 2 )) 
       (setq c (getreal (strcat "\n请输入比例<" rr ">:"))) 
       (if (= c  nil)(setq c  rr1))       
           (setq b c)
       )
    (setq b c)
  );END if 
  (haoma)
  (setvar "cmdecho" ocmd)
  (setvar "blipmode" oblp)
  (setvar "osmode" os)
  (setq *error* olderr)               ; Restore old *error* handler
  (princ)
 )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun haoma ( / nnn)
     (setq bkbh "幕墙_板块编号")
     (setq bhzt "板块编号字体")
     (if (tblsearch "LAYER" bkbh) 
         (command ".LAYER" "S" bkbh "") 
         (command ".LAYER" "M" bkbh "C" "30" bkbh "")
     )
     (if  (null (tblsearch "style" bhzt)) 
          (command  "-style" bhzt "gbenor.shx,gbcbig.shx" "0"  "0.7" "0" "n" "n")
     )
    (INITGET "H V")
    (setq aa2 (getkword "\n编号方向:横向(H),竖向(V)-<H>:"))
    (IF  (or (= aa2 nil) (= aa2 "H"))
         (SETQ aa1 0 )
    )
    (IF  (= aa2 "V")
         (SETQ aa1 270)
    )
    (IF (= bhxl nil)
        (setq bhxl "BH")
    )
        (setq rr2 bhxl)
    (setq bhxl (strcase (getstring (strcat "\n请输入板块系列<" rr2 ">:"))))
    (IF (= bhxl "")
        (setq bhxl rr2)
    )
    (IF (= BHXH NIL)
        (setq BHXH "0")
    )
    (setq rr3 BHXH)
    (setq BHXH (getstring (strcat"\n请输入板块序号<"rr3">:")))
    (if (= BHXH "") 
        (setq BHXH rr3)
    )
    (setvar "osmode" 0)
    (setvar "blipmode" 0)
    (setq nb1 (atoi BHXH))
    (if(>= nb1 0)
      (progn
        (setq s  (atoi BHXH))
        (setq i 0)
           (while (< i 100000)
             (SETQ z1  (itoa s))
             (setq z   (strcat bhxl "-" z1))
             (SETQ BHXH z1)
             (setq nnn (strlen z1))
               (IF (<= nnn 4)(yuan 2.50))
               (IF (=  nnn 5)(yuan 2.23))
               (IF (=  nnn 6)(yuan 2.23))
               (IF (=  nnn 7)(yuan 2.23))
               (IF (>  nnn 7)
                   (PROGN (setq i 100001)(prompt"\n编那么多，你想累死我啊!老子不干了!!"))
               )
  
           );end while
      );end progn
    );end if
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun myerror (s)                    ; If an error (such as CTRL-C) occurs
                                      ; while this command is active...
  (if (/= s "函数被取消")
    (princ (strcat "\n本编号程序因:" S "而退出执行!"))
  )
  (setvar "cmdecho" ocmd)             ; Restore saved modes
  (setvar "blipmode" oblp)
  (setvar "osmode" os)
  (setvar "clayer" oldclayer)
  (setq *error* olderr)               ; Restore old *error* handler
  (princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN yuan (H)
       (setq p0 (getpoint"\n请输入椭圆中心:"))
       (if  (= p0 nil)
            (progn
                (setq i 100001)
                (setvar "clayer" oldclayer)
                (princ "\n本次编号结束!")
            );end progn
            (progn    (setq p1 (polar p0 0 (* 3.0 b)))
                    (setq p2 (polar p0   (* pi 0.5) (* 2.0 b)))
                    (setq p3 (polar p0   (* pi 1.15) (* 2.5 b)))
                    (setq p4 (polar p0   (* pi 1.85) (* 2.5 b)))
                    (command "ellipse" "c" "non" p0 "non"  p1 "non" p2)
                    (setq xz1 (ssget "L"))
                    (command "text" "S" bhzt "j" "F" "non" p3 p4 (* H b) z)
                    (setq xz2 (ssget "L"))
                    (command "rotate" xz1 xz2 "" p0 aa1)
                    (setq s (1+  s))
                    (setq i (1+  i))
            );end progn
       );end if
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun  c:jj()
      (prompt"\n使'正整数'或'字母+正整数'中的'正整数'齐增")
      (setq ad(getint"\n请输入齐增值(整数，减为负值):"))
      (setq xx(ssget))
      (SETQ i 0)
      (repeat(sslength xx)
             (setq xi(entget(ssname xx i)))
             (SETQ name0 (assoc 0 xi))
             (SETQ namei(CDR name0))
             (if(or (= namei  "TEXT" )(= namei  "MTEXT" ))
             (progn 


                    (SETQ t1(CDR(assoc 1 xi)))                      ;;;;;;
                    (setq nb1(atoi t1))                             ;;;;;;
                    (if(> nb1 0)                                    ;;;;;;
                    (progn(setq nb1(+ nb1 ad))                      ;;;;;;
                          (SETQ nb1(itoa nb1))                      ;;;;;;
                          (setq nt1(cons 1 nb1))                    ;;;;;;
                          (setq xi (subst nt1 (assoc 1 xi) xi))     ;;;;;;
                          (entmod xi)                               ;;;;;;
                     ));end-progn,if
           
       
                    (setq t20( substr (CDR(assoc 1 xi)) 1 1))
                    (setq t2 ( substr (CDR(assoc 1 xi)) 2 6))
                    (setq nb20(atoi t20))                           ;;;;;;
                    (setq nb2 (atoi t2 ))                           ;;;;;;
                    (if(and(= nb20 0)(> nb2 0))                     ;;;;;;
                    (progn(setq nb2(+ nb2 ad))                      ;;;;;;
                          (setq nb2 (strcat t20 (itoa nb2)))        ;;;;;;
                          (setq nt2(cons 1 nb2))                    ;;;;;;
                          (setq xi (subst nt2 (assoc 1 xi) xi))     ;;;;;;
                          (entmod xi)                               ;;;;;;
                     ));end-progn,if


 
             ));end-progn,if
             (setq i(1+ i))
);END-REPEAT
);END