home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / 圆方5.0 / SETUP / STEP.LSP < prev    next >
Encoding:
Lisp/Scheme  |  1998-04-07  |  24.7 KB  |  726 lines

  1. (defun slad1 ( data / )
  2.  
  3.     (if (not (new_dialog "ladder1" dcl_id))
  4.         (exit)
  5.     )
  6.  
  7.     (set_tile "step_width"      (nth 0 data))
  8.     (set_tile "ladder_width"    (nth 1 data))
  9.     (set_tile "base_width"      (nth 2 data))
  10.     (set_tile "base_hight"      (nth 3 data))
  11.     (set_tile "floor_thick"     (nth 4 data))
  12.     (set_tile "ladder_hight"    (nth 5 data))
  13.     (set_tile "step_num"        (nth 6 data))
  14.     (set_tile "is_3d" "1")
  15.  
  16.         (setq x (dimx_tile "image"))
  17.         (setq y (dimy_tile "image"))
  18.         (start_image "image")
  19.         (slide_image 0 0 x y "LADDER1")
  20.         (end_image)
  21.  
  22.     (action_tile "ok" "(ok_slad1)")
  23.  
  24.     (if (= 1 (start_dialog))
  25.         (progn
  26.             (setq pt (getpoint MSG007))
  27.  
  28.             (command "UNDO" "G")
  29.             (blk_header pt)
  30.             (c_ladder1 pt 0.0 step_width ladder_width base_width base_hight
  31.                             floor_thick ladder_hight step_num is_3d)
  32.             (blk_end pt 0.0)
  33.             (command "UNDO" "E")
  34.         )
  35.     )
  36. )
  37.  
  38. (defun ok_slad1 ( / )
  39.     (setq step_width   (atof (get_tile "step_width")))
  40.     (setq step_num     (atoi (get_tile "step_num")))
  41.     (setq ladder_width (atof (get_tile "ladder_width")))
  42.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  43.     (setq base_width   (atof (get_tile "base_width")))
  44.     (setq base_hight   (atof (get_tile "base_hight")))
  45.     (setq floor_thick  (atof (get_tile "floor_thick")))
  46.     (setq is_3d        (atoi (get_tile "is_3d")))
  47.     (done_dialog 1)
  48. )
  49.  
  50. (defun slad2 (data / )
  51.  
  52.     (if (not (new_dialog "ladder2" dcl_id))
  53.         (exit)
  54.     )
  55.  
  56.     (set_tile  "step_width"      (nth 0 data))
  57.     (set_tile  "ladder_width"    (nth 1 data))
  58.     (set_tile  "base_width"      (nth 2 data))
  59.     (set_tile  "base_hight"      (nth 3 data))
  60.     (set_tile  "step_thick"      (nth 4 data))
  61.     (set_tile  "floor_thick"     (nth 5 data))
  62.     (set_tile  "floor_length"    (nth 6 data))
  63.     (set_tile  "floor_width"     (nth 7 data))
  64.     (set_tile  "left_yard"       (nth 8 data))
  65.     (set_tile  "ladder_hight"    (nth 9 data))
  66.     (set_tile  "step_num"        (nth 10 data))
  67.     (set_tile "is_3d" "1")
  68.  
  69.         (setq x (dimx_tile "image"))
  70.         (setq y (dimy_tile "image"))
  71.         (start_image "image")
  72.         (slide_image 0 0 x y "LADDER2")
  73.         (end_image)
  74.  
  75.         (action_tile "ok" "(ok_slad2)")
  76.  
  77.     (if (= 1 (start_dialog))
  78.         (progn
  79.             (setq pt (getpoint MSG007))
  80.             (setq ang 0.0)
  81.  
  82.             (command "UNDO" "G")
  83.             (blk_header pt)
  84.             (c_ladder2 pt step_width ladder_width base_width base_hight
  85.                             step_thick floor_thick floor_length floor_width
  86.                             left_yard ladder_hight step_num is_3d)
  87.             (blk_end pt 0.0)
  88.  
  89.             (setq p2 (polar pt ang (* (- step_num 1) step_width)))
  90.             (setq p2 (list (car p2) (cadr p2) (+ (caddr p2) (- ladder_hight (/ ladder_hight step_num))) ))
  91.             (setq p3 (list (car p2) (cadr p2) (+ (caddr p2) (/ ladder_hight step_num))))
  92.             (setq p4 (polar p3 (- ang (/ pi 2)) left_yard))
  93.             (setq p5 (polar p4 ang floor_length))
  94.             (setq p6 (polar p5 (+ ang (/ pi 2)) floor_width))
  95.             (setq p7 (polar p6 (+ ang pi) floor_length))
  96.             (setq p8 (polar p3 (+ ang (/ pi 2)) (* 2 ladder_width) ))
  97.             (setq p9 (polar p8 (+ ang pi) (* (- step_num 1) step_width) ))
  98.             (setq p9 (list (car p9) (cadr p9) (+ (caddr p9) (- ladder_hight (/ ladder_hight step_num))) ))
  99.             (command "3dpoly" pt p2 p3 p4 p5 p6 p7 p8 p9 "")
  100.  
  101.             (setq pt (polar pt (+ ang (/ pi 2)) ladder_width))
  102.             (setq p2 (polar p2 (+ ang (/ pi 2)) ladder_width))
  103.             (setq p3 (polar p3 (+ ang (/ pi 2)) ladder_width))
  104.             (setq p9 (polar p3 (+ ang pi) (* (- step_num 1) step_width) ))
  105.             (setq p9 (list (car p9) (cadr p9) (+ (caddr p9) (- ladder_hight (/ ladder_hight step_num))) ))
  106.             (command "3dpoly" pt p2 p3 p9 "")
  107.             (command "UNDO" "E")
  108.         )
  109.     )
  110. )
  111.  
  112. (defun ok_slad2 ( / )
  113.     (setq step_width   (atof (get_tile "step_width")))
  114.     (setq step_num     (atoi (get_tile "step_num")))
  115.     (setq ladder_width (atof (get_tile "ladder_width")))
  116.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  117.     (setq base_width   (atof (get_tile "base_width")))
  118.     (setq base_hight   (atof (get_tile "base_hight")))
  119.     (setq floor_thick  (atof (get_tile "floor_thick")))
  120.     (setq floor_length (atof (get_tile "floor_length")))
  121.     (setq floor_width  (atof (get_tile "floor_width")))
  122.     (setq step_thick   (atof (get_tile "step_thick")))
  123.     (setq left_yard    (atof (get_tile "left_yard")))
  124.     (setq is_3d        (atoi (get_tile "is_3d")))
  125.     (done_dialog 1)
  126. )
  127.  
  128. (defun slad3 ( data / )
  129.  
  130.     (if (not (new_dialog "ladder3" dcl_id))
  131.         (exit)
  132.     )
  133.  
  134.     (set_tile "step_width"       (nth 0 data))
  135.     (set_tile "ladder_width"     (nth 1 data))
  136.     (set_tile "base_width"       (nth 2 data))
  137.     (set_tile "base_hight"       (nth 3 data))
  138.     (set_tile "step_thick"       (nth 4 data))
  139.     (set_tile "floor_thick"      (nth 5 data))
  140.     (set_tile "floor_length"     (nth 6 data))
  141.     (set_tile "floor_width"      (nth 7 data))
  142.     (set_tile "left_yard"        (nth 8 data))
  143.     (set_tile "distance"         (nth 9 data))
  144.     (set_tile "ladder_hight"     (nth 10 data))
  145.     (set_tile "step_num"         (nth 11 data))
  146.     (set_tile "is_3d" "1")
  147.  
  148.         (setq x (dimx_tile "image"))
  149.         (setq y (dimy_tile "image"))
  150.         (start_image "image")
  151.         (slide_image 0 0 x y "LADDER3")
  152.         (end_image)
  153.  
  154.     (action_tile "ok" "(ok_slad3)")
  155.  
  156.     (if (= 1 (start_dialog))
  157.         (progn
  158.             (setq pt (getpoint MSG007))
  159.  
  160.             (command "UNDO" "G")
  161.             (slad3_sub pt step_width ladder_width base_width base_hight
  162.                             step_thick floor_thick floor_length floor_width
  163.                             left_yard distance ladder_hight step_num is_3d)
  164.             (command "UNDO" "E")
  165.         )
  166.     )
  167. )
  168.  
  169. (defun slad3_sub (pt a b c d e f g k j r h n is_3d /
  170.                              pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 )
  171.  
  172.     (blk_header pt)
  173.     (c_ladder3 pt a b c d e f g k j r h n is_3d)
  174.     (blk_end pt 0)
  175.  
  176.     (setq pt1 (list (+ (car pt) (* (- n 1) a))
  177.                                     (cadr pt)
  178.                                     (+ (caddr pt) (- h (/ h n)))
  179.                         )
  180.     )
  181.     (setq pt2 (list (+ (car pt) (* (- n 1) a))
  182.                                     (cadr pt)
  183.                                     (+ (caddr pt) (- h f))
  184.                         )
  185.     )
  186.     (setq pt3 (list (car pt2) (- (cadr pt2) j) (caddr pt2) ) )
  187.     (setq pt4 (list (+ (car pt3) g) (cadr pt3) (caddr pt3) ) )
  188.     (setq pt5 (list (car pt4) (+ (cadr pt4) k) (caddr pt4) ) )
  189.     (setq pt6 (list (- (car pt5) g) (cadr pt5) (caddr pt5) ) )
  190.     (setq pt7 (list (car pt6)
  191.                                     (- (cadr pt6) (- (- k r) (+ j (* 2 b))) )
  192.                                     (caddr pt6)
  193.                         )
  194.     )
  195.     (setq pt8 (list (car pt7) (cadr pt7) (+ (caddr pt7) f) ) )
  196.     (setq pt9 (list (- (car pt8) (* (- n 1) a))
  197.                                     (cadr pt8)
  198.                                     (+ (caddr pt8) (- h (/ h n)))
  199.                         )
  200.     )
  201.     (command "3dpoly" pt pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 "")
  202.  
  203.     (setq pt3 (list (car pt2) (+ (cadr pt2) b) (caddr pt2) ))
  204.     (setq pt2 (list (car pt1) (+ (cadr pt1) b) (caddr pt1) ))
  205.     (setq pt1 (list (car pt) (+ (cadr pt) b) (caddr pt) ))
  206.     (setq pt4 (list (car pt3) (+ (cadr pt3) r) (caddr pt3)))
  207.     (setq pt5 (list (car pt8) (- (cadr pt8) b) (caddr pt8)))
  208.     (setq pt6 (list (car pt9) (- (cadr pt9) b) (caddr pt9)))
  209.     (command "3dpoly" pt1 pt2 pt3 pt4 pt5 pt6 "")
  210. )
  211.  
  212. (defun ok_slad3 ( / )
  213.     (setq step_width   (atof (get_tile "step_width")))
  214.     (setq step_num     (atoi (get_tile "step_num")))
  215.     (setq ladder_width (atof (get_tile "ladder_width")))
  216.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  217.     (setq base_width   (atof (get_tile "base_width")))
  218.     (setq base_hight   (atof (get_tile "base_hight")))
  219.     (setq floor_thick  (atof (get_tile "floor_thick")))
  220.     (setq floor_length (atof (get_tile "floor_length")))
  221.     (setq floor_width  (atof (get_tile "floor_width")))
  222.     (setq step_thick   (atof (get_tile "step_thick")))
  223.     (setq left_yard    (atof (get_tile "left_yard")))
  224.     (setq distance     (atof (get_tile "distance")))
  225.     (setq is_3d        (atoi (get_tile "is_3d")))
  226.     (done_dialog 1)
  227. )
  228.  
  229. (defun slad4 ( data / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 )
  230.  
  231.        (if (not (new_dialog "ladder4" dcl_id))
  232.         (exit)
  233.     )
  234.  
  235.     (set_tile "step_width"         (nth 0 data))
  236.     (set_tile "ladder_width"       (nth 1 data))
  237.     (set_tile "base_width"         (nth 2 data))
  238.     (set_tile "base_hight"         (nth 3 data))
  239.     (set_tile "step_thick"         (nth 4 data))
  240.     (set_tile "floor_thick"        (nth 5 data))
  241.     (set_tile "floor_length"       (nth 6 data))
  242.     (set_tile "floor_width"        (nth 7 data))
  243.     (set_tile "right_up"           (nth 8 data))
  244.     (set_tile "right_down"         (nth 9 data))
  245.     (set_tile "ladder_hight"       (nth 10 data))
  246.     (set_tile "step_num"           (nth 11 data))
  247.     (set_tile "is_3d" "1")
  248.  
  249.         (setq x (dimx_tile "image"))
  250.         (setq y (dimy_tile "image"))
  251.         (start_image "image")
  252.         (slide_image 0 0 x y "LADDER4")
  253.         (end_image)
  254.  
  255.     (action_tile "ok" "(ok_slad4)")
  256.  
  257.     (if (= 1 (start_dialog))
  258.         (progn
  259.                         (setq pt (getpoint MSG007))
  260.  
  261.             (command "UNDO" "G")
  262.                         (blk_header pt)
  263.                         (c_ladder4 pt step_width ladder_width base_width base_hight
  264.                                  step_thick floor_thick floor_length floor_width
  265.                                  right_up right_down ladder_hight step_num is_3d)
  266.                         (blk_end pt 0.0)
  267.  
  268.             (setq pt1 (list (+ (car pt) (* (- step_num 1) step_width) )
  269.                                             (- (cadr pt) right_up)
  270.                                             (+ (caddr pt) (- ladder_hight floor_thick) )
  271.                                 )
  272.             )
  273.             (setq pt2 (list (+ (car pt1) right_down) (cadr pt1) (+ (caddr pt1) floor_thick)))
  274.  
  275.             (setq pt3 (list (+ (car pt) (* (- step_num 1) step_width))
  276.                                             (cadr pt)
  277.                                             (+ (caddr pt) (- ladder_hight (/ ladder_hight step_num)))
  278.                                 )
  279.             )
  280.             (setq pt4 (list (car pt3) (cadr pt3) (+ (caddr pt3) (- (/ ladder_hight step_num) floor_thick))))
  281.             (setq pt5 (list (+ (car pt1) right_down) (cadr pt1) (caddr pt1) ))
  282.             (setq pt6 (list (car pt2)
  283.                                             (- (cadr pt2) (* (- step_num 1) step_width))
  284.                                             (+ (caddr pt2) (- ladder_hight (/ ladder_hight step_num)))
  285.                                 )
  286.             )
  287.             (command "3dpoly" pt pt3 pt4 pt1 pt5 pt2 pt6 "")
  288.  
  289.             (setq pt1 (list (car pt) (+ (cadr pt) ladder_width) (caddr pt)))
  290.             (setq pt3 (list (car pt3) (+ (cadr pt3) ladder_width) (caddr pt3)))
  291.             (setq pt4 (list (car pt4) (+ (cadr pt4) ladder_width) (caddr pt4)))
  292.             (setq pt7 (list (car pt4) (+ (cadr pt4) (- floor_width (+ ladder_width right_up))) (caddr pt4)))
  293.             (setq pt8 (list (+ (car pt7) floor_length) (cadr pt7) (caddr pt7)))
  294.             (setq pt9 (list (car pt8) (- (cadr pt8) floor_width) (caddr pt8)))
  295.             (setq pt5 (list (+ (car pt5) ladder_width) (cadr pt5) (caddr pt5)))
  296.             (setq pt2 (list (+ (car pt2) ladder_width) (cadr pt2) (caddr pt2)))
  297.             (setq pt6 (list (+ (car pt6) ladder_width) (cadr pt6) (caddr pt6)))
  298.             (command "3dpoly" pt1 pt3 pt4 pt7 pt8 pt9 pt5 pt2 pt6 "")
  299.             (command "UNDO" "E")
  300.         )
  301.     )
  302.  
  303. )
  304.  
  305. (defun ok_slad4 ( / )
  306.     (setq step_width   (atof (get_tile "step_width")))
  307.     (setq step_num     (atoi (get_tile "step_num")))
  308.     (setq ladder_width (atof (get_tile "ladder_width")))
  309.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  310.     (setq base_width   (atof (get_tile "base_width")))
  311.     (setq base_hight   (atof (get_tile "base_hight")))
  312.     (setq floor_thick  (atof (get_tile "floor_thick")))
  313.     (setq floor_length (atof (get_tile "floor_length")))
  314.     (setq floor_width  (atof (get_tile "floor_width")))
  315.     (setq step_thick   (atof (get_tile "step_thick")))
  316.     (setq right_up     (atof (get_tile "right_up")))
  317.     (setq right_down   (atof (get_tile "right_down")))
  318.     (setq is_3d        (atoi (get_tile "is_3d")))
  319.     (done_dialog 1)
  320. )
  321.  
  322. (defun slad5_sub (pt a b c d e f g k i j h n is_3d / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 )
  323.  
  324.     (blk_header pt)
  325.     (c_ladder5 pt a b c d e f g k i j h n is_3d)
  326.     (blk_end pt 0)
  327.  
  328.     (setq pt1 (list (+ (car pt) (* (- n 1) a)) (- (cadr pt) i) (+ (caddr pt) (- h f))))
  329.     (setq pt2 (list (+ (car pt1) (- g j)) (+ (cadr pt1) k) (+ (caddr pt1) f) ) )
  330.     (setq pt3 (list (+ (car pt) (* (- n 1) a))
  331.                                     (cadr pt)
  332.                                     (+ (caddr pt) (- h (/ h n)))
  333.                         )
  334.     )
  335.     (setq pt4 (list (car pt3) (cadr pt3) (+ (caddr pt3) (- (/ h n) f))))
  336.     (setq pt5 (list (+ (car pt1) g) (cadr pt1) (caddr pt1)))
  337.     (setq pt6 (list (car pt5) (+ (cadr pt5) k) (caddr pt5)))
  338.     (setq pt7 (list (- (car pt6) j) (cadr pt6) (caddr pt6)))
  339.     (setq pt8 (list (car pt2)
  340.                                     (+ (cadr pt2) (* (- n 1) a))
  341.                                     (+ (caddr pt2) (- h (/ h n)))
  342.                         )
  343.     )
  344.     (command "3dpoly" pt pt3 pt4 pt1 pt5 pt6 pt7 pt2 pt8 "")
  345.  
  346.     (setq pt1 (list (car pt) (+ (cadr pt) b) (caddr pt)))
  347.     (setq pt3 (list (car pt3) (+ (cadr pt3) b) (caddr pt3)))
  348.     (setq pt4 (list (car pt4) (+ (cadr pt4) b) (caddr pt4)))
  349.     (setq pt5 (list (car pt4) (+ (cadr pt4) (- k (+ b i))) (caddr pt4)))
  350.     (setq pt7 (list (- (car pt7) b) (cadr pt7) (caddr pt7)))
  351.     (setq pt2 (list (- (car pt2) b) (cadr pt2) (caddr pt2)))
  352.     (setq pt8 (list (- (car pt8) b) (cadr pt8) (caddr pt8)))
  353.     (command "3dpoly" pt1 pt3 pt4 pt5 pt7 pt2 pt8 "")
  354. )
  355.  
  356. (defun ok_slad5 ( / )
  357.     (setq step_width   (atof (get_tile "step_width")))
  358.     (setq step_num     (atoi (get_tile "step_num")))
  359.     (setq ladder_width (atof (get_tile "ladder_width")))
  360.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  361.     (setq base_width   (atof (get_tile "base_width")))
  362.     (setq base_hight   (atof (get_tile "base_hight")))
  363.     (setq floor_thick  (atof (get_tile "floor_thick")))
  364.     (setq floor_length (atof (get_tile "floor_length")))
  365.     (setq floor_width  (atof (get_tile "floor_width")))
  366.     (setq step_thick   (atof (get_tile "step_thick")))
  367.     (setq right_up     (atof (get_tile "right_up")))
  368.     (setq right_down   (atof (get_tile "right_down")))
  369.     (setq is_3d        (atoi (get_tile "is_3d")))
  370.     (done_dialog 1)
  371. )
  372.  
  373. (defun slad5 ( data / )
  374.  
  375.     (if (not (new_dialog "ladder5" dcl_id))
  376.         (exit)
  377.     )
  378.  
  379.     (set_tile "step_width"     (nth 0 data))
  380.     (set_tile "ladder_width"   (nth 1 data))
  381.     (set_tile "base_width"     (nth 2 data))
  382.     (set_tile "base_hight"     (nth 3 data))
  383.     (set_tile "step_thick"     (nth 4 data))
  384.     (set_tile "floor_thick"    (nth 5 data))
  385.     (set_tile "floor_length"   (nth 6 data))
  386.     (set_tile "floor_width"    (nth 7 data))
  387.     (set_tile "right_up"       (nth 8 data))
  388.     (set_tile "right_down"     (nth 9 data))
  389.     (set_tile "ladder_hight"   (nth 10 data))
  390.     (set_tile "step_num"       (nth 11 data))
  391.     (set_tile "is_3d" "1")
  392.  
  393.         (setq x (dimx_tile "image"))
  394.         (setq y (dimy_tile "image"))
  395.         (start_image "image")
  396.         (slide_image 0 0 x y "LADDER5")
  397.         (end_image)
  398.  
  399.     (action_tile "ok" "(ok_slad5)")
  400.  
  401.     (if (= 1 (start_dialog))
  402.         (progn
  403.             (setq pt (getpoint MSG007))
  404.             (command "UNDO" "G")
  405.             (slad5_sub pt step_width ladder_width base_width base_hight
  406.                             step_thick floor_thick floor_length floor_width
  407.                             right_up right_down ladder_hight step_num is_3d)
  408.             (command "UNDO" "E")
  409.         )
  410.     )
  411. )
  412.  
  413. (defun slad6_sub (pt a b c d e f g k j h n is_3d / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pp )
  414.  
  415.     (blk_header pt)
  416.     (c_ladder6 pt a b c d e f g k j h n is_3d)
  417.     (blk_end pt 0)
  418.  
  419.     (setq pt1 (list (+ (car pt) (+ (* (- n 1) a) g)) (cadr pt)
  420.                          (+ (caddr pt) h)
  421.                         )
  422.     )
  423.     (setq pt1 (list (- (car pt1) g)
  424.                                     (- (cadr pt1) j)
  425.                                     (- (caddr pt1) f) ) )
  426.  
  427.     (setq pt2 (list (+ (car pt) (* (- n 1) a))
  428.                                     (cadr pt)
  429.                                     (+ (caddr pt) (- h (/ h n)))
  430.                         )
  431.     )
  432.     (setq pt3 (list (car pt2) (cadr pt2) (+ (caddr pt2) (- (/ h n) f))))
  433.     (setq pt4 (list (+ (car pt1) g) (cadr pt1) (caddr pt1)))
  434.     (setq pt5 (list (car pt4) (+ (cadr pt4) j) (caddr pt4)))
  435.     (setq pt6 (list (car pt5) (cadr pt5) (+ (caddr pt5) f)))
  436.     (setq pt7 (list (+ (car pt6) (* (- n 1) a))
  437.                                     (cadr pt6)
  438.                                     (+ (caddr pt6) (- h (/ h n)))
  439.                         )
  440.     )
  441.     (command "3dpoly" pt pt2 pt3 pt1 pt4 pt5 pt6 pt7 "")
  442.  
  443.     (setq pt1 (list (car pt1) (+ (cadr pt1) (- k b)) (caddr pt1)))
  444.     (setq pt4 (list (car pt4) (+ (cadr pt4) (- k b)) (caddr pt4)))
  445.     (command "3dpoly")
  446.     (foreach pp (list pt pt2 pt3 pt1 pt4 pt5 pt6 pt7)
  447.                 (setq pp (list (car pp) (+ (cadr pp) b) (caddr pp)))
  448.                 (command pp)
  449.     )
  450.     (command "")
  451.  
  452.     (setq pt (list (car pt) (- (cadr pt) b) (caddr pt)))
  453. )
  454.  
  455. (defun ok_slad6 ( / )
  456.     (setq step_width   (atof (get_tile "step_width")))
  457.     (setq step_num     (atoi (get_tile "step_num")))
  458.     (setq ladder_width (atof (get_tile "ladder_width")))
  459.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  460.     (setq base_width   (atof (get_tile "base_width")))
  461.     (setq base_hight   (atof (get_tile "base_hight")))
  462.     (setq floor_thick  (atof (get_tile "floor_thick")))
  463.     (setq floor_length (atof (get_tile "floor_length")))
  464.     (setq floor_width  (atof (get_tile "floor_width")))
  465.     (setq step_thick   (atof (get_tile "step_thick")))
  466.     (setq right_yard   (atof (get_tile "right_yard")))
  467.     (setq is_3d        (atoi (get_tile "is_3d")))
  468.     (done_dialog 1)
  469. )
  470.  
  471. (defun slad6 ( data / )
  472.  
  473.     (if (not (new_dialog "ladder6" dcl_id))
  474.         (exit)
  475.     )
  476.  
  477.     (set_tile "step_width"     (nth 0 data))
  478.     (set_tile "ladder_width"   (nth 1 data))
  479.     (set_tile "base_width"     (nth 2 data))
  480.     (set_tile "base_hight"     (nth 3 data))
  481.     (set_tile "step_thick"     (nth 4 data))
  482.     (set_tile "floor_thick"    (nth 5 data))
  483.     (set_tile "floor_length"   (nth 6 data))
  484.     (set_tile "floor_width"    (nth 7 data))
  485.     (set_tile "right_yard"     (nth 8 data))
  486.     (set_tile "ladder_hight"   (nth 9 data))
  487.     (set_tile "step_num"       (nth 10 data))
  488.     (set_tile "is_3d" "1")
  489.  
  490.         (setq x (dimx_tile "image"))
  491.         (setq y (dimy_tile "image"))
  492.         (start_image "image")
  493.         (slide_image 0 0 x y "LADDER6")
  494.         (end_image)
  495.  
  496.     (action_tile "ok" "(ok_slad6)")
  497.  
  498.     (if (= 1 (start_dialog))
  499.         (progn
  500.             (setq pt (getpoint MSG007))
  501.             (command "UNDO" "G")
  502.             (slad6_sub pt step_width ladder_width base_width base_hight
  503.                             step_thick floor_thick floor_length floor_width
  504.                             right_yard ladder_hight step_num is_3d)
  505.             (command "UNDO" "E")
  506.         )
  507.     )
  508. )
  509.  
  510. (defun slad7_sub (pt a b c d e f g k i j h n is_3d
  511.                              / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12 )
  512.     (blk_header pt)
  513.     (c_ladder7 pt a b c d e f g k i j h n is_3d)
  514.     (blk_end pt 0)
  515.  
  516.     (setq pt1 (list (- (car pt) g) (- (cadr pt) i) (- (caddr pt) f)) )
  517.     (setq pt2 (list (- (car pt) j)
  518.                                     (- (cadr pt1) (* (- n 1) a))
  519.                                     (- (caddr pt) h)
  520.                         )
  521.     )
  522.     (setq pt3 (list (- (car pt2) b) (+ (cadr pt2) (+ k (* 2 (* (- n 1) a))))
  523.                          (caddr pt2) )
  524.     )
  525.  
  526.     (setq pt4 (list (car pt2)
  527.                                     (+ (cadr pt2) (* (- n 1) a))
  528.                                     (+ (caddr pt2) (- h (/ h n)))
  529.                         )
  530.     )
  531.     (setq pt5 (list (car pt4) (cadr pt4) (+ (caddr pt4) (- (/ h n) f))))
  532.     (setq pt6 (list (+ (car pt5) j) (cadr pt5) (caddr pt5)))
  533.     (setq pt7 (list (car pt6) (+ (cadr pt6) i) (caddr pt6)))
  534.     (setq pt8 (list (+ (car pt) (* (- n 1) a))
  535.                                     (cadr pt)
  536.                                     (+ (caddr pt) (- h (/ h n)))
  537.                         )
  538.     )
  539.     (command "3dpoly" pt2 pt4 pt5 pt6 pt7 pt pt8 "")
  540.  
  541.     (setq pt2 (list (- (car pt2) b) (cadr pt2) (caddr pt2)))
  542.     (setq pt4 (list (- (car pt4) b) (cadr pt4) (caddr pt4)))
  543.     (setq pt5 (list (- (car pt5) b) (cadr pt5) (caddr pt5)))
  544.     (setq pt9 (list (car pt1) (+ (cadr pt1) k) (caddr pt1)))
  545.     (setq pt10 (list (+ (car pt9) (- g (+ b j))) (cadr pt9) (caddr pt9)))
  546.     (setq pt11 (list (car pt10) (cadr pt10) (- (caddr pt10) (- (/ h n) f))))
  547.     (command "3dpoly" pt2 pt4 pt5 pt1 pt9 pt10 pt11 pt3 "")
  548.  
  549.     (setq pt3 (list (+ (car pt3) b) (cadr pt3) (caddr pt3)))
  550.     (setq pt11 (list (+ (car pt11) b) (cadr pt11) (caddr pt11)))
  551.     (setq pt10 (list (+ (car pt10) b) (cadr pt10) (caddr pt10)))
  552.     (setq pt12 (list (+ (car pt10) j) (cadr pt10) (caddr pt10)))
  553.     (setq pt7 (list (car pt7) (+ (cadr pt7) b) (caddr pt7)))
  554.     (setq pt (list (car pt) (+ (cadr pt) b) (caddr pt)))
  555.     (setq pt8 (list (car pt8) (+ (cadr pt8) b) (caddr pt8)))
  556.     (command "3dpoly" pt3 pt11 pt10 pt12 pt7 pt pt8 "")
  557.  
  558.     (setq pt (list (car pt) (- (cadr pt) b) (caddr pt)))
  559.  
  560. )
  561.  
  562. (defun ok_slad7 ( / )
  563.     (setq step_width   (atof (get_tile "step_width")))
  564.     (setq step_num     (atoi (get_tile "step_num")))
  565.     (setq ladder_width (atof (get_tile "ladder_width")))
  566.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  567.     (setq base_width   (atof (get_tile "base_width")))
  568.     (setq base_hight   (atof (get_tile "base_hight")))
  569.     (setq floor_thick  (atof (get_tile "floor_thick")))
  570.     (setq floor_length (atof (get_tile "floor_length")))
  571.     (setq floor_width  (atof (get_tile "floor_width")))
  572.     (setq step_thick   (atof (get_tile "step_thick")))
  573.     (setq right_up     (atof (get_tile "right_up")))
  574.     (setq right_down   (atof (get_tile "right_down")))
  575.     (setq is_3d        (atoi (get_tile "is_3d")))
  576.     (done_dialog 1)
  577. )
  578.  
  579. (defun slad7 ( data / )
  580.  
  581.     (if (not (new_dialog "ladder7" dcl_id))
  582.         (exit)
  583.     )
  584.  
  585.     (set_tile "step_width"        (nth 0 data))
  586.     (set_tile "ladder_width"      (nth 1 data))
  587.     (set_tile "base_width"        (nth 2 data))
  588.     (set_tile "base_hight"        (nth 3 data))
  589.     (set_tile "step_thick"        (nth 4 data))
  590.     (set_tile "floor_thick"       (nth 5 data))
  591.     (set_tile "floor_length"      (nth 6 data))
  592.     (set_tile "floor_width"       (nth 7 data))
  593.     (set_tile "right_up"          (nth 8 data))
  594.     (set_tile "right_down"        (nth 9 data))
  595.     (set_tile "ladder_hight"      (nth 10 data))
  596.     (set_tile "step_num"          (nth 11 data))
  597.     (set_tile "is_3d" "1")
  598.  
  599.         (setq x (dimx_tile "image"))
  600.         (setq y (dimy_tile "image"))
  601.         (start_image "image")
  602.         (slide_image 0 0 x y "LADDER7")
  603.         (end_image)
  604.  
  605.     (action_tile "ok" "(ok_slad7)")
  606.  
  607.     (if (= 1 (start_dialog))
  608.         (progn
  609.             (setq pt (getpoint MSG007))
  610.             (command "UNDO" "G")
  611.             (slad7_sub pt step_width ladder_width base_width base_hight
  612.                             step_thick floor_thick floor_length floor_width
  613.                             right_up right_down ladder_hight step_num is_3d)
  614.             (command "UNDO" "E")
  615.         )
  616.     )
  617. )
  618.  
  619. (defun slad8_sub  ( pt a b c d e f g k i j h n is_3d
  620.                              / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 )
  621.     (blk_header pt)
  622.     (c_ladder8 pt a b c d e f g k i j h n is_3d)
  623.     (blk_end pt 0)
  624.  
  625.     (setq pt1 (list (+ (car pt) (* (- n 1) a) )
  626.                                     (- (cadr pt) i)
  627.                                     (+ (caddr pt) (- h f) )
  628.                         )
  629.     )
  630.     (setq pt2 (list (+ (car pt1) j) (cadr pt1) (+ (caddr pt1) f) ) )
  631.     (setq pt3 (list (+ (car pt2) b) (+ (cadr pt2) k) (caddr pt2) ) )
  632.  
  633.                 (setq pt10 (list (+ (car pt) (* (- n 1) a)) (cadr pt)
  634.                     (+ (caddr pt) (- h (/ h n)))
  635.                  )
  636.     )
  637.     (setq pt4 (list (car pt10) (cadr pt10) (+ (caddr pt10) (- (/ h n) f))))
  638.     (setq pt5 (list (+ (car pt1) j) (cadr pt1) (caddr pt1) ))
  639.     (setq pt6 (list (car pt2)
  640.                                     (- (cadr pt2) (* (- n 1) a))
  641.                                     (+ (caddr pt2) (- h (/ h n)))
  642.                         )
  643.     )
  644.     (command "3dpoly" pt pt10 pt4 pt1 pt5 pt2 pt6 "")
  645.  
  646.     (setq pt6 (list (+ (car pt6) b) (cadr pt6) (caddr pt6)))
  647.     (setq pt2 (list (+ (car pt2) b) (cadr pt2) (caddr pt2)))
  648.     (setq pt5 (list (+ (car pt5) b) (cadr pt5) (caddr pt5)))
  649.     (setq pt1 (list (+ (car pt1) g) (cadr pt1) (caddr pt1)))
  650.     (setq pt7 (list (car pt1) (+ (cadr pt1) k) (caddr pt1)))
  651.     (setq pt8 (list (- (car pt7) (- g (+ b j))) (cadr pt7) (caddr pt7)))
  652.     (setq pt9 (list (car pt3)
  653.                                     (+ (cadr pt3) (* (- n 1) a))
  654.                                     (+ (caddr pt3) (- h (/ h n)))
  655.                         )
  656.     )
  657.     (command "3dpoly" pt6 pt2 pt5 pt1 pt7 pt8 pt3 pt9 "")
  658.  
  659.     (setq pt1 (list (car pt) (+ (cadr pt) b) (caddr pt)))
  660.     (setq pt10 (list (car pt10) (+ (cadr pt10) b) (caddr pt10)))
  661.     (setq pt4 (list (car pt4) (+ (cadr pt4) b) (caddr pt4)))
  662.     (setq pt7 (list (car pt4) (+ (cadr pt4) (- k (+ b i))) (caddr pt4)))
  663.     (setq pt8 (list (- (car pt8) b) (cadr pt8) (caddr pt8)))
  664.     (setq pt3 (list (- (car pt3) b) (cadr pt3) (caddr pt3)))
  665.     (setq pt9 (list (- (car pt9) b) (cadr pt9) (caddr pt9)))
  666.     (command "3dpoly" pt1 pt10 pt4 pt7 pt8 pt3 pt9  "")
  667. )
  668.  
  669. (defun ok_slad8 ( / )
  670.     (setq step_width   (atof (get_tile "step_width")))
  671.     (setq step_num     (atoi (get_tile "step_num")))
  672.     (setq ladder_width (atof (get_tile "ladder_width")))
  673.     (setq ladder_hight (atof (get_tile "ladder_hight")))
  674.     (setq base_width   (atof (get_tile "base_width")))
  675.     (setq base_hight   (atof (get_tile "base_hight")))
  676.     (setq floor_thick  (atof (get_tile "floor_thick")))
  677.     (setq floor_length (atof (get_tile "floor_length")))
  678.     (setq floor_width  (atof (get_tile "floor_width")))
  679.     (setq step_thick   (atof (get_tile "step_thick")))
  680.     (setq right_up     (atof (get_tile "right_up")))
  681.     (setq right_down   (atof (get_tile "right_down")))
  682.     (setq is_3d        (atoi (get_tile "is_3d")))
  683.     (done_dialog 1)
  684. )
  685.  
  686. (defun slad8 ( data / )
  687.  
  688.     (if (not (new_dialog "ladder8" dcl_id))
  689.         (exit)
  690.     )
  691.  
  692.     (set_tile "step_width"      (nth 0 data))
  693.     (set_tile "ladder_width"    (nth 1 data))
  694.     (set_tile "base_width"      (nth 2 data))
  695.     (set_tile "base_hight"      (nth 3 data))
  696.     (set_tile "step_thick"      (nth 4 data))
  697.     (set_tile "floor_thick"     (nth 5 data))
  698.     (set_tile "floor_length"    (nth 6 data))
  699.     (set_tile "floor_width"     (nth 7 data))
  700.     (set_tile "right_down"      (nth 8 data))
  701.     (set_tile "right_up"        (nth 9 data))
  702.     (set_tile "ladder_hight"    (nth 10 data))
  703.     (set_tile "step_num"        (nth 11 data))
  704.     (set_tile "is_3d" "1")
  705.  
  706.         (setq x (dimx_tile "image"))
  707.         (setq y (dimy_tile "image"))
  708.         (start_image "image")
  709.         (slide_image 0 0 x y "LADDER8")
  710.         (end_image)
  711.  
  712.     (action_tile "ok" "(ok_slad8)")
  713.  
  714.     (if (= 1 (start_dialog))
  715.         (progn
  716.             (setq pt (getpoint MSG007))
  717.             (command "UNDO" "G")
  718.             (slad8_sub pt step_width ladder_width base_width base_hight
  719.                             step_thick floor_thick floor_length floor_width
  720.                             right_down right_up ladder_hight step_num is_3d)
  721.             (command "UNDO" "E")
  722.         )
  723.     )
  724. )
  725.  
  726.