这里还有在图形内部操作这些信息的纯Vlisp代码:

- ; Properties needs a routine
- ; Date: Thu, 16 Jul 1998 09:31:23 -0700
- ; From: Frank Whaley <few@autodesk.com>
- ; Here is '(getProps)' and '(putProps)', which
- ; extract Drawing Property data to a set of global
- ; variables (Title, Subject, etc.) and repack the
- ; data from the same set of variables.
- (defun getProps (/ xlist val)
- ;; shorthand for extraction
- (defun val (gc999)
- (cdr (assoc gc999 xlist))
- )
- ;; pick Xrecord from NOD
- (setq xlist (dictsearch (namedobjdict) "DWGPROPS"))
- ;; extract values to variables
- (setq Title (val 2)
- Subject (val 3)
- Author (val 4)
- Comments (val 6)
- Keywords (val 7)
- LastSavedBy (val 8)
- RevisionNo (val 9)
- Cust0 (val 300)
- Cust1 (val 301)
- Cust2 (val 302)
- Cust3 (val 303)
- Cust4 (val 304)
- Cust5 (val 305)
- Cust6 (val 306)
- Cust7 (val 307)
- Cust8 (val 308)
- Cust9 (val 309)
- )
- xlist
- )
- (defun putProps (/ xlist)
- ;; remove any existing Properties
- (dictremove (namedobjdict) "DWGPROPS")
- ;; make data list
- (setq xlist
- (list
- '(0 . "XRECORD")
- '(100 . "AcDbXrecord")
- '(1 . "DWGPROPS COOKIE")
- (cons 2 Title)
- (cons 3 Subject)
- (cons 4 Author)
- (cons 6 Comments)
- (cons 7 Keywords)
- (cons 8 LastSavedBy)
- (cons 9 RevisionNo)
- (cons 300 Cust0)
- (cons 301 Cust1)
- (cons 302 Cust2)
- (cons 303 Cust3)
- (cons 304 Cust4)
- (cons 305 Cust5)
- (cons 306 Cust6)
- (cons 307 Cust7)
- (cons 308 Cust8)
- (cons 309 Cust9)
- (cons 40 (getvar "TDINDWG"))
- (cons 41 (getvar "TDCREATE"))
- (cons 42 (getvar "TDUPDATE"))
- )
- )
- ;; make Xrecord and add to NOD
- (dictadd (namedobjdict) "DWGPROPS" (entmakex xlist))
- )
源自:http://xarch.tu-graz.ac.at/autoc ... ation/msg00111.html |