也弓 发表于 2007-6-14 10:39:00

读取dwg文件的修改时间

请问大家怎样用lisp实现:读取dwg文件的修改时间以及怎样用lisp修改DWG文件的修改时间?先谢了啊

byghbcx 发表于 2007-6-14 11:24:00

TDUPDATE&nbsp;存储最后一次更新/保存的本地时间和日期<br/>是只读的

也弓 发表于 2007-6-14 11:41:00

我主要是想修改这个时间,能用lisp实现吗?

carrot1983 发表于 2007-6-14 12:24:00

byghbcx发表于2007-6-14 11:24:00static/image/common/back.gifTDUPDATE&nbsp;存储最后一次更新/保存的本地时间和日期是只读的

<p>我不知道能不能修改。但是既然二楼说了,只读,你说能不能修改!</p>

carrot1983 发表于 2007-6-14 12:26:00

扔一个在Autodesk网站看到的。。好像不能用的修改次数的东西
;;;修改修计次数DWGPROPS
(defun C:REVNO ();/ reply revno xlist)
;; get Xrecord and revno
(setq xlist (dictsearch (namedobjdict) "DWGPROPS")
xlist (if xlist
xlist
'((0 . "XRECORD")
    (100 . "AcDbXrecord")
    (1
   .
   "DWGPROPS COOKIE"
    )
   )
       )
revno (assoc 9 xlist)
revno (if revno
(cdr revno)
""
       )
xlist (mapcar '(lambda (i)
    (if (member (car i)
         '(0    12    3    4 6
         7    8100300301 302
         303304305306307 308
         309
          )
      )
      i
    )
         )
      xlist
       )
xlist (apply '(lambda (l / i r)
   (foreach i l
   (if i
       (setq r (append r (list i)))
   )
   )
   r
      )
       (list xlist)
       )
)
;; get new revno
(setq reply (getstring
T
(strcat "Enter new revision number, or . for none
<"   revno
   ">: "
)
       )
reply (if (= "" reply)
revno
reply
       )
reply (if (= "." reply)
""
reply
       )
)
;; set Xrecord
(setq xlist (append xlist
      (list (cons 9 reply))
      (list (cons 40 (getvar "TDINDWG"))
       (cons 41 (getvar "TDCREATE"))
       (cons 42 (getvar "TDUPDATE"))
      )
       )
)
(dictremove (namedobjdict) "DWGPROPS")
(dictadd (namedobjdict) "DWGPROPS" (entmakex xlist))
(princ)
)

oyxx1023 发表于 2007-6-14 12:26:00

<p>一个笨办法,把系统日期调整到你需要的时间,打开图纸再保存,再把时间调回来.</p><p>或者试试FSO,创建FSO接口,用vlax-put-propties方法试试.</p>

dwg001 发表于 2007-6-14 12:46:00

<p>几个关于时间的系统变量:</p><p class="MsoPlainText">TDCREATE 存储创建图形的当地时间和日期。</p><p class="MsoPlainText"><p></p></p><p class="MsoPlainText">TDINDWG 存储所有的编辑时间,即在保存当前图形之间占用的总时间。</p><p class="MsoPlainText"><p></p></p><p class="MsoPlainText">TDUCREATE 存储创建图形的通用时间和日期。</p><p class="MsoPlainText">TDUPDATE 存储最后一次更新/保存图形的当地时间和日期。</p><p class="MsoPlainText">&nbsp;TDUSRTIMER 存储用户消耗的时间计时器。</p><p class="MsoPlainText">&nbsp;TDUUPDATE 存储最后一次更新/保存图形的通用时间和日期。</p>

ZZXXQQ 发表于 2007-6-14 20:37:00

在空白图中插入要更改时间的图样再另存就能以当前时间和最少的用户编辑时间保存图样了(注意:可事先更改系统时间)。

也弓 发表于 2007-6-15 09:24:00

<p>我本来的目地是想选中多张图纸,自动purge,然后存盘,因为图纸大部分是原来的存档图,存盘后,修改时间就变成现在的了,我又不想图纸的修改时间变化,所以想寻求在lisp下能修改文件的修改日期的办法。有个软件SmartPurger可以实现上诉功能,主要是用起来图纸大点就出问题,所以想自己编一个,希望大家能给我提点方法,谢谢!</p>

bmy07 发表于 2012-9-6 17:28:01

(vl-file-systime filename)
页: [1] 2
查看完整版本: 读取dwg文件的修改时间