Дата и время возврата в другом формате autocad - PullRequest
0 голосов
/ 26 марта 2020

У меня небольшая проблема с моим кодом. Я хочу отображать время и дату в формате из AutoCAD отображается. Например, команда tdcreate в autocad show 2458753.59648148, но этот код отображается в выходном файле 26 сентября 2019 г. 14: 18: 55: 999. Я не знаю, где это не так. Я хочу появиться 2458753.59648148.

(progn
            (foreach item
               '(
                    ("Current time:"       "DATE"       "DD MONTH YYYY HH:MM:SS:MSEC")
                    ("Created:"            "TDCREATE"   "DD MONTH YYYY HH:MM:SS:MSEC")
                    ("Last updated:"       "TDUPDATE"   "DD MONTH YYYY HH:MM:SS:MSEC")
                    ("Total editing time:" "TDINDWG"    "HH:MM:SS:MSEC")
                    ("Elapsed timer:"      "TDUSRTIMER" "HH:MM:SS:MSEC")
                )
                (write-line
                    (strcat
                        (PadRight (car item) " " 24)
                        (apply 'FormatDate (cdr item))
                    )
                    openfile
                )
            )
            (close openfile)
            (startapp "notepad" filename)
        )
        (princ (strcat "\nUnable to Write to " filename))
    )
    (princ)
)

(defun PadRight ( string char lengtth )
    (if (< (strlen string) lengtth)
        (PadRight (strcat string char) char lengtth)
        string
    )
)

(defun GetUniqueFilename ( seed / count file flist )
    (if (findfile (setq file seed))
        (progn
            (setq count 1
                  flist (fnsplitl seed)
            )
            (while
                (findfile
                    (setq file
                        (strcat
                            (car   flist)
                            (cadr  flist)
                            "(" (itoa (setq count (1+ count))) ")"
                            (caddr flist)
                        )
                    )
                )
            )
        )
    )
    file
)

(defun FormatDate ( sysvar format )
    (menucmd (strcat "m=$(edtime,$(getvar," sysvar ")," format ")"))
)

1 Ответ

0 голосов
/ 28 марта 2020

В AutoCAD команда TDCREATE просто возвращает значение, которое хранится в системной переменной TDCREATE , в которой хранится юлианское значение даты и времени, когда чертеж был создан.

Код, который вы опубликовали в моей программе, форматирует это юлианское значение даты и времени с помощью функции DIESEL edtime в выражении команды меню .

Если вы хотите необработанное юлианское значение, вы можете просто использовать:

(getvar 'tdcreate)

Который может быть отформатирован как строка, используя rtos, то есть:

(rtos (getvar 'tdcreate) 2 16)
...