Есть некоторый функционал, завязанный на получение текущей даты и времени. На AutoCAD 2018x64 и AutoCAD 2019x64 стандартнейшие функции перестали корректно работать.
Во-первых, получение миллисекунд запросто может оказаться некорректным:
(menucmd "M=$(edtime,$(getvar,date),yyyymodd-hhmmssMSEC)")
В качестве миллисекунд в AutoCAD 2019 все время возвращает нули. Мне слабо верится, что я вручную настолько точно повторно вызываю функцию...
Далее. Если не повезет и запрос времени и даты будет выполняться "под конец минуты", можно получить следующее:
(rtos (rem(getvar 'cdate)1) 2 30)
".1516999974846839"
Это как - 99 секунд?
И, наконец, последнее - такое ощущение, что прямой запрос к cdate срабатывает "от балды":
(rtos (rem (getvar "cdate") 1) 2 16)
(repeat 100 (vl-catch-all-apply (function (lambda () (sqrt (getvar "cdate"))))))
(rtos (rem (getvar "cdate") 1) 2 16)
Возвращает
".1528149992227554"
4492.34
".1528149992227554"
Попробовал более топорным способом:
(repeat 20
((lambda (/ d)
(princ)
(setq d (getvar "cdate"))
(princ (strcat "\n" (rtos (fix (* 1e12 (- d (fix d)))) 2)))
) ;_ end of lambda
)
) ;_ end of repeat
И очень сильно удивился результату:
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
152952000498
Собственно вопрос - что я не учитываю?