TIAO中文等高调整.LSP
上传用户:sd555111
上传日期:2014-05-17
资源大小:31k
文件大小:2k
源码类别:

CAD

开发平台:

MathCAD

  1. ;        =============================
  2. ;        |    中英文等高调整软件     |
  3. ;        | Ver: 1.0  作者: 尉迟俊岭  |
  4. ;        =============================
  5. (defun *error*(st)
  6.   (princ (strcat "Error: " st))
  7.   (princ)
  8. )
  9. (defun unt(s$ old$ new$ / osl nsl si st)
  10.   (setq osl (strlen old$)
  11.         nsl (strlen new$)
  12.         si 1)
  13.   (while (= osl (strlen (setq st (substr s$ si osl))))
  14.     (if (= st old$)
  15.       (setq s$ (strcat (substr s$ 1 (1- si)) new$ (substr s$ (+ si osl)))
  16.             si (+ si nsl)
  17.       )
  18.       (setq si (1+ si))
  19.     )
  20.   )
  21.   (setq txt s$)
  22. )
  23. (defun C:tiao( / test test1 test2 ss len n s en1 a ent nn
  24.                  txt stxt post)
  25.   (setvar "CMDECHO" 0)
  26.   (setq test T nn 0)
  27.   (while test
  28.     (setq ss (ssadd))
  29.     (setq ss (ssget))
  30.     (if (= nil ss)
  31.       (setq test nil)
  32.       (progn
  33. (setq len (sslength ss))
  34. (setq n 1 s 1)
  35. (while (<= n len)
  36.   (setq en1 (ssname ss (1- n)))
  37.   (setq a (entget en1))
  38.           (if (= "TEXT" (cdr (assoc 0 a)))
  39.     (progn
  40.               (setq txt (cdr (assoc 1 a)))
  41.               (unt txt "%%165" "")
  42.               (unt txt "%%166" "")
  43.               (setq post 1 stxt nil txt1 "" test1 nil test2 1)
  44.               (while (/= stxt "")
  45.                 (setq stxt (substr txt post 1))
  46.                 (if (and (> (ascii stxt) 160) (= test2 1))
  47.                   (progn
  48.                     (setq txt1 (strcat txt1 "%%165"))
  49.                     (setq test2 nil)
  50.                     (setq test1 1)
  51.                   )
  52.                 )
  53.                 (if (and (<= (ascii stxt) 160) (= test1 1))
  54.                   (progn
  55.                     (setq txt1 (strcat txt1 "%%166"))
  56.                     (setq test1 nil)
  57.                     (setq test2 1)
  58.                   )
  59.                 )
  60.                 (setq txt1 (strcat txt1 stxt))
  61.                 (setq post (1+ post))
  62.               )
  63.               (setq ent (subst (cons 1 txt1) (assoc 1 a) a))
  64.               (entmod ent)
  65.               (setq nn (1+ nn))
  66.     )
  67.   )
  68.   (setq n (1+ n))
  69. )
  70.       )
  71.     )
  72.   )
  73.   (princ (strcat (itoa nn) " 变化数 !"))
  74.   (princ)
  75. )