CUL.LSP
资源名称:C.rar [点击查看]
上传用户:qq5388545
上传日期:2022-07-04
资源大小:29849k
文件大小:9k
源码类别:

界面编程

开发平台:

C/C++

  1.  
  2. (DEFUN UCSPP (PO_BAS) (COMMAND "UCS" "O" PO_BAS))
  3. (defun c:zy(/ N_POI Q_POI E_POI K_POI WJ1 WJ2 WJ3)
  4.  (setvar "cmdecho" 0)
  5.  (command "limits" "" "1200,900" "zoom" "a")
  6.  (setvar "mirrtext" 0)
  7. ;; (SETQ PO_BAS (GETPOINT "n绘图基点:"))
  8.   (setq po_bas '(100 400))
  9.  (setq 
  10.      wjm (getstring "n输入文件:")
  11.      th  (getstring "n输入图号:")
  12.        N_POI (POLAR PO_BAS 0.0 200)
  13.        Q_POI (POLAR PO_BAS 0.0 400)
  14.      ;  E_POI (POLAR PO_BAS 0.0 600)
  15.        K_POI (POLAR PO_BAS 0.0 600)
  16.  )
  17.  (CULSTAR WJM)
  18.  (cul wjm)
  19.  (command "color" "7")
  20.  (setvar "cmdecho" 1)
  21. );DEFUN
  22. (DEFUN TEXTL3 (P ANG T) (COMMAND "TEXT" "J" "ML" P '3.0 ANG T))
  23. (DEFUN TEXTR3 (P ANG T) (COMMAND "TEXT" "J" "MR" P '3.0 ANG T))
  24. (DEFUN TEXTM5 (P T) (COMMAND "TEXT" "J" "M" P '5.0 0.0 T))
  25. (DEFUN FSCA(A) (* A 10.0)) 
  26. (DEFUN SCA(A MAXABS) (* A (/ 10.0 MAXABS)))
  27. (DEFUN MAXMIN (LST NUM / N)
  28.       (SETQ N '0
  29.             MAX (NTH N LST)
  30.             MIN (NTH N LST)
  31.       )
  32.       (WHILE (<= N NUM)
  33.           (SETQ MA (NTH N LST)
  34.                 MI (NTH N LST)
  35.           )
  36.           (IF (<= MAX MA) (SETQ MAX MA))
  37.           (IF (>= MIN MI) (SETQ MIN MI))
  38.           (SETQ N (+ 1 N))
  39.      )
  40.      (IF (<= (ABS MAX) (ABS MIN)) 
  41.          (SETQ MAXABS (ABS MIN))
  42.          (SETQ MAXABS (ABS MAX))
  43.      )
  44. );DEFUN
  45. (DEFUN CUL(XXX / F CO ANG M N Q E K) 
  46.  (setq f (open XXX "r")
  47.        first '0 )
  48.        
  49.  (setq con (read-line f))
  50.  (while con
  51.  (setq
  52.        JJJ '1
  53.        co (read con)
  54.        CEN (LIST (FSCA (CAR (CAR CO))) (FSCA (CADR (CAR CO))))
  55.        SPO (LIST (FSCA (CAR (CADR CO))) (FSCA (CADR (CADR CO))))
  56.        EPO (LIST (FSCA (CAR (CADDR CO))) (FSCA (CADR (CADDR CO))))
  57.        NUM (CADDDR CO)
  58.        RADU (DISTANCE CEN SPO)
  59.  )
  60.  (SETQ 
  61.       con (READ-LINE F)
  62.       CO (READ con)
  63.       ANG (CAR CO)
  64.       M (CADR CO)
  65.       N (* -1.0 (CADDR CO))
  66.       Q (CADDDR CO)
  67.       E (NTH 4 CO)
  68.       K (NTH 5 CO)
  69.     LANG (LIST ANG)
  70.  )
  71.  (IF (= FIRST 1)
  72.     (SETQ LM (LIST ENDM)
  73.           LN (LIST ENDN)
  74.           LQ (LIST ENDQ)
  75.           LE (LIST ENDE) 
  76.           LK (LIST ENDK)
  77.     )
  78.     (SETQ LM (LIST M)
  79.           LN (LIST N)
  80.           LQ (LIST Q)
  81.           LE (LIST E) 
  82.           LK (LIST K)
  83.     )
  84.     
  85.  )
  86.  (WHILE (<= JJJ NUM)
  87.   (SETQ CO (READ (READ-LINE F))
  88.       ANG (CAR CO)
  89.       M (CADR CO)
  90.       N (* -1.0 (CADDR CO))
  91.       Q (CADDDR CO)
  92.       E (NTH 4 CO)
  93.       K (NTH 5 CO)
  94.      LANG (APPEND LANG (LIST ANG))
  95.      LM (APPEND LM (LIST M))
  96.      LN (APPEND LN (LIST N))
  97.      LQ (APPEND LQ (LIST Q))
  98.      LE (APPEND LE (LIST E))
  99.      LK (APPEND LK (LIST K))
  100.   )
  101.    
  102.    (IF (= JJJ NUM)
  103.        (SETQ ENDM M 
  104.              ENDN N 
  105.              ENDQ Q 
  106.              ENDE E 
  107.              ENDK K 
  108.        )
  109.    )      
  110.    
  111.    (SETQ  JJJ (+ 1 JJJ)
  112.    )
  113.   
  114.  );WHILE---1 
  115. ;;;;;;;;;;;;;;;;弯矩图  
  116.  (ucspp po_bas)
  117.  (m123 lm MAXM)
  118.  (command "mirror" "w" "-25,-55" "90,80" "" "0,0" "0,100" "")
  119.  (command "ucs" "w")
  120.  (textm5 (polar po_bas (* 1.5 pi) 60.0) "弯 矩 图")
  121.  (textm5 (polar po_bas (* 1.5 pi) 70.0) th)
  122. ;;;;;;;;;;;;;;;;轴力图 
  123.  (ucspp N_POI)
  124.  (m123 LN MAXN)
  125.  (command "mirror" "w" '(-25 -55) '(90 80) "" '(0 0) '(0 100) "")
  126.  (command "ucs" "w")
  127.  (textm5 (polar N_POI (* 1.5 pi) 60.0) "轴 力 图")
  128.  (textm5 (polar N_POI (* 1.5 pi) 70.0) th)
  129. ;;;;;;;;;;;;;;;;剪力图 
  130.  (ucspp Q_POI)
  131.  (m123 LQ MAXQ)
  132.  (command "mirror" "w" '(-25 -55) '(90 80) "" '(0 0) '(0 100) "")
  133.  (command "ucs" "w")
  134.  (textm5 (polar Q_POI (* 1.5 pi) 60.0) "剪 力 图")
  135.  (textm5 (polar Q_POI (* 1.5 pi) 70.0) th)
  136. ;;;;;;;;;;;;;;;;偏心矩图 
  137. ; (ucspp E_POI)
  138. ; (m123 LE MAXE)
  139. ; (command "mirror" "w" '(-25 -55) '(90 80) "" '(0 0) '(0 100) "")
  140. ; (command "ucs" "w")
  141. ; (textm5 (polar E_POI (* 1.5 pi) 60.0) "偏 心 距 图")
  142. ; (textm5 (polar E_POI (* 1.5 pi) 70.0) th)
  143. ;;;;;;;;;;;;;;;;安全系数图 
  144.  (ucspp K_POI)
  145.  (m123 LK MAXK)
  146.  (command "mirror" "w" '(-25 -55) '(90 80) "" '(0 0) '(0 100) "")
  147.  (command "ucs" "w")
  148.  (textm5 (polar K_POI (* 1.5 pi) 60.0) "安 全 系 数 图")
  149.  (textm5 (polar K_POI (* 1.5 pi) 70.0) th)
  150. ;;;;;;;;;;;;;;;;弯矩图  
  151.  
  152.  (if (= first 0)
  153.   (setq first '1)
  154.  )
  155. (setq con (read-line f))
  156. );;;----2--while
  157. (CLOSE F)
  158. );;;DEFUN
  159. (DEFUN M123(zy MAX / N NN AAA BBB) 
  160. (COMMAND "ARC" "C" CEN EPO SPO)
  161. ;;;;画弯矩图 
  162.  
  163. ;;;;;;;    (MAXMIN zy NUM)
  164.  
  165.  (SETQ N '0)
  166.  (SETQ 
  167.       AAA (NTH N LANG)
  168.       BBB (+ RADU (SCA (NTH N zy) MAX))
  169.       MPO (list (polar cen AAA BBB))
  170.       N (+ 1 N)
  171.  )
  172.  (WHILE (<= N NUM)
  173.     (SETQ 
  174.           AAA (NTH N LANG)
  175.           BBB (+ RADU (SCA (NTH N zy) MAX))
  176.           MPO (APPEND MPO (list (polar cen AAA BBB)))
  177.           N (+ 1 N)
  178.     )
  179.  )
  180.  (SETVAR "CMDECHO" 0)
  181.  (SETVAR "BLIPMODE" 0)
  182.  (command "color" "1")
  183.  (2spline mpo)
  184.  (command "color" "4")
  185.  (if (= first 0)
  186.      (SETQ NN '0)
  187.      (setq NN '1)
  188.  )
  189.  (WHILE (<= NN NUM)
  190.         (TEXTL3 (NTH NN MPO) (ATOF (ANGTOS (NTH NN LANG) 0 6)) 
  191.                 (RTOS (NTH NN zy) 2 2)
  192.         )  
  193.         (SETQ NN (+ 1 NN))
  194.  )
  195.  (SETVAR "CMDECHO" 1)
  196.  (SETVAR "BLIPMODE" 1)
  197.  (command "color" "7")
  198.  (PRINC)
  199. );DEFUN------M123
  200. ;;;;;;;;;;;;;;;;;;;;;;;曲线拟合
  201. (defun b2spline(x0 y0 x1 y1 x2 y2 n / a0 a1 a2 a3
  202.                 b0 b1 b2 b3 dt inn t tt ut x y )
  203.  (setq a0 (/ (+ x0 x1) 2.0)
  204.        b0 (/ (+ y0 y1) 2.0)
  205.        a1 (- x1 x0)
  206.        b1 (- y1 y0)
  207.        a2 (/ (+ x0 (* -2.0 x1) x2) 2.0)
  208.        b2 (/ (+ y0 (* -2.0 y1) y2) 2.0)
  209.        dt (/ 1.0 n)
  210.        inn '0
  211.  );---------------setq
  212.  (setq kw '0)
  213.  (while (< inn n)
  214.      (if (= kw 0)
  215.        (setq t (* inn dt)
  216.              tt (* t t)
  217.              x (+ a0 (* a1 t) (* a2 tt))   
  218.              y (+ b0 (* b1 t) (* b2 tt))
  219.              p_list (list (list x y))
  220.        )
  221.        
  222.        (setq t (* inn dt)
  223.              tt (* t t)
  224.              x (+ a0 (* a1 t) (* a2 tt))   
  225.              y (+ b0 (* b1 t) (* b2 tt))
  226.              tlist (list x y)
  227.              p_list (cons tlist p_list)
  228.        
  229.        )
  230.     );;;;if
  231.     (setq kw (+ 1 kw))
  232.    
  233.    (setq inn (+ 1 inn))
  234.  );while
  235.           (SETQ   
  236.              tlist (list (/ (+ X1 x2) 2.0) (/ (+ Y1 Y2) 2.0))
  237.              p_list (cons tlist p_list)
  238.          )
  239.  (command "pline")
  240.  (foreach py p_list (command py))
  241.  (command "")
  242. );defun-----b3pline
  243. (defun 2spline(mpo / k1 lenlis p$1 p$2 p$3 x0 x1 x2 y0 y1 y2) 
  244.  (setq k1 '0
  245.        lenlis (length mpo)
  246.  )
  247.   (while (<= k1 (- lenlis 3)) 
  248.     (setq p$1 (nth k1 mpo)
  249.           p$2 (nth (+ 1 k1) mpo)
  250.           p$3 (nth (+ 2 k1) mpo)
  251.           x0 (car p$1)
  252.           y0 (cadr p$1)
  253.           x1 (car p$2)
  254.           y1 (cadr p$2)
  255.           x2 (car p$3)
  256.           y2 (cadr p$3)
  257.     )
  258.    (if (= k1 0) 
  259.     (b2spline x0 y0 x0 y0 x1 y1 8)
  260.    )
  261.     (b2spline x0 y0 x1 y1 x2 y2 8)
  262.     (setq k1 (+ 1 k1))
  263.   )
  264.     (b2spline x1 y1 x2 y2 x2 y2 8)
  265. );defun
  266. (DEFUN CULstar(XXX / F CO ANG M N Q E K) 
  267.  (setq f (open XXX "r")
  268.        first '0 )
  269.  (setq con (read-line f))
  270.  (while con
  271.  (setq
  272.        JJJ '1
  273.        co (read con)
  274.        CEN (LIST (FSCA (CAR (CAR CO))) (FSCA (CADR (CAR CO))))
  275.        SPO (LIST (FSCA (CAR (CADR CO))) (FSCA (CADR (CADR CO))))
  276.        EPO (LIST (FSCA (CAR (CADDR CO))) (FSCA (CADR (CADDR CO))))
  277.        NUM (CADDDR CO)
  278.        RADU (DISTANCE CEN SPO)
  279.  )
  280.  ;(princ num)
  281.  (SETQ 
  282.       con (READ-LINE F)
  283.       CO (READ con)
  284.       ANG (CAR CO)
  285.       M (CADR CO)
  286.       N (* -1.0 (CADDR CO))
  287.       Q (CADDDR CO)
  288.       E (NTH 4 CO)
  289.       K (NTH 5 CO)
  290.     LANG (LIST ANG)
  291.  )
  292.  (IF (= FIRST 1)
  293.     (SETQ LM (LIST ENDM)
  294.           LN (LIST ENDN)
  295.           LQ (LIST ENDQ)
  296.           LE (LIST ENDE) 
  297.           LK (LIST ENDK)
  298.     )
  299.     (SETQ LM (LIST M)
  300.           LN (LIST N)
  301.           LQ (LIST Q)
  302.           LE (LIST E) 
  303.           LK (LIST K)
  304.     )
  305.     
  306.  )
  307.  (WHILE (<= JJJ NUM)
  308.   (SETQ CO (READ (READ-LINE F))
  309.       ANG (CAR CO)
  310.       M (CADR CO)
  311.       N (* -1.0 (CADDR CO))
  312.       Q (CADDDR CO)
  313.       E (NTH 4 CO)
  314.       K (NTH 5 CO)
  315.      LANG (APPEND LANG (LIST ANG))
  316.      LM (APPEND LM (LIST M))
  317.      LN (APPEND LN (LIST N))
  318.      LQ (APPEND LQ (LIST Q))
  319.      LE (APPEND LE (LIST E))
  320.      LK (APPEND LK (LIST K))
  321.   )
  322.    
  323.    (IF (= JJJ NUM)
  324.        (SETQ ENDM M 
  325.              ENDN N 
  326.              ENDQ Q 
  327.              ENDE E 
  328.              ENDK K 
  329.        )
  330.    )      
  331.    
  332.    (SETQ  JJJ (+ 1 JJJ)
  333.    )
  334.   
  335.  );WHILE---1 
  336. ;;;;;;;;;;;;;;;;弯矩图  
  337.  (IF (= FIRST 0)
  338.    (SETQ MAXM (MAXMIN LM (- (LENGTH LM) 1)))
  339.    (if (< maxm (MAXMIN LM (- (LENGTH LM) 1))
  340.        )
  341.        (SETQ MAXM (MAXMIN LM (- (LENGTH LM) 1)))
  342.    )
  343.  )
  344. ;;;;;;;;;;;;;;;;轴力图 
  345.  (IF (= FIRST 0)
  346.    (SETQ MAXN (MAXMIN LN (- (LENGTH LN) 1)))
  347.    (if (< maxN (MAXMIN LN (- (LENGTH LN) 1))
  348.        )
  349.        (SETQ MAXN (MAXMIN LN (- (LENGTH LN) 1)))
  350.    )
  351.  )
  352. ;;;;;;;;;;;;;;;;剪力图 
  353.  (IF (= FIRST 0)
  354.    (SETQ MAXQ (MAXMIN LQ (- (LENGTH LQ) 1)))
  355.    (if (< MAXQ (MAXMIN LQ (- (LENGTH LQ) 1))
  356.        )
  357.        (SETQ MAXQ (MAXMIN LQ (- (LENGTH LQ) 1)))
  358.    )
  359.  )
  360. ;;;;;;;;;;;;;;;;偏心矩图 
  361.  (IF (= FIRST 0)
  362.    (SETQ MAXE (MAXMIN LE (- (LENGTH LE) 1)))
  363.    (if (< MAXE (MAXMIN LE (- (LENGTH LE) 1))
  364.        )
  365.        (SETQ MAXE (MAXMIN LE (- (LENGTH LE) 1)))
  366.    )
  367.  )
  368. ;;;;;;;;;;;;;;;;安全系数图 
  369.  (IF (= FIRST 0)
  370.    (SETQ MAXK (MAXMIN LK (- (LENGTH LK) 1)))
  371.    (if (< MAXK (MAXMIN LK (- (LENGTH LK) 1))
  372.        )
  373.        (SETQ MAXK (MAXMIN LK (- (LENGTH LK) 1)))
  374.    )
  375.  )
  376. ;;;;;;;;;;;;;;;;弯矩图  
  377.  
  378.  (if (= first 0)
  379.   (setq first '1)
  380.  )
  381. (setq con (read-line f))
  382. );;;----2--while
  383. (CLOSE F)
  384. );;;DEFUN