Малявка пишет:(defun vk_RandNum (/ modulus multiplier increment random)
(if (not *seed*)
(setq *seed* (getvar "DATE"))
)
(setq modulus 65536
multiplier 25173
increment 13849
*seed* (rem (+ (* multiplier *seed*) increment) modulus)
random (/ *seed* modulus)
)
)
(defun c:tr (/ From To Diff SS Ent +Sign Num)
(initget 0)
(setq From (getint "From: "))
(while (progn (initget 0) (not (> (setq To (getint "To: ")) From)))
)
(setq +Sign (if (< From 0)
"+"
""
)
)
(setq Diff (- To From))
(while (setq SS (ssget ":S" (list (cons 0 "TEXT"))))
(setq Num (- To (atoi (rtos (* Diff (vk_RandNum)) 2 0))))
(setq Ent (entget (ssname SS 0)))
(entmod
(subst
(cons 1
(if (<= Num 0)
(itoa Num)
(strcat +Sign (itoa Num))
)
)
(assoc 1 Ent)
Ent
)
)
)
(princ)
)
)
Подскажите пожалуйста как сделать так, чтобы это работало, или может быть есть альтернативный способ. AUTOCAD 2017.
Выдает ошибку:
Команда: TR
From: -3
To: 3
; ошибка: неверная строка режима ssget
Делаю следующее: выбираю текстовые значения, ввожу команду TR, from = -3, to = 3, ошибка
Задача точно такая же как и у топикстартера, есть много текстовых цифровых значений (разных), нужно изменить скриптом эти значения относительно исходных в пределах +/- 3 мм. Из-за того, что исходные значения слишком разные, генераторы в духе изменения чисел в рамках диапазона не подходят. Нужно, чтобы значение менялось именно относительно существующего значения в пределах +/- 3 мм.