返回日期和时间的其他格式的autocad

问题描述 投票:0回答:1

我的代码有点问题。我想显示来自autocad格式的时间和日期。例如,autocad中的tdcreate命令显示2458753.59648148,但是此代码在输出文件中显示2019年9月26日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 ")"))
)
lisp autocad
1个回答
0
投票

在AutoCAD中,TDCREATE命令仅返回由TDCREATE system variable保留的值,该值存储创建图形时的儒略日期时间值。

您从我的程序中发布的代码正在使用菜单命令表达式中的DIESEL TDCREATE函数格式化该儒略日期时间值。

如果想要原始朱利安值,则可以简单地使用:

edtime

可以使用(getvar 'tdcreate) 将其格式化为字符串,即:

rtos
© www.soinside.com 2019 - 2024. All rights reserved.