LINUX.ORG.RU

История изменений

Исправление saufesma, (текущая версия) :

Кнопка со второго третьего раза работает, с таким выхлопом

/: Symbol’s value as variable is void: *n*

widget-before-change: Text is read-only: «Change should be restricted to a single field»

С выравниванием полей не всё гладко, делаю это пробелами.


;;=========Для расчёта геометрии четырёхзвенного механизма==============
  (defvar *L1*)  ;;стойка, мм
  (defvar *L2*)   ;;кривошип, мм
  (defvar *L3*)  ;;шатун, мм
  (defvar *L4*)   ;;коромысло, мм
 ;;=========== Для расчёта угловых скоростей и ускорений================
  (defvar *n*)  ;;скорость вращения, об/мин
  (defvar *R*)  ;;расстояние от оси качания до кончика гребня
  (defvar test-parts)

  (defun next()
    ())
  
  (defun input ()
  (interactive)
  (switch-to-buffer "Исследования четырёхзвенника")
  (kill-all-local-variables)
  (let ((inhibit-read-only t))
    (erase-buffer))
  (remove-overlays)
  (widget-insert "Ввод геометрических данных четырёхзвенника\n\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Стойка (*L1*):                          %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L1*
				 (string-to-number
				  (widget-value widget)))))

   (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Кривошип (*L2*):                        %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L2*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Шатун (*L3*):                           %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L3*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Коромысло (*L4*):                       %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L4*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")
   
(setq test-parts (widget-create 'editable-field
	       :size 6
	       :value ""
	       :format "(*L2* + *L3*) < (*L1* + *L4*):          %v"
	       ))

(widget-insert "\n\n")

(widget-insert "Ввод динамических данных.\n\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Частота вращения:                       %v об/мин"
		 :notify (lambda (widget &rest ignore)
			   (setq *n*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Расстояние от оси качания до 
кончика гребня:                         %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *R*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

 (widget-create 'push-button
		   :notify (lambda (&rest ignore)
			     (if (< (+ *L2* *L3*) (+ *L1* *L4*))
				 (progn
				 (widget-value-set test-parts "Верно") 
				   (next))
			       (progn
                                 (widget-value-set test-parts "Неверно")
				  )))
                      "Поехали")

       (widget-insert "\n")
       (use-local-map widget-keymap)
(widget-setup))

(next)
  
  (defvar *step*) ;;шаг угла поворота, рад
  (defvar *tmp-lst-of-val-PHI2*) 
  (defvar *lst-of-val-PHI2*) ;; Лист углов кривошипа φ2 за один оборот
  (defvar *tmp-val-PHI2*)       ;; угол 0рад в листе отсутсвует
  (defvar *lst-of-angles-tg-PHIs*) ;;лист значений тангенса угла tg(PHIs)
  (defvar *lst-val-PHIs*) ;;Лист значений угла PHIs
  (defvar *lst-of-vector-s*) ;;лист значений вектора s
  (defvar *lst-val-PHI4s*) ;;лист значений PHI4s
  (defvar *lst-val-PHI3s*)  ;;лист значений PHI3s
  (defvar *lst-val-PHI4*)  ;;Лист значений углов PHI4 рад
  (defvar *lst-val-PHI3*)  ;;лист значений углов PHI3 рад
  (defvar *count-max*) ;;счёт листа начинается с 0.
  (defvar *count-min*)
  
  (setq *tmp-lst-of-val-PHI2* nil) 
  (setq *lst-of-val-PHI2* nil);; Лист углов кривошипа φ2 за один оборот
  (setq *tmp-val-PHI2* 0.0)       ;; угол 0рад в листе отсутсвует
  (setq *lst-of-angles-tg-PHIs* nil) ;;лист значений тангенса угла tg(PHIs)
  (setq *lst-val-PHIs* nil) ;;Лист значений угла PHIs
  (setq *lst-of-vector-s* nil) ;;лист значений вектора s
  (setq *lst-val-PHI4s* nil) ;;лист значений PHI4s
  (setq *lst-val-PHI3s* nil)  ;;лист значений PHI3s
  (setq *lst-val-PHI4* nil)  ;;Лист значений углов PHI4 рад
  (setq *lst-val-PHI3* nil)  ;;лист значений углов PHI3 рад
  (setq *count-max* 0) ;;счёт листа начинается с 0.
  (setq *count-min* 0)
  (setq *step* (/ 6.28318530717954 180));;шаг угла поворота, рад
  ;;;============ввод данных=======================

(defun make-lst-of-val-PHI2 (tmp-val-PHI2 step tmp-lst-of-val-PHI2)
(if (< tmp-val-PHI2 6.28318530717954)
(make-lst-of-val-PHI2 (setq tmp-val-PHI2 (+ tmp-val-PHI2 step))
                            step
                                (push tmp-val-PHI2 tmp-lst-of-val-PHI2))
    tmp-lst-of-val-PHI2))

(setq *lst-of-val-PHI2* 
    (make-lst-of-val-PHI2 *tmp-val-PHI2* *step* *tmp-lst-of-val-PHI2*))
      ;;=========== Для расчёта угловых скоростей и ускорений================
		  
	      (defvar *time*)
	      (defvar *omega2*) ;;угловая частота, 1/c
	      (defvar *epsilon2*)  ;;угловое ускорение, 1/c^2
	      (defvar *PHI2-PHI3-lst*)
	      (defvar *PHI4-PHI3-lst*)
	      (defvar *PHI2-PHI4-lst*)
	      (defvar *PHI3-PHI4-lst*)
	      (defvar *u42-lst*)
	      (defvar *u32-lst*)
	      (defvar *u+42-lst*)
	      (defvar *u+32-lst*)
	      (defvar *true-omega3-lst*)
	      (defvar *true-omega4-lst*)
	      (defvar *true-epsilon3-lst*)
	      (defvar *true-epsilon4-lst*)
	      
	      (setq *PHI2-PHI3-lst* nil)
	      (setq *PHI4-PHI3-lst* nil)
	      (setq *PHI2-PHI4-lst* nil)
	      (setq *PHI3-PHI4-lst* nil)
	      (setq *u42-lst* nil)
	      (setq *u32-lst* nil)
	      (setq *u+42-lst* nil)
	      (setq *u+32-lst* nil)
	      (setq *true-omega3-lst* nil)
	      (setq *true-omega4-lst* nil)
	      (setq *true-epsilon3-lst* nil)
	      (setq *true-epsilon4-lst* nil)
	      (setq *omega2* (/ (* 3.1415926536 *n*) 30)) ;;угловая частота, 1/c
	   
*lst-of-val-PHI2* ;; запустив код не знаю как этот лист посмотреть 

Исправление saufesma, :

Кнопка со второго третьего раза работает, с таким выхлопом

/: Symbol’s value as variable is void: *n*

widget-before-change: Text is read-only: «Change should be restricted to a single field»


;;=========Для расчёта геометрии четырёхзвенного механизма==============
  (defvar *L1*)  ;;стойка, мм
  (defvar *L2*)   ;;кривошип, мм
  (defvar *L3*)  ;;шатун, мм
  (defvar *L4*)   ;;коромысло, мм
 ;;=========== Для расчёта угловых скоростей и ускорений================
  (defvar *n*)  ;;скорость вращения, об/мин
  (defvar *R*)  ;;расстояние от оси качания до кончика гребня
  (defvar test-parts)

  (defun next()
    ())
  
  (defun input ()
  (interactive)
  (switch-to-buffer "Исследования четырёхзвенника")
  (kill-all-local-variables)
  (let ((inhibit-read-only t))
    (erase-buffer))
  (remove-overlays)
  (widget-insert "Ввод геометрических данных четырёхзвенника\n\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Стойка (*L1*):                          %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L1*
				 (string-to-number
				  (widget-value widget)))))

   (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Кривошип (*L2*):                        %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L2*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Шатун (*L3*):                           %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L3*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Коромысло (*L4*):                       %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L4*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")
   
(setq test-parts (widget-create 'editable-field
	       :size 6
	       :value ""
	       :format "(*L2* + *L3*) < (*L1* + *L4*):          %v"
	       ))

(widget-insert "\n\n")

(widget-insert "Ввод динамических данных.\n\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Частота вращения:                       %v об/мин"
		 :notify (lambda (widget &rest ignore)
			   (setq *n*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Расстояние от оси качания до 
кончика гребня:                         %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *R*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

 (widget-create 'push-button
		   :notify (lambda (&rest ignore)
			     (if (< (+ *L2* *L3*) (+ *L1* *L4*))
				 (progn
				 (widget-value-set test-parts "Верно") 
				   (next))
			       (progn
                                 (widget-value-set test-parts "Неверно")
				  )))
                      "Поехали")

       (widget-insert "\n")
       (use-local-map widget-keymap)
(widget-setup))

(next)
  
  (defvar *step*) ;;шаг угла поворота, рад
  (defvar *tmp-lst-of-val-PHI2*) 
  (defvar *lst-of-val-PHI2*) ;; Лист углов кривошипа φ2 за один оборот
  (defvar *tmp-val-PHI2*)       ;; угол 0рад в листе отсутсвует
  (defvar *lst-of-angles-tg-PHIs*) ;;лист значений тангенса угла tg(PHIs)
  (defvar *lst-val-PHIs*) ;;Лист значений угла PHIs
  (defvar *lst-of-vector-s*) ;;лист значений вектора s
  (defvar *lst-val-PHI4s*) ;;лист значений PHI4s
  (defvar *lst-val-PHI3s*)  ;;лист значений PHI3s
  (defvar *lst-val-PHI4*)  ;;Лист значений углов PHI4 рад
  (defvar *lst-val-PHI3*)  ;;лист значений углов PHI3 рад
  (defvar *count-max*) ;;счёт листа начинается с 0.
  (defvar *count-min*)
  
  (setq *tmp-lst-of-val-PHI2* nil) 
  (setq *lst-of-val-PHI2* nil);; Лист углов кривошипа φ2 за один оборот
  (setq *tmp-val-PHI2* 0.0)       ;; угол 0рад в листе отсутсвует
  (setq *lst-of-angles-tg-PHIs* nil) ;;лист значений тангенса угла tg(PHIs)
  (setq *lst-val-PHIs* nil) ;;Лист значений угла PHIs
  (setq *lst-of-vector-s* nil) ;;лист значений вектора s
  (setq *lst-val-PHI4s* nil) ;;лист значений PHI4s
  (setq *lst-val-PHI3s* nil)  ;;лист значений PHI3s
  (setq *lst-val-PHI4* nil)  ;;Лист значений углов PHI4 рад
  (setq *lst-val-PHI3* nil)  ;;лист значений углов PHI3 рад
  (setq *count-max* 0) ;;счёт листа начинается с 0.
  (setq *count-min* 0)
  (setq *step* (/ 6.28318530717954 180));;шаг угла поворота, рад
  ;;;============ввод данных=======================

(defun make-lst-of-val-PHI2 (tmp-val-PHI2 step tmp-lst-of-val-PHI2)
(if (< tmp-val-PHI2 6.28318530717954)
(make-lst-of-val-PHI2 (setq tmp-val-PHI2 (+ tmp-val-PHI2 step))
                            step
                                (push tmp-val-PHI2 tmp-lst-of-val-PHI2))
    tmp-lst-of-val-PHI2))

(setq *lst-of-val-PHI2* 
    (make-lst-of-val-PHI2 *tmp-val-PHI2* *step* *tmp-lst-of-val-PHI2*))
      ;;=========== Для расчёта угловых скоростей и ускорений================
		  
	      (defvar *time*)
	      (defvar *omega2*) ;;угловая частота, 1/c
	      (defvar *epsilon2*)  ;;угловое ускорение, 1/c^2
	      (defvar *PHI2-PHI3-lst*)
	      (defvar *PHI4-PHI3-lst*)
	      (defvar *PHI2-PHI4-lst*)
	      (defvar *PHI3-PHI4-lst*)
	      (defvar *u42-lst*)
	      (defvar *u32-lst*)
	      (defvar *u+42-lst*)
	      (defvar *u+32-lst*)
	      (defvar *true-omega3-lst*)
	      (defvar *true-omega4-lst*)
	      (defvar *true-epsilon3-lst*)
	      (defvar *true-epsilon4-lst*)
	      
	      (setq *PHI2-PHI3-lst* nil)
	      (setq *PHI4-PHI3-lst* nil)
	      (setq *PHI2-PHI4-lst* nil)
	      (setq *PHI3-PHI4-lst* nil)
	      (setq *u42-lst* nil)
	      (setq *u32-lst* nil)
	      (setq *u+42-lst* nil)
	      (setq *u+32-lst* nil)
	      (setq *true-omega3-lst* nil)
	      (setq *true-omega4-lst* nil)
	      (setq *true-epsilon3-lst* nil)
	      (setq *true-epsilon4-lst* nil)
	      (setq *omega2* (/ (* 3.1415926536 *n*) 30)) ;;угловая частота, 1/c
	   
*lst-of-val-PHI2* ;; запустив код не знаю как этот лист посмотреть 

Исправление saufesma, :

Кнопка со второго третьего раза работает, с таким выхлопом

/: Symbol’s value as variable is void: *n* widget-before-change: Text is read-only: «Change should be restricted to a single field»


;;=========Для расчёта геометрии четырёхзвенного механизма==============
  (defvar *L1*)  ;;стойка, мм
  (defvar *L2*)   ;;кривошип, мм
  (defvar *L3*)  ;;шатун, мм
  (defvar *L4*)   ;;коромысло, мм
 ;;=========== Для расчёта угловых скоростей и ускорений================
  (defvar *n*)  ;;скорость вращения, об/мин
  (defvar *R*)  ;;расстояние от оси качания до кончика гребня
  (defvar test-parts)

  (defun next()
    ())
  
  (defun input ()
  (interactive)
  (switch-to-buffer "Исследования четырёхзвенника")
  (kill-all-local-variables)
  (let ((inhibit-read-only t))
    (erase-buffer))
  (remove-overlays)
  (widget-insert "Ввод геометрических данных четырёхзвенника\n\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Стойка (*L1*):                          %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L1*
				 (string-to-number
				  (widget-value widget)))))

   (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Кривошип (*L2*):                        %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L2*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Шатун (*L3*):                           %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L3*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Коромысло (*L4*):                       %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L4*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")
   
(setq test-parts (widget-create 'editable-field
	       :size 6
	       :value ""
	       :format "(*L2* + *L3*) < (*L1* + *L4*):          %v"
	       ))

(widget-insert "\n\n")

(widget-insert "Ввод динамических данных.\n\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Частота вращения:                       %v об/мин"
		 :notify (lambda (widget &rest ignore)
			   (setq *n*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Расстояние от оси качания до 
кончика гребня:                         %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *R*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

 (widget-create 'push-button
		   :notify (lambda (&rest ignore)
			     (if (< (+ *L2* *L3*) (+ *L1* *L4*))
				 (progn
				 (widget-value-set test-parts "Верно") 
				   (next))
			       (progn
                                 (widget-value-set test-parts "Неверно")
				  )))
                      "Поехали")

       (widget-insert "\n")
       (use-local-map widget-keymap)
(widget-setup))

(next)
  
  (defvar *step*) ;;шаг угла поворота, рад
  (defvar *tmp-lst-of-val-PHI2*) 
  (defvar *lst-of-val-PHI2*) ;; Лист углов кривошипа φ2 за один оборот
  (defvar *tmp-val-PHI2*)       ;; угол 0рад в листе отсутсвует
  (defvar *lst-of-angles-tg-PHIs*) ;;лист значений тангенса угла tg(PHIs)
  (defvar *lst-val-PHIs*) ;;Лист значений угла PHIs
  (defvar *lst-of-vector-s*) ;;лист значений вектора s
  (defvar *lst-val-PHI4s*) ;;лист значений PHI4s
  (defvar *lst-val-PHI3s*)  ;;лист значений PHI3s
  (defvar *lst-val-PHI4*)  ;;Лист значений углов PHI4 рад
  (defvar *lst-val-PHI3*)  ;;лист значений углов PHI3 рад
  (defvar *count-max*) ;;счёт листа начинается с 0.
  (defvar *count-min*)
  
  (setq *tmp-lst-of-val-PHI2* nil) 
  (setq *lst-of-val-PHI2* nil);; Лист углов кривошипа φ2 за один оборот
  (setq *tmp-val-PHI2* 0.0)       ;; угол 0рад в листе отсутсвует
  (setq *lst-of-angles-tg-PHIs* nil) ;;лист значений тангенса угла tg(PHIs)
  (setq *lst-val-PHIs* nil) ;;Лист значений угла PHIs
  (setq *lst-of-vector-s* nil) ;;лист значений вектора s
  (setq *lst-val-PHI4s* nil) ;;лист значений PHI4s
  (setq *lst-val-PHI3s* nil)  ;;лист значений PHI3s
  (setq *lst-val-PHI4* nil)  ;;Лист значений углов PHI4 рад
  (setq *lst-val-PHI3* nil)  ;;лист значений углов PHI3 рад
  (setq *count-max* 0) ;;счёт листа начинается с 0.
  (setq *count-min* 0)
  (setq *step* (/ 6.28318530717954 180));;шаг угла поворота, рад
  ;;;============ввод данных=======================

(defun make-lst-of-val-PHI2 (tmp-val-PHI2 step tmp-lst-of-val-PHI2)
(if (< tmp-val-PHI2 6.28318530717954)
(make-lst-of-val-PHI2 (setq tmp-val-PHI2 (+ tmp-val-PHI2 step))
                            step
                                (push tmp-val-PHI2 tmp-lst-of-val-PHI2))
    tmp-lst-of-val-PHI2))

(setq *lst-of-val-PHI2* 
    (make-lst-of-val-PHI2 *tmp-val-PHI2* *step* *tmp-lst-of-val-PHI2*))
      ;;=========== Для расчёта угловых скоростей и ускорений================
		  
	      (defvar *time*)
	      (defvar *omega2*) ;;угловая частота, 1/c
	      (defvar *epsilon2*)  ;;угловое ускорение, 1/c^2
	      (defvar *PHI2-PHI3-lst*)
	      (defvar *PHI4-PHI3-lst*)
	      (defvar *PHI2-PHI4-lst*)
	      (defvar *PHI3-PHI4-lst*)
	      (defvar *u42-lst*)
	      (defvar *u32-lst*)
	      (defvar *u+42-lst*)
	      (defvar *u+32-lst*)
	      (defvar *true-omega3-lst*)
	      (defvar *true-omega4-lst*)
	      (defvar *true-epsilon3-lst*)
	      (defvar *true-epsilon4-lst*)
	      
	      (setq *PHI2-PHI3-lst* nil)
	      (setq *PHI4-PHI3-lst* nil)
	      (setq *PHI2-PHI4-lst* nil)
	      (setq *PHI3-PHI4-lst* nil)
	      (setq *u42-lst* nil)
	      (setq *u32-lst* nil)
	      (setq *u+42-lst* nil)
	      (setq *u+32-lst* nil)
	      (setq *true-omega3-lst* nil)
	      (setq *true-omega4-lst* nil)
	      (setq *true-epsilon3-lst* nil)
	      (setq *true-epsilon4-lst* nil)
	      (setq *omega2* (/ (* 3.1415926536 *n*) 30)) ;;угловая частота, 1/c
	   
*lst-of-val-PHI2* ;; запустив код не знаю как этот лист посмотреть 

Исходная версия saufesma, :

Кнопка со второго третьего раза работает, с таким выхлопом

widget-before-change: Text is read-only: «Change should be restricted to a single field»


;;=========Для расчёта геометрии четырёхзвенного механизма==============
  (defvar *L1*)  ;;стойка, мм
  (defvar *L2*)   ;;кривошип, мм
  (defvar *L3*)  ;;шатун, мм
  (defvar *L4*)   ;;коромысло, мм
 ;;=========== Для расчёта угловых скоростей и ускорений================
  (defvar *n*)  ;;скорость вращения, об/мин
  (defvar *R*)  ;;расстояние от оси качания до кончика гребня
  (defvar test-parts)

  (defun next()
    ())
  
  (defun input ()
  (interactive)
  (switch-to-buffer "Исследования четырёхзвенника")
  (kill-all-local-variables)
  (let ((inhibit-read-only t))
    (erase-buffer))
  (remove-overlays)
  (widget-insert "Ввод геометрических данных четырёхзвенника\n\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Стойка (*L1*):                          %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L1*
				 (string-to-number
				  (widget-value widget)))))

   (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Кривошип (*L2*):                        %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L2*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Шатун (*L3*):                           %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L3*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")

   (widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Коромысло (*L4*):                       %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *L4*
				 (string-to-number
				  (widget-value widget)))))

    (widget-insert "\n")
   
(setq test-parts (widget-create 'editable-field
	       :size 6
	       :value ""
	       :format "(*L2* + *L3*) < (*L1* + *L4*):          %v"
	       ))

(widget-insert "\n\n")

(widget-insert "Ввод динамических данных.\n\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Частота вращения:                       %v об/мин"
		 :notify (lambda (widget &rest ignore)
			   (setq *n*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

(widget-create 'editable-field
		 :size 6
		 :value "0"
		 :format "Расстояние от оси качания до 
кончика гребня:                         %v мм"
		 :notify (lambda (widget &rest ignore)
			   (setq *R*
				 (string-to-number
				  (widget-value widget)))))

(widget-insert "\n")

 (widget-create 'push-button
		   :notify (lambda (&rest ignore)
			     (if (< (+ *L2* *L3*) (+ *L1* *L4*))
				 (progn
				 (widget-value-set test-parts "Верно") 
				   (next))
			       (progn
                                 (widget-value-set test-parts "Неверно")
				  )))
                      "Поехали")

       (widget-insert "\n")
       (use-local-map widget-keymap)
(widget-setup))

(next)
  
  (defvar *step*) ;;шаг угла поворота, рад
  (defvar *tmp-lst-of-val-PHI2*) 
  (defvar *lst-of-val-PHI2*) ;; Лист углов кривошипа φ2 за один оборот
  (defvar *tmp-val-PHI2*)       ;; угол 0рад в листе отсутсвует
  (defvar *lst-of-angles-tg-PHIs*) ;;лист значений тангенса угла tg(PHIs)
  (defvar *lst-val-PHIs*) ;;Лист значений угла PHIs
  (defvar *lst-of-vector-s*) ;;лист значений вектора s
  (defvar *lst-val-PHI4s*) ;;лист значений PHI4s
  (defvar *lst-val-PHI3s*)  ;;лист значений PHI3s
  (defvar *lst-val-PHI4*)  ;;Лист значений углов PHI4 рад
  (defvar *lst-val-PHI3*)  ;;лист значений углов PHI3 рад
  (defvar *count-max*) ;;счёт листа начинается с 0.
  (defvar *count-min*)
  
  (setq *tmp-lst-of-val-PHI2* nil) 
  (setq *lst-of-val-PHI2* nil);; Лист углов кривошипа φ2 за один оборот
  (setq *tmp-val-PHI2* 0.0)       ;; угол 0рад в листе отсутсвует
  (setq *lst-of-angles-tg-PHIs* nil) ;;лист значений тангенса угла tg(PHIs)
  (setq *lst-val-PHIs* nil) ;;Лист значений угла PHIs
  (setq *lst-of-vector-s* nil) ;;лист значений вектора s
  (setq *lst-val-PHI4s* nil) ;;лист значений PHI4s
  (setq *lst-val-PHI3s* nil)  ;;лист значений PHI3s
  (setq *lst-val-PHI4* nil)  ;;Лист значений углов PHI4 рад
  (setq *lst-val-PHI3* nil)  ;;лист значений углов PHI3 рад
  (setq *count-max* 0) ;;счёт листа начинается с 0.
  (setq *count-min* 0)
  (setq *step* (/ 6.28318530717954 180));;шаг угла поворота, рад
  ;;;============ввод данных=======================

(defun make-lst-of-val-PHI2 (tmp-val-PHI2 step tmp-lst-of-val-PHI2)
(if (< tmp-val-PHI2 6.28318530717954)
(make-lst-of-val-PHI2 (setq tmp-val-PHI2 (+ tmp-val-PHI2 step))
                            step
                                (push tmp-val-PHI2 tmp-lst-of-val-PHI2))
    tmp-lst-of-val-PHI2))

(setq *lst-of-val-PHI2* 
    (make-lst-of-val-PHI2 *tmp-val-PHI2* *step* *tmp-lst-of-val-PHI2*))
      ;;=========== Для расчёта угловых скоростей и ускорений================
		  
	      (defvar *time*)
	      (defvar *omega2*) ;;угловая частота, 1/c
	      (defvar *epsilon2*)  ;;угловое ускорение, 1/c^2
	      (defvar *PHI2-PHI3-lst*)
	      (defvar *PHI4-PHI3-lst*)
	      (defvar *PHI2-PHI4-lst*)
	      (defvar *PHI3-PHI4-lst*)
	      (defvar *u42-lst*)
	      (defvar *u32-lst*)
	      (defvar *u+42-lst*)
	      (defvar *u+32-lst*)
	      (defvar *true-omega3-lst*)
	      (defvar *true-omega4-lst*)
	      (defvar *true-epsilon3-lst*)
	      (defvar *true-epsilon4-lst*)
	      
	      (setq *PHI2-PHI3-lst* nil)
	      (setq *PHI4-PHI3-lst* nil)
	      (setq *PHI2-PHI4-lst* nil)
	      (setq *PHI3-PHI4-lst* nil)
	      (setq *u42-lst* nil)
	      (setq *u32-lst* nil)
	      (setq *u+42-lst* nil)
	      (setq *u+32-lst* nil)
	      (setq *true-omega3-lst* nil)
	      (setq *true-omega4-lst* nil)
	      (setq *true-epsilon3-lst* nil)
	      (setq *true-epsilon4-lst* nil)
	      (setq *omega2* (/ (* 3.1415926536 *n*) 30)) ;;угловая частота, 1/c
	   
*lst-of-val-PHI2* ;; запустив код не знаю как этот лист посмотреть