FastFiber

LISP-programmering van de Drawing Properties in AutoCAD

Gestart door HofCAD2, vr 18 06 2004, 16:12:35

Vorige topic - Volgende topic

HofCAD2

Is het een Mission Impossible om via een LISP-programma
bij de Drawing Properties van AutoCAD(2000, 2000i en 2002)
ook de HyperLink base in te vullen?
Bij AutoCAD 2004 werkt mijn lispprogramma helemaal niet meer,
daar de Drawing Properties niet meer in een XRECORD staan!
Is er een oplossing voor zowel AutoCAD 2002- en 2004?

;;******Programma DWGPROP********

(defun C:DWGPROP ()
 (setq   Title       "Dwgprops"
   Subject       "Dwgprops met lisp invullen"
   Author       "HofCAD"
   Comments    (strcat "Is het een Mission Impossible\r\n"
                         "om via een LISP-programma\r\n"
                         "bij de Drawing Properties van AutoCAD\r\n"
                         "(2000, 2000i en 2002) ook de\r\n"
                         "HyperLink base in te vullen?\r\n"
                         "Bij AutoCAD 2004 werkt dit programma\r\n"
                         "helemaal niet meer, daar de Drawing Properties\r\n"
                         "niet meer in een XRECORD staan!")
   Keywords    "Lisp, Drawing Properties, Dwgprops"
   LastSavedBy "HofCAD"
   RevisionNo  "12345"
   Cust0       "HofCAD0=06/05-2004"
   Cust1       "HofCAD1=07/05-2004"
   Cust2       "HofCAD2=08/05-2004"
   Cust3       "HofCAD3=09/05-2004"
   Cust4       "HofCAD4=10/05-2004"
   Cust5       "HofCAD5=11/05-2004"
   Cust6       "HofCAD6=12/05-2004"
   Cust7       "HofCAD7=13/05-2004"
   Cust8       "HofCAD8=14/05-2004"
   Cust9       "HofCAD9=15/05-2004"
   hyperlink   "http://www.autodesk.com"
;;Deze hyperlinkwaarde komt wel in het XRECORD te staan, wat men kan
;;controleren met GETPROP of (C:GETPROP), maar wordt echter niet in de
;;dialoogbox van dwgprops weergegeven.
 )
 (putProps Title      Subject     Author     Comments   Keywords
       LastSavedBy        RevisionNo Cust0   Cust1
       Cust2      Cust3     Cust4        Cust5   Cust6
       Cust7      Cust8     Cust9        hyperlink
      )
)
;;
(defun putProps   (Title      Subject   Author    Comments    Keywords
       LastSavedBy        RevisionNo       Cust0
       Cust1      Cust2     Cust3     Cust4    Cust5
       Cust6      Cust7     Cust8     Cust9    hyperlink
       /      xlist
      )
 (dictremove (namedobjdict) "DWGPROPS")
 (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"))
          (cons 1 hyperlink)
          '(90 . 10)
         )
 )
 (dictadd (namedobjdict) "DWGPROPS" (entmakex xlist))
);einde dwgprop

;;******Programma GETPROP********

(defun c:GETPROP   (/ xlist dxf)
 (defun dxf (code elist)
   (cdr (assoc code elist))
 )
 (setq xlist (dictsearch (namedobjdict) "DWGPROPS"))
 (setq   Title       (dxf 2
          xlist
          )
   Subject       (dxf 3 xlist)
   Author       (dxf 4 xlist)
   Comments    (dxf 6 xlist)
   Keywords    (dxf 7 xlist)
   LastSavedBy
          (dxf 8 xlist)
   RevisionNo
          (dxf 9 xlist)
   Cust0       (dxf 300 xlist)
   Cust1       (dxf 301 xlist)
   Cust2       (dxf 302 xlist)
   Cust3       (dxf 303 xlist)
   Cust4       (dxf 304 xlist)
   Cust5       (dxf 305 xlist)
   Cust6       (dxf 306 xlist)
   Cust7       (dxf 307 xlist)
   Cust8       (dxf 308 xlist)
   Cust9       (dxf 309 xlist)
 )
 xlist ;slechts voor het listen
);einde getprop

HofCAD

Citaat van: HofCAD2Is het een Mission Impossible om via een LISP-programma
bij de Drawing Properties van AutoCAD(2000, 2000i en 2002)
ook de HyperLink base in te vullen?
Bij AutoCAD 2004 werkt mijn lispprogramma helemaal niet meer,
daar de Drawing Properties niet meer in een XRECORD staan!
Is er een oplossing voor zowel AutoCAD 2002- en 2004?

Beste Meedenkers,

Het is geen Mission Impossible om via een VisualLISP-programma
bij de Drawing Properties van AutoCAD 2004
resp. Title, Subject, Author, Comments, Keywords, LastSavedBy, RevisionNo en hyperlink in te vullen.
Maar hoe je de Custom Properties met Visual LISP moet invullen, weet ik nog niet.
Onderstaand programma werkt overigens niet in eerdere AutoCAD versies,
daar de LISProutine vla-get-SummaryInfo nog niet bestaat.

Groetjes HofCAD CSI.



(defun C:DWGPROP ()
(setq Title "Dwgprops"
Subject "Dwgprops met lisp invullen"
Author "HofCAD"
Comments (strcat "Het is geen Mission Impossible\r\n"
"om via een Visual LISP-programma\r\n"
"de Drawing Properties van AutoCAD\r\n"
"2004 in te vullen.\r\n"
"Hoe men echter de Custom Properties\r\n"
"moet invullen, weet ik nu nog niet.")
Keywords "Lisp, Drawing Properties, Dwgprops"
LastSavedBy "HofCAD"
RevisionNo "12345"
Cust0 "HofCAD0=06/05-2004"
Cust1 "HofCAD1=07/05-2004"
Cust2 "HofCAD2=08/05-2004"
Cust3 "HofCAD3=09/05-2004"
Cust4 "HofCAD4=10/05-2004"
Cust5 "HofCAD5=11/05-2004"
Cust6 "HofCAD6=12/05-2004"
Cust7 "HofCAD7=13/05-2004"
Cust8 "HofCAD8=14/05-2004"
Cust9 "HofCAD9=15/05-2004"
hyperlink "http://www.autodesk.com")
;;******SubProgramma PutProps********
(defun PutProps(Title Subject Author Comments Keywords LastSavedBy RevisionNo
Cust0 Cust1 Cust2 Cust3 Cust4 Cust5 Cust6 Cust7 Cust8 Cust9 hyperlink)
(vl-load-com)
(setq CADapp (vlax-get-acad-object))
(setq Tek (vla-get-ActiveDocument CADapp))
(setq SumInf (vla-get-SummaryInfo Tek))
(vla-put-Title SumInf Title)
(vla-put-Subject SumInf Subject)
(vla-put-Author SumInf Author)
(vla-put-Comments SumInf Comments)
(vla-put-Keywords SumInf Keywords)
(vla-put-LastSavedBy SumInf LastSavedBy)
(vla-put-RevisionNumber SumInf RevisionNo)
(vla-put-HyperlinkBase SumInf hyperlink)
);einde PutProps
(PutProps Title Subject Author Comments Keywords LastSavedBy RevisionNo
Cust0 Cust1 Cust2 Cust3 Cust4 Cust5 Cust6 Cust7 Cust8 Cust9 hyperlink)
);einde DWGPROP
ACADcadabra