home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p065 / 4.img / ENU3.LSP < prev    next >
Encoding:
Text File  |  1992-02-01  |  5.9 KB  |  184 lines

  1. (vmon)
  2.  
  3. (defun nuerr(s)
  4.    (if (/= s "Function cancelled")
  5.        (princ (strcat "\nError:" s))
  6.    )
  7.    (command "layer" "s" "0" "")
  8.    (setvar "osmode" 0)
  9.    (setvar "cmdecho" 1)
  10.    (setq *error* oer)
  11.    (princ)
  12. )
  13.  
  14. (defun C:ENUER(/ l th h x a2 len p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 oer)
  15.    (setvar "cmdecho" 0)
  16.    (setq oer *error* *error* nuerr)
  17.    (setq l 0 th 0 h 0 x "")
  18.    (setq l (getdist "\n╠⌠╤╪│ñ╢╚:"))
  19.    (if (> l 0) (progn
  20.    (setq th (getdist "\n╠⌠╤╪║±╢╚:"))
  21.    (setq h (getdist "\n┼«╢∙╟╜╕▀╢╚:"))
  22.    (initget 1 "Yes No")
  23.    (setq x (getkword "\n╙╨╞┬╤╪╖± (Yes or No) "))
  24.    (if (= x "Yes") (progn
  25.    (if (= h 0) (progn
  26.        (setq a2 (getreal "\n╞┬╤╪╜╟╢╚:"))
  27.        (setq len (getdist "\n╞┬╤╪│ñ╢╚:"))
  28.    ))
  29.    ))
  30.    )(setq h (getdist "\n┼«╢∙╟╜╕▀╢╚:")))
  31.    (setvar "osmode" 1)
  32.    (setq p1 (getpoint "\n╞≡╩╝╡π:"))
  33.    (setq p2 (getpoint p1 "\n╢╘│╞╡π:"))
  34.    (setvar "osmode" 0)
  35.    (command "layer" "m" "eother" "")
  36.    (if (= l 0) (progn
  37.        (setq p3 (polar p1 1.57079 h))
  38.        (setq p4 (polar p2 1.57079 h))
  39.        (command "pline" p1 "w" 0 0 p3 p4 p2 "")
  40.        )
  41.    (progn
  42.        (if (= x "Yes") (progn
  43.        (setq p3 (polar p1 pi l) p4 (polar p3 1.57079 th))
  44.        (if (> h 0) (setq p5 (polar p1 1.57079 h)) (setq p5 (polar p4 (/ (* a2 pi) 180.0) len)))
  45.        (setq p6 (polar p2 0 l) p7 (polar p6 1.57079 th))
  46.        (if (> h 0) (setq p8 (polar p2 1.57079 h)) (setq p8 (polar p7 (/ (* (+ 90 (- 90 a2)) pi) 180.0) len)))
  47.        (if (= th 0) (command "pline" p1 "w" 0 0 p3 p5 p8 p6 p2 "") (progn (command "pline" p1 "w" 0 0 p3 p4 p5 p8 p7 p6 p2 "") (command "pline" p4 p7 "")))
  48.        )
  49.        (progn
  50.        (if (= h 0) (progn
  51.        (setq p3 (polar p1 pi l) p4 (polar p3 1.57079 th))
  52.        (setq p5 (polar p2 0 l) p6 (polar p5 1.57079 th))
  53.        (setq p7 (polar p1 1.57079 th) p8 (polar p7 0.524 th))
  54.        (setq p9 (polar p2 1.57079 th) p10 (polar p9 2.62 th))
  55.        (command "pline" p1 "w" 0 0 p3 p4 p6 p5 p2 "")
  56.        (command "pline" p7 p8 p10 p9 "")
  57.        ) (progn
  58.        (setq p3 (polar p1 pi l) p4 (polar p3 1.57079 th))
  59.        (setq p5 (polar p2 0 l) p6 (polar p5 1.57079 th))
  60.        (setq p7 (polar p1 1.57079 th) p8 (polar p2 1.57079 th))
  61.        (setq p9 (polar p1 1.57079 h) p10 (polar p2 1.57079 h))
  62.        (command "pline" p1 "w" 0 0 p3 p4 p6 p5 p2 "")
  63.        (command "pline" p7 p9 p10 p8 "")
  64.        ))
  65.        ))
  66.    ))
  67.    (command "layer" "s" "0" "")
  68.    (setvar "cmdecho" 1)
  69.    (setq *error* oer)
  70.    (princ)
  71. )
  72.  
  73. (defun dtr(a)
  74.      (* pi (/ a 180.0))
  75. )
  76.  
  77. (defun C:NUER(/ oer th l h x a2 len p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 dh uh s1 lw ss se px lk sn)
  78. (setvar "cmdecho" 0)
  79. (setq oer *error* *error* nuerr)
  80. (setq th 150 l 0 dh 0 uh 0 h 0 len 0 a2 0 x "")
  81. (setq s1 (getstring "\n╤í╘±┼«╢∙╟╜╩╜╤∙4/3/2/<1>:"))
  82. (if (= s1 "") (setq s1 "1"))
  83. (if (and (>= s1 "1") (<= s1 "4")) (progn
  84. (cond ((= s1 "1") (setq h (getdist "\n┼«╢∙╟╜╕▀:")))
  85.        ((= s1 "2") (setq a2 (getreal "\n╞┬╤╪╜╟╢╚:"))
  86.                    (setq len (getdist "\n╞┬╤╪│ñ╢╚:"))
  87.                    (setq x "Yes"))
  88.         ((= s1 "4") (setq h (getdist "\n┼«╢∙╟╜╕▀:") x "Yes"))
  89. )
  90. (setq l (getdist "\n╠⌠╤╪│ñ:"))
  91. (if (or (and (= s1 "1") (> l 0)) (> s1 "1")) (progn
  92.   (setq th (getdist "\n╠⌠╤╪░σ║±╢╚:"))
  93.   (setq uh (getdist "\n╔╧╖┤╤╪│ñ╢╚:"))
  94.   (setq dh (getdist "\n╧┬╖┤╤╪│ñ╢╚:"))
  95. ))
  96. (setq a0 -90 a1 90)
  97. (setvar "osmode" 1)
  98. (setq p1 (getpoint "\n╞≡╩╝╡π:"))
  99. (setvar "osmode" 0)
  100. (command "layer" "m" "sother" "") 
  101. (setq ss (ssget p1))
  102. (setq lw (* 0.5 (getvar "userr1")))
  103. (if ss (progn
  104. (setq sn (ssname ss 0) en (entget sn) ename (cdr (assoc 0 en)))
  105. (if (= ename "POLYLINE") (setq lw (cdr (assoc 40 en))))
  106. ))
  107. (setq p2 (polar p1 (dtr -90) (/ th 2)))
  108. (setq p3 (polar p2 (dtr 180) l))
  109. (setq p4 (polar p3 (dtr a0) dh))
  110. (setq p5 (polar p3 (dtr a1) uh))
  111. (setq p6 (polar p1 (dtr 90) h))
  112. (setq p7 (polar p6 (dtr 0) 240))
  113. (setq p8 (polar p7 (dtr -90) (+ h (/ th 2.0))))
  114. (setq p9 (polar p2 (dtr 0) (+ 240 (/ lw 2.0))))
  115. (setq ss nil ss (ssadd))
  116. (if (eq "Yes" x) (if (> h 0) (setq p10 p6) (setq p10 (polar p5 (dtr a2) len))))
  117. (if (= x "Yes") (command "pline" p2 "w" th th p3 p5 "w" lw lw p10 "") (command "pline" p2 "w" th th p3 p5 ""))
  118.  (setq se (entlast))
  119.  (ssadd se ss)
  120. (command "pline" p3 "w" th th p4 "")
  121.  (setq se (entlast))
  122.  (ssadd se ss)
  123. (if (> l 0) (progn
  124.   (command "pline" p2 "w" th th p9 "")
  125.    (setq se (entlast))
  126.   (ssadd se ss)))
  127. (if (> h 0) (progn
  128. (command "pline" p1 "w" lw lw p6 "w" (* 1.2 lw) (* 1.2 lw) p7 "w" lw lw p8 "")
  129. (setq se (entlast))
  130.   (ssadd se ss)))
  131. (setvar "osmode" 1)
  132. (setq px (getpoint "\n ╢╘│╞╡─┴φ╥╗╡π:"))
  133. (setvar "osmode" 0) 
  134. (if (/= px nil) (progn
  135. (setq lk (distance p1 px))
  136. (setq p11 (polar p1 (dtr 0) (/ lk 2)))
  137.  (if (> h 0) (progn
  138. (setq p12 (polar p11 (dtr 90) h))
  139. (command "line" p7 p12 "")
  140. (setq se (entlast))
  141. (ssadd se ss)
  142. (setq p13 (polar p8 (dtr 90) 120))
  143. (setq p14 (polar p11 (dtr 90) 120))
  144. (command "line" p13 p14 "")
  145. (setq se (entlast))
  146. (ssadd se ss)
  147.  (command "mirror" ss "" p11 p12 "")))
  148. (if (= h 0) (progn
  149. (if (eq "Yes" x) (progn
  150. (setq p13 (polar p8 (dtr 90) 120 ))
  151. (setq p14 (polar p11 (dtr 90) 180))
  152. (setq p12 (polar p11 (dtr 90) (- (+ (* uh (sin (dtr a1))) (* len (sin           (dtr a2)))) (/ th 2))))
  153. (command "line" p1 p13 "")
  154. (setq se (entlast))
  155. (ssadd se ss)
  156. (command "line" p13 p14 "")
  157. (setq se (entlast))
  158. (ssadd se ss)
  159. (command "line" p10 p12 "")
  160. (setq se (entlast))
  161. (ssadd se ss)
  162. (command "mirror" ss "" p11 p12 "")))
  163. (if (/= x "Yes") (progn
  164. (setq p13 (polar p8 (dtr 90) 120))
  165. (setq p14 (polar p11 (dtr 90) 180))
  166. (command "line" p1 p13 "")
  167. (setq se (entlast))
  168. (ssadd se ss)
  169. (command "line" p13 p14 "")
  170. (setq se (entlast))
  171. (ssadd se ss)
  172. (if (> uh 180) (progn
  173. (setq p12 (polar p11 (dtr 90) (- (* uh (sin (dtr a1))) (/ th 2))))
  174. (command "line" p5 p12 "")
  175. (setq se (entlast))
  176. (ssadd se ss)))
  177. (command "mirror" ss "" p11 p14 "")))))
  178. )))) ;endif
  179. (command "layer" "s" "0" "")
  180. (setvar "cmdecho" 1)
  181. (setq *error* oer)
  182. (princ)
  183. )
  184.