Каждый раз новый результат - Lisp

Узнай цену своей работы

Формулировка задачи:

Приветствую Написал такое:
(defun layers()
    (command "_linetype" "_load" "осевая" "" "" "")
    (command "_linetype" "_load" "штриховая" "" "" "")
    (command "_LAYER" "_New" "Main lines" "_LWeight" 0.7 "Main lines" "_Ltype" "CONTINUOUS" "Main lines" "_Color" "_white" "Main lines" "")
    (command "_LAYER" "_New" "Dim lines" "_LWeight" 0.35 "Dim lines" "_Ltype" "CONTINUOUS" "Dim lines" "_Color" "_white" "Dim lines" "")
    (command "_LAYER" "_New" "Axis lines" "_LWeight" 0.35 "Axis lines" "_Ltype" "осевая" "Axis lines" "_Color" "_white" "Axis lines" "")
    (command "_LAYER" "_New" "NonVis lines" "_LWeight" 0.35 "NonVis lines" "_Ltype" "штриховая" "NonVis lines" "_Color" "_white" "NonVis lines" "")
)
(defun bottomPart()
  ;нижний куб
  (command "Ящик"
       (list 0 0 0)
       (list s23 s20 0)
       s2
       "")
  ;кубы для вычитания
  ;;;;;;;;;;;;;;;;;;;;;;;;
  (command "Ящик"
       (list -1 (+ (/ s20 2) (/ s11 2)) s3)
       (list s14 (- (/ s20 2) (/ s11 2)) s3)
       (- s2 s3) "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list -1 (+ (/ s20 2) (/ s11 2)) s3)
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;;
  (command "Ящик"
       (list -2 (+ (/ s20 2) (/ s12 2)) s3)
       (list (- s23 s24) (- (/ s20 2) (/ s12 2)) s3)
       (- s2 s3) "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list -2 (+ (/ s20 2) (/ s12 2)) s3)
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;
  (command "Цилиндр"
       (list (- s23 s24) (/ s20 2) s3)
       s18
       (+ (- s2 s3) 1) "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list (- s23 s24) (/ s20 2) s3)
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;;
  (command "Ящик"
       (list -2 (+ (/ s20 2) (/ s13 2)) 0)
       (list s22 (- (/ s20 2) (/ s13 2)) 0)
       s2 "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list -2 (+ (/ s20 2) (/ s13 2)) 0)
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;
  (command "Цилиндр"
       (list (- s23 s24) (/ s20 2) -1)
       (/ s10 2)
       s9 "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list (- s23 s24) (/ s20 2) s9)
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;
  (command "Цилиндр"
       (list s21 (- (/ s20 2) (/ s12 2)) -1)
       (/ s1 2)
       s9 "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list s21 (- (/ s20 2) (/ s12 2)) s9)
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;
  (command "Цилиндр"
       (list s21 (+ (/ s20 2) (/ s12 2)) -1)
       (/ s1 2)
       s9 "")
  (command "Вычитание"
       (list 0 0 0)
       ""
       (list s21 (+ (/ s20 2) (/ s12 2)) s9)
       "")
  
)
(defun topPart()
   ;Верхний;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (command "Цилиндр"
       (list (- s23 s24) (/ s20 2) s2)
       s17
       (- s9 s2)
       "")
  ;Кубы для вычитания
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (command "Ящик"
       (list (- s23 s24) (+ (/ s20 2) s17) s2)
       (list (- (- s23 s24) s15) (- (/ s20 2) s17) s2)
       (- s9 s2)
       "")
  (command "Вычитание"
       (list (+ (- s23 s24) s17) (/ s20 2) s2)
       ""
       (list (- (- s23 s24) s15) (- (/ s20 2) s17) s9)
       "")
  (command "Цилиндр"
       (list (- s23 s24) (/ s20 2) s2)
         s18
         (+ (- s9 s2) 10) "")
  (command "Вычитание"
       (list (+ (- s23 s24) s17) (/ s20 2) s2)
       ""
       (list (- (- s23 s24) s18) (/ s20 2) (+ s9 10))
       "")
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (command "Ящик"
       (list (- s23 s24) (+ (/ s20 2) s17) s2)
       (list (- (- s23 s24) s15) (+ (/ s20 2) s18) s2)
       (- s9 s2) "")
  (command "Ящик"
       (list (- s23 s24) (- (/ s20 2) s17) s2)
       (list (- (- s23 s24) s15) (- (/ s20 2) s18) s2)
       (- s9 s2) "")
  ;Кубы для вычитания
  (command "Цилиндр"
       (list (- (- s23 s24) s7) s20 s2)
         s6
         (/ s20 2)
       "")
)
(defun c:view3D()
 (layers)
  (command "_shademode" "4")
  (command "_.osnap" "_none")
  (command "_layer" "_make" "Main lines" "")
  (setvar "cmdecho" 0)  ;отключение эха
  (setvar "osmode" 0)   ;отключение объектной привязки
  ;///////////////////////////////
  (setq s1 10)
  (setq s2 30)
  (setq s3 20)
  (setq s4 15)
  (setq s5 20)
  (setq s6 10)
  (setq s7 15)
  (setq s8 25)
  (setq s9 60)
  (setq s10 20)
  (setq s11 50 )
  (setq s12 30)
  (setq s13 10)
  (setq s14 30)
  (setq s15 30)
  (setq s16 35)
  (setq s17 20)
  (setq s18 15)
  (setq s19 10)
  (setq s20 60)
  (setq s21 10)
  (setq s22 50)
  (setq s23 110)
  (setq s24 40)
  (bottomPart)
  (topPart)
  )
Не знаю почему, но при каждой загрузке рисуется что-то новое, причём не то, что запрограммировано, в чём проблема? Спасибо.

Решение задачи: «Каждый раз новый результат»

textual
Листинг программы
(command "Вычитание"
       (list 0 0 0)
       ""
       (list -1 (+ (/ s20 2) (/ s11 2)) s3)
       "")

Объяснение кода листинга программы

В представленном коде:

  1. Название команды: Вычитание.
  2. Список с тремя нулями: (list 0 0 0).
  3. Пустая строка: ``.
  4. Список с одним элементом, которым является результат вычисления выражения (-1 (+ (/ s20 2) (/ s11 2))), и строкой s3.
  5. Еще одна пустая строка: ``

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы