;;;ܣд(ʽ) (XYZ)
;;;ڣzml84  2007-04-07               
;;;========================================
(defun c:zbbg ()
    ;; 
    (setvar "CMDECHO" 0)
    (command "undo" "be")
    ;;׽   
    (setq osmode_old (getvar "OSMODE"))
    ;; 
    (if (= ڿɫ nil)
 (setq ڿɫ 1
       ɫ 2
       ɫ 3
       꾫 3
       _߶ 6
       _1
   16
       _2
   10
       _3
   25
       ͷָ 2.5
       ָ 2.0
 )
    )

    ;;Ʊͷ 
    (initget "G g")
    (setq pt0 (getpoint "\nָλã [ı(G)]:"))
    (if (or (= pt0 "G") (= pt0 "g"))
 (progn
     (sz)
     (setq pt0 (getpoint "\nָλ:"))
 )
    )
    (setq pt0_x (car pt0)
   pt0_y (cadr pt0)
    )
    (SETQ PT1 (polar PT0 0 _1)
   PT3 (polar PT1 0 _2)
   PT5 (polar PT3 0 _3)
   PT7 (polar PT5 0 _3)
   PT701 (polar PT7 0 _3)
   PT2 (polar PT1 (* -0.5 PI) _߶)
   PT4 (polar PT3 (* -0.5 PI) _߶)
   PT6 (polar PT5 (* -0.5 PI) _߶)
   PT8 (polar PT7 (* -0.5 PI) _߶)
   PT801 (polar PT701 (* -0.5 PI) _߶)
   PT9 (polar PT0 (* -0.5 PI) _߶)
    )
    (COMMAND "color" ڿɫ)
    (COMMAND "PLINE" PT0 PT701 PT801 PT9 PT0 "")
    (COMMAND "PLINE" PT1 PT2 PT4 PT3 PT4 PT6 PT5 PT6 PT8 PT7 pt8 pt801
      pt701 "")
    (SETQ ZBS1 (entlast))
    (SETQ PT10 (polar PT0 (* -0.5 PI) (/ _߶ 2.0))
   PT10 (polar PT10 0 (/ _1 2.0))
    )
    (SETQ PT11 (polar PT10 0 (/ (+ _1 _2) 2.0))
   PT12 (polar PT11 0 (/ (+ _2 _3) 2.0))
   PT13 (polar PT12 0 _3)
   PT14 (polar PT13 0 _3)
    )
    (COMMAND "color" ɫ)
    (COMMAND "TEXT" "J" "MC" PT10 ͷָ 0.0 "  ")
    (COMMAND "TEXT" "J" "MC" PT11 ͷָ 0.0 "")
    (COMMAND "TEXT" "J" "MC" PT12 ͷָ 0.0 " ꣨X")
    (COMMAND "TEXT" "J" "MC" PT13 ͷָ 0.0 " ꣨Y")
    (COMMAND "TEXT" "J" "MC" PT14 ͷָ 0.0 " ꣨Z")
    ;;ͷ 
    ;;ȡ 
    (SETQ I 1)
    (setvar "OSMODE" osmode_old)
    (WHILE (/= nil
        (SETQ PTI
   (GETPOINT (strcat "\nָҪλ<" (itoa i) ">:")
   )
        )
    )
 (setq osmode_old (getvar "OSMODE")) ;ò׽ģʽ 
 (setvar "OSMODE" 0)
 (COMMAND "COPY" ZBS1 "" pt0 pt9)
 (SETQ ZBS1  (entlast)
       pt11  (polar PT11 (* -0.5 PI) _߶)
       pt12  (polar PT12 (* -0.5 PI) _߶)
       pt13  (polar PT13 (* -0.5 PI) _߶)
       pt14  (polar PT14 (* -0.5 PI) _߶)
       pti_x (rtos (car PTI) 2 꾫)
       pti_y (rtos (cadr PTI) 2 꾫)
       pti_z (rtos (caddr PTI) 2 꾫)
 )
 (princ (strcat "X=" pti_y "  Y=" pti_x "  Z=" pti_z))
 (COMMAND "TEXT"
   "J"
   "MC"
   PT11
   ָ
   0.0
   (strcat (itoa i) "#")
 )
 (COMMAND "TEXT" "J" "MC" PT12 ָ 0.0 pti_x)
 (COMMAND "TEXT" "J" "MC" PT13 ָ 0.0 pti_y)
 (COMMAND "TEXT" "J" "MC" PT14 ָ 0.0 pti_z)
 (setq i (+ i 1))
 (setvar "OSMODE" osmode_old)
    )
    ;;¼ݣͻ߿ 
    (if (> i 1)
 (progn
     (setq osmode_old (getvar "OSMODE")) ;ò׽ģʽ 
     (setvar "OSMODE" 0)
     ;; 
     (SETQ PT701 (polar PT701 (* -0.5 PI) (* _߶ I)))
     (COMMAND "color" ɫ)
     (COMMAND "rectang" "W" 0.2 PT0 PT701)
     ;;Ϣ 
     (setq xxx nil
    xxx (getstring T "\nϢ: ")
     )
     (if (= xxx "")
  (setq xxx "дϢ")
     )
     (setq pt9 (polar PT9 (* -0.5 PI) (* _߶ (- I 1) 0.5))
    pt9 (polar PT9 0 (/ _1 2.0))
     )
     (COMMAND "TEXT" "J" "MC" PT9 ָ 0.0 xxx)
     (princ (strcat "\nɣռ"
      (itoa (- i 1))
      "㡣"
     )
     )
 )
 (princ "\nɣûռ㣡")
    )

    ;;˳ 
    (command "undo" "e")
    (if (= i 1)
 (command "undo" 1)
    )
    (setvar "OSMODE" osmode_old)
    (setvar "CMDECHO" 1)
    (princ)
)
;;;=================================================== 
(defun c:sz ()
    (sz)
    (princ
 "\n\"SZ\"ɽʱõĲá"
    )
    (princ)
)
;;;=================================================== 
;;;á 
(defun sz ()
    (princ "\nעеĲ,ѡ:")
    (princ (strcat "\n[1п(1)"     "/2б(2)"
     "/3б(3)"     "/߶(4)/"
     "\nͷָ(5)"     "/ָ(6)"
     "/ָĬֵ(0)]"
    )
    )

    (setq ii (getint "\nѡ:")
    )
    (if (or (= ii nil) (< ii 0) (> ii 6))
 (princ "\n޸ı䣬!")
 (cond
     ((= ii 0)
      (progn
   (setq ڿɫ 1
         ɫ 2
         ɫ 3
         꾫 3
   )
   (setq _߶ 6
         _1
     16
         _2
     10
         _3
     25
         ͷָ 2.5
         ָ 2.0
   )
   (princ "\nȫָĬֵ")
      )
     )
     ((= ii 1)
      (progn (princ (strcat "\n1п<ǰֵ"
       (rtos _1 2 꾫)
       ">:"
      )
      )
      (setq _1_x (getdist))
      (if (= _1_x nil)
   (princ "1п޸ı!")
   (= _1 _1_x)
      )
      )
     )
     ((= ii 2)
      (progn (princ (strcat "\n2п<ǰֵ"
       (rtos _2 2 꾫)
       ">:"
      )
      )
      (setq _2_x (getdist))
      (if (= _2_x nil)
   (princ "1п޸ı!")
   (= _2 _2_x)
      )
      )
     )
     ((= ii 3)
      (progn (princ (strcat "\n3~5п<ǰֵ"
       (rtos _3 2 꾫)
       ">:"
      )
      )
      (setq _3_x (getdist))
      (if (= _3_x nil)
   (princ "3п޸ı!")
   (= _3 _3_x)
      )
      )
     )
     ((= ii 4)
      (progn (princ (strcat "\n߶<ǰֵ"
       (rtos _߶ 2 꾫)
       ">:"
      )
      )
      (setq _߶_x (getdist))
      (if (= _߶_x nil)
   (princ "߶޸ı!")
   (= _߶ _߶_x)
      )
      )
     )
     ((= ii 5)
      (progn (princ (strcat "\nͷָ<ǰֵ"
       (rtos ͷָ 2 꾫)
       ">:"
      )
      )
      (setq ͷָ_x (getdist))
      (if (= ͷָ_x nil)
   (princ "ͷָ޸ı!")
   (= ͷָ ͷָ_x)
      )
      )
     )
     ((= ii 6)
      (progn (princ (strcat "\nָ<ǰֵ"
       (rtos ָ 2 꾫)
       ">:"
      )
      )
      (setq ָ_x (getdist))
      (if (= ָ_x nil)
   (princ "ָ޸ı!")
   (= ָ ָ_x)
      )
      )
     )
     (t nil)
 )
    )
    (princ)
)
;;;==================================================
;;ΪʱʾϢ 
(princ "\n\"SZ\"ɽвá")
(princ "\n\"ZB\"ɽ(ʽ)")
(princ)