(defun C:edit_text_prng (/ obj text text-var max-number flag- temp)
  (if (= *accuracy* nil) (setq *accuracy* 3))
  (setq max-number (getreal "\nУкажи максимальное отклонение: "))
  (initget"Да Нет")(setq flag-(getkword "\nОтрицательные поправки нужны? [Да/Нет]<Да>: "))
  (if (or (= flag- "Да")(= flag- nil))
    (setq flag- T)(setq flag- nil))
  (if max-number
    (while(progn (initget"Настройки")(setq text(entsel "\nУкажи текст[Настройки]: ")))
      (cond
	((=(type text) 'LIST)
	 (setq text (car text))
	 (if (eq (cdr(assoc 0 (entget text))) "TEXT")
	   (progn
	     (setq text-var(+ (atof(vl-string-translate "," "." (cdr(assoc 1(entget text))))) (get-rng-number max-number flag-)))
	     (entmod (subst(cons 1(rtos text-var 2(if(< max-number 1.0) *accuracy* 0)))(assoc 1(entget text))(entget text)))
	     (entmod (list (cons -1 (cdr (assoc -1 (entget text)))) (cons 62 1)))
	     )
	   )
	 )
	((=(type text) 'STR)
	 (setq temp(getint (strcat "\nСколько знаков после запятой<" (itoa *accuracy*) ">: ")))
	 (if temp(setq *accuracy* temp))
	 )
	(T
	 (alert "Ошибка! Не правильное значение.")
	 )
	)
      ))
  (princ)
  )

(defun rng ( / string)
  ;;; Генерирует список из трех чисел текушие (секунда десятые сотые)
  (setq string (rtos (getvar "CDATE") 2 10))
  (list (substr string 15 1)
	(substr string 16 1)
	(substr string 17))
  )

(defun get-rng-number ( max-number flag- / input-list number)
  ;;; Генерирует случайное число в диапазоне и можно только положительное
  (setq input-list(rng))
  (setq number (atof (strcat (nth 1 input-list)(nth 2 input-list))))
  (if (< max-number 1.0)
    (setq number (/ number 100.0)))
  (while (< max-number number)
    (setq number (/ number 2.0))
    )
  (if (and flag-(= (rem (atof(nth 0 input-list))2)0))(* number -1.0)number)
  )

