home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p053 / install1.img / ACAD.LSP next >
Encoding:
Lisp/Scheme  |  1993-08-27  |  9.2 KB  |  292 lines

  1. (defun MODES (a)
  2.    (setq MLST '())
  3.    (repeat (length a)
  4.       (setq MLST (append MLST (list (list (car a) (getvar (car a))))))
  5.       (setq a (cdr a))
  6.    )
  7. )
  8. (defun MODER ()
  9.    (repeat (length MLST)
  10.       (setvar (caar MLST) (cadar MLST))
  11.       (setq MLST (cdr MLST))
  12.    )
  13. )
  14. (defun myerror (st)
  15.    (if (/= st "Function cancelled")
  16.        (princ (strcat "\nError: " st))
  17.    )
  18.    (moder)
  19.    (setq *error* olderr)
  20.    (princ)
  21. )
  22. (defun RTD (y)
  23.    (* 180. (/ y pi))
  24. )
  25. (defun DTR (y)
  26.    (* pi (/ y 180.))
  27. )
  28. (defun C:CTEXT ()
  29.    (setvar "BLIPMODE" 0)
  30.    (setvar "CMDECHO" 0)
  31.    (modes '("BLIPMODE" "CMDECHO"))
  32.    (graphscr)
  33.    (princ "Please select HZ style:")
  34.    (initget 2 "Singleline-hz Doubleline-hz")
  35.    (setq hz (getstring "\nSingleline-hz/Doubleline-hz/<standard-hz>:"))
  36.    (cond ((eq hz "s")  (COMMAND "STYLE" "HZ" "TXT,HZTXT" "" "0.75" "" "" ""))
  37.          ((eq hz "d")  (COMMAND "STYLE" "HZ1" "TXT,HZTXT1" "" "0.75" "" "" ""))
  38.          ((eq hz "") (COMMAND "STYLE" "HZ0" "TXT,HZTXT0" "" "0.75" "" "" ""))
  39.          (T (princ "Unknown HZ style !"))
  40.          )
  41.    (setq cst (getvar "textstyle"))
  42.     (if (= interface nul) (setq interface "P"))
  43.     (if (or (= interface "W") (= interface "w"))
  44.         (princ "\nCurrent Interface is WBX")
  45.         (princ "\nCurrent Interface is Py.")
  46.     )
  47.    (setq olderr *error*
  48.          *error* myerror)
  49.    (modes '("BLIPMODE" "CMDECHO"))
  50.    (graphscr)
  51.    (initget 1 "Center Fit Middle Right Interface")
  52.    (setq pt (getpoint "\n<Start point or Center>/Fit/Middle/Right/Interface :"))
  53.    (if (/= (type pt) 'LIST)
  54.       (if (= pt "Interface")
  55.          (progn
  56.               (initget  "Wbx Py")
  57.               (setq interfaces (getkword  "\n Wbx or Py :"))
  58.               (setq interface (substr interfaces 1 1))
  59.               (setq pt (getpoint "\n<Start point or Center>/Fit/Middle/Right:"))
  60.            )
  61.       )
  62.    )
  63.    (if (/= (type pt) 'LIST)
  64.        (setq j (substr pt 1 1))
  65.        (setq j "L")
  66.    )
  67.  
  68.    (if (/= (type pt) 'LIST)
  69.        (if (= pt "Fit")
  70.            (progn
  71.               (initget 1)
  72.               (setq ptf (getpoint "Fist text line point: "))
  73.               (setq pt ptf)
  74.               (initget 1)
  75.               (setq pts (getpoint "Second text line point: "))
  76.               (setq k 1)
  77.            )
  78.            (progn
  79.               (initget 1)
  80.               (setq pt (getpoint (strcat "\n" pt " point: ")))
  81.            )
  82.        )
  83.   )
  84.   (initget 6)
  85.   (setq h (getdist pt (strcat "\nHeight <"
  86.                               (rtos (getvar "TEXTSIZE"))
  87.                                 ">: "
  88.                       )
  89.           )
  90.    )
  91.    (if (null h) (setq h (getvar "textsize")))
  92.    (if (/= k 1)
  93.     (progn
  94.      (if (null a$$)
  95.          (progn
  96.            (if (= (cdr (assoc 70 ts)) 4)   ;Vertical style text
  97.                (progn
  98.                  (setq a$$ 270)
  99.                  (prompt "\nRotational angle <270>: ")
  100.                )
  101.                (progn
  102.                  (setq a$$ 0)
  103.                  (prompt "\nRotational angle <0>: ")
  104.                )
  105.            )
  106.          )
  107.          (progn
  108.            (prompt "\nRotational angle <")
  109.            (princ (strcat (angtos a$$) ">: "))
  110.          )
  111.      )
  112.      (setq ang (getangle pt))
  113.      (if (null ang) (setq ang a$$))
  114.      (setq a$$ ang)
  115.     )
  116.    )
  117.   (if (or (= interface "P") (= interface "p")) (command "AVCAD")(command "AVCAD W"))
  118.   (setq f (open "chstr.dat" "r"))
  119.   (setq eoff 1)
  120.   (setq st (read-line f))
  121.   (cond ((and (= j "L") h)
  122.            (while (= eoff 1)
  123.                 (command "TEXT" "s" cst pt h (rtd ang) st)
  124.                 (setq OLDx (car pt))
  125.                 (setq oldy (cadr pt))
  126.                 (setq newX (+ oldX (* (sin ANG) H (/ 1. 0.6))))
  127.                 (setq newy (- oldy (* (cos ANG) H (/ 1. 0.6))))
  128.                 (setq pt (list NEWX NEWY))
  129.                 (setq st (read-line f))
  130.                 (if (= st   nil)(setq eoff 2))
  131.              )
  132.          )
  133.          ((and (/= j "L") (/= j "F") h)
  134.           (command "TEXT" "s" cst j pt h (rtd ang) st)
  135.          )
  136.          ((and (/= j "L") (= j "F") h)
  137.           (command "TEXT" "s" cst j ptf pts h st)
  138.          )
  139.       )
  140.    (moder)
  141.    (setq *error* olderr)
  142.    (close f)
  143.    (command "text" "s" cst ^c)
  144.    (redraw)
  145.    (princ)
  146. )
  147.  
  148.  
  149. (defun C:EPT (/ olds oldss olds1 stp h txt wf st x0 y0 l n yes
  150.                 TXTA TXT1 NN AR AD CL cst)
  151.    (setq olderr *error*
  152.          *error* myerror)
  153.    (setvar "BLIPMODE" 0)
  154.    (setvar "CMDECHO" 0)
  155.    (SETQ CL (GETVAR "CLAYER"))
  156.    (setq cst (getvar "textstyle"))
  157.    (setq olds (entsel "\nSelect the string :"))
  158.    (SETQ OLDSS (CAR OLDS))
  159.    (setq olds (entget  (car  olds)))
  160.    (setq olds1 (cdr (assoc 0 olds)))
  161.    (if (= "TEXT" oldS1)
  162.        ( progn
  163.           (COMMAND "ERASE" (SSADD OLDSS) "")
  164.           (COMMAND "LAYER" "S"  (CDR (ASSOC 8 OLDS)) "")
  165.           (setq stp  (trans (cdr (assoc 10 olds)) 0 1))
  166.           (setq h   (cdr (assoc 40 olds)))
  167.           (setq aR (cdr (assoc 50 olds)))
  168.           (setq aD  (RTD (cdr (assoc 50 olds))))
  169.           (setq txt (cdr (assoc 1 olds)))
  170.           (setq wf (Cdr (assoc 41 olds)))
  171.           (SETQ ST (CDR (ASSOC 7 OLDS)))
  172.           (SETQ X0 (CAR STP) Y0 (CADR STP))
  173.           (setq l (strlen txt))
  174.           (setq n 1) (setq nn 2)
  175.           (setq yes 1)
  176.           (while (<= N L)
  177.                   (setq tXT1 (substr txt n 2))
  178.                   (SETQ TXTA (ASCII TXT1))
  179.                   (setq nn (cond
  180.                             ((= TXT1 "%%") 3)
  181.                             ((> Txta 160) 2)
  182.                             ((< Txta 129) 1)
  183.                            )
  184.                   )
  185.                   (setq txt1 (substr txt n nn))
  186.                   (setq n (+ n nn))
  187.                   (command "text" "S" ST stp h aD txt1)
  188.  
  189.                   (IF (= NN 2)
  190.                       (PROGN
  191.                          (cond ((eq cst "HZ")   (setq wscale 1.0625))
  192.                                ((eq cst "HZ1")  (setq wscale 1.20))
  193.                                ((eq cst "HZ0")  (setq wscale 1.40))
  194.                               )
  195.                          (SETQ X0 (+ X0 (* (cos aR)  H WF wscale)))
  196.                          (SETQ y0 (+ Y0 (* (sin aR)  H WF wscale)))
  197.                       )
  198.                       (PROGN
  199.                          (SETQ JF (COND
  200.                                      ((= TXTA 49) 0.65)
  201.                                      ((= TXTA 46) 0.3)
  202.                                      (T 1)
  203.                                   )
  204.                           )
  205.                          (setq wf1 (* JF WF))
  206.                          (SETQ X0 (+ X0 (* (cos aR)  H WF1)))
  207.                          (SETQ y0 (+ Y0 (* (sin aR)  H WF1)))
  208.                       )
  209.                    )
  210.                   (SETQ STP (LIST X0 Y0))
  211.  
  212.          )
  213.      )
  214.   )
  215.  (COMMAND "LAYER" "S" CL "")
  216.   (command "text" "s" cst ^c)
  217.  (setq *error* olderr)
  218.  (princ)
  219. )
  220.  
  221. (DEFUN C:HZFILE(/ TXT SP TH INS WD STL LS DT)
  222. (setvar "BLIPMODE" 0)
  223. (SETVAR "CMDECHO" 0)
  224. (modes '("BLIPMODE" "CMDECHO"))
  225. (graphscr)
  226. (SETQ TXT (OPEN (GETSTRING "\n Name of Text File(WordStar): ") "r"))
  227. (SETQ SP (GETPOINT "\n Text String Start Point :"))
  228. (SETQ INS (GETSTRING"\n Enter Line Spacing in Drawing Units :"))
  229. (SETQ HT (GETSTRING "\n Enter Text Height in Drawing Units :"))
  230. (SETQ WD (GETSTRING "\n Enter Text Width Factor :"))
  231. (princ "Please select HZ style:")
  232. (initget 2 "Singleline-hz Doubleline-hz")
  233. (setq hz (getstring "\nSingleline-hz/Doubleline-hz/<standard-hz>:"))
  234. (setq pname (getvar "dwgprefix"))
  235. (cond ((eq hz "s")  (COMMAND "STYLE" "HZ" "txt,hztxt" HT WD "" "" ""))
  236.       ((eq hz "d")  (COMMAND "STYLE" "HZ1" "txt,hztxt1" HT WD "" "" ""))
  237.       ((eq hz "")   (COMMAND "STYLE" "HZ0" "txt,hztxt0" HT WD "" "" ""))
  238.       (T (princ "Unknown HZ style ! Restart HZFILE command."))
  239.       )
  240.  
  241. (SETQ DT (READ-LINE TXT))
  242. (SETQ LS (STRCAT "@"INS"<-90"))
  243. (COMMAND"TEXT" SP "" DT)
  244. (WHILE (/= DT NIL)
  245. (SETQ DT (READ-LINE TXT))
  246. (COMMAND"TEXT" LS "" DT)
  247. )
  248. (COMMAND"REDRAW")
  249. )
  250.  
  251. ; For other Autolisp aplication
  252. (DEFUN C:BOX () (LOAD "BOX")(C:BOX))
  253. (DEFUN C:MXB () (LOAD "MXB")(C:MXB))
  254. (DEFUN C:CL  () (LOAD "CL")(C:CL))
  255. (DEFUN C:TH () (LOAD "TH")(C:TH))
  256. (DEFUN C:LD  () (LOAD "LEADER")(C:LD))
  257. (DEFUN C:CHGTEXT () (LOAD "CHGTEXT")(C:CHGTEXT))
  258. (DEFUN C:LTEXT ()  (LOAD "LTEXT")(C:LTEXT))
  259. (DEFUN C:LEXPLODE ()  (LOAD "LEXPLODE")(C:LEXPLODE))
  260. (DEFUN SSX () (LOAD "SSX")(SSX))
  261.  
  262. ;Setup environment
  263. (DEFUN C:ENVIRON () (LOAD "ENVIRON")(C:ENVIRON))
  264.  
  265.  
  266. ;For clean memery
  267. (defun C:CLEAN () (SETQ ATOMLIST (MEMBER 'C:CLEAN ATOMLIST)))
  268.  
  269. ;For ctext, box ,mxb, ld ,...
  270. (DEFUN S::STARTUP ()
  271.    (setvar "cmdecho" 0)
  272.    (setvar "blipmode" 0)
  273.  
  274.   (IF (= (TBLSEARCH "STYLE" "A") NUL) 
  275.        (COMMAND "STYLE" "A" "COMPLEX" "6" "0.8" "" "" "" ""))
  276.   (IF (= (TBLSEARCH "STYLE" "HZ") NUL)
  277.       (COMMAND "STYLE" "HZ" "TXT,HZTXT" "" "0.75" "" "" ""))
  278.   (IF (= (TBLSEARCH "STYLE" "ASC") NUL)
  279.       (COMMAND "STYLE" "ASC" "TXT" "" "0.75" "" "" "" ""))
  280.   (IF (= (TBLSEARCH "LAYER" "1") NUL)
  281.       (COMMAND "LAYER" "N" "1" "C" "1" "1" "LT" "CENTER" "1" ""))
  282.   (IF (= (TBLSEARCH "LAYER" "4") NUL)
  283.       (COMMAND "LAYER" "N" "4" "C" "4" "4" "LT" "" "1" ""))
  284.   (IF (= (TBLSEARCH "LAYER" "5") NUL)
  285.       (COMMAND "LAYER" "N" "5" "C" "6" "5" "LT" "" "5" ""))
  286.  
  287.   (setvar "textsize" 4.8)
  288.    (princ)
  289.  )
  290. ;
  291. (princ)
  292.