PHILPHIL Posté(e) le 8 décembre 2010 Posté(e) le 8 décembre 2010 bonjour je voudrais recuperer une propriété personnalisée du dessin pour m'en servir comme variable (presque constante quand meme ) dans un lisp "zeroREF" par exemple ici http://www.cadxp.com/sujetXForum-28879.htm j'ai trouvé ca(vlax-dump-object (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) T) mais ou dois je mettre le "zeroREF" dans cette ligne toto = zeroREF(personnalisé) (setq toto (vlax-dump-object (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) T) merci phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Titifonky Posté(e) le 8 décembre 2010 Posté(e) le 8 décembre 2010 Bonjour, Une routine trouvée sur internet http://www.cadtutor.net/forum/showthread.php?32034-Drawing-Properties (defun GetInfo(Key / sInf cPrp pVal) (vl-load-com) (setq sInf(vla-get-SummaryInfo (vla-get-ActiveDocument (vlax-get-acad-object)))) (if(vl-catch-all-error-p (vl-catch-all-apply 'vla-GetCustomByKey (list sInf Key 'pVal))) (princ(strcat "\n*** ERROR. Key '" Key "' not fouund! ")) (princ(strcat "\n" Key " = " pVal)) ) (princ) ) www.le-metal.net, sur la métallerie
Patrick_35 Posté(e) le 8 décembre 2010 Posté(e) le 8 décembre 2010 Salut Tout dépend de quelle clé tu as besoinPar exemple, tu lances la commande _dwgprops et tu mets dans le titre "Mon_Titre" Un(vlax-dump-object (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) T)permet de voir l'ensemble des clésDonc, un(vla-get-title (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))))me retourne "Mon_Titre" Pour forcer la valeur, un(vla-put-title (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) "Tu es le meilleur") Et pour vérifier que la valeur voulue est bien écrite, on lance la commande _dwgprops et je retrouve mon superbe titre ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
PHILPHIL Posté(e) le 8 décembre 2010 Auteur Posté(e) le 8 décembre 2010 hello merci pour les reponse mais (vla-get-title ....) recupere le titre dans l'onglet résumé dans _dwgprops il y a 4 onglets "général, résumé, statitiques" avec des noms de valeurs fixes - et l'onglet "personnaliser" avec des nom de valeurs à personnaliser justementce sont ses données la que je voudrais récuperer nom : datep1 valeur : le 25/12/2010nom : datep2 valeur : le 31/01/2011nom : zeroref valeur : 125.62 récuperer : le 25/12/2010 ou 125.62 a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 8 décembre 2010 Posté(e) le 8 décembre 2010 Salut, As tu regardé les méthodes applicables à l'objet SummaryInfo avec l'expression donnée par Patrick_35 : (vlax-dum-object ...) et/ou dans l'aide aux développeurs (ActiveX and VBA Reference) ? (vla-get-CustomByKey (vla-GetSummaryInfo (vla-get-ActiveDocument (vlax-get-acad-object))) "datep1" 'toto)Affecte la valeur de la propriété personnalisée "datep1" à la variable toto. Mais si aucune propriété nommée "datep1" n'existe, l'expression ci dessus provoquera une erreur.Le code donné par Titifonky permet d'éviter l'interruption du code si cette erreur survient et renvoie un message. Personnellement j'utilise plutôt cette tournure qui retourne la valeur ou nil si elle n'existe pas : (defun gc:GetCustomByKey (key / val) (vl-catch-all-apply '(lambda () (vla-GetCustomByKey (vla-get-SummaryInfo (vla-get-ActiveDocument (vlax-get-acad-object))) key 'val ) ) ) val ) (setq toto (gc:GetCustomByKey "datep1")) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 9 décembre 2010 Auteur Posté(e) le 9 décembre 2010 hello merci gile et les autres pour vos réponses As tu regardé les méthodes applicables à l'objet SummaryInfo avec l'expression donnée par Patrick_35 : (vlax-dum-object ...) et/ou dans l'aide aux développeurs (ActiveX and VBA Reference) ? oui j'ai essaye de chercher par moi meme mais comme j'ai du installer internet explorer beta 9 j'ai bien lancer une recherche de "vla-GetSummaryInfo" avec l'aide autocad il y a deux jours mais ca tourne encore si tu vois ce que je veux dire l'aide autocad n'en est plus une il ne trouve rien de rien, gros BUGGGGG a+phil [Edité le 9/12/2010 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 9 décembre 2010 Posté(e) le 9 décembre 2010 Salut, L'aide pour trouver les méthodes et propriétés applicables aux objets COM était dans l'aide aux développeurs à la rubrique ActiveX and VBA Reference (le VBA d'AutoCAD est basé sur cette même interface). Cette rubrique a disparu de l'aide avec la version 2011 (à récupérer sur une version antérieure). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
canotier Posté(e) le 28 mars 2011 Posté(e) le 28 mars 2011 Bonjour la liste,Un bout de code par Frank Whaley trouvé sur le groupe de discussion Autodesk. ;; dwgprops.lsp ;; ;; This code demonstrates extraction and insertion of Drawing ;; Properties from LISP. Two functions are provided: ;; '(dp-get)' for extracting Properties to global variables, and ;; '(dp-put)' for inserting Properties from those same global ;; variables. Items that are updated by the save reactor are ;; also shown. ;; (defun c:dp-get (/ xlist val) ;; shorthand for extraction (defun val (code) (cdr (assoc code xlist)) ) ;; pick Xrecord from NOD (setq xlist (dictsearch (namedobjdict) "DWGPROPS")) ;; extract values to global variables (setq dp:Title (val 2) dp:Subject (val 3) dp:Author (val 4) dp:Comments (val 6) dp:Keywords (val 7) dp:LastSavedBy (val 8) dp:RevisionNo (val 9) dp:Cust0 (val 300) dp:Cust1 (val 301) dp:Cust2 (val 302) dp:Cust3 (val 303) dp:Cust4 (val 304) dp:Cust5 (val 305) dp:Cust6 (val 306) dp:Cust7 (val 307) dp:Cust8 (val 308) dp:Cust9 (val 309) ) xlist ) (defun dp-put (/ xlist safeStr) ;; safe string (defun safeStr (v) (if (= 'STR (type v)) v "") ) ;; remove any existing Properties (dictremove (namedobjdict) "DWGPROPS") ;; make data list (setq xlist (list '(0 . "XRECORD") '(100 . "AcDbXrecord") '(1 . "DWGPROPS COOKIE") (cons 2 (safeStr dp:Title)) (cons 3 (safeStr dp:Subject)) (cons 4 (safeStr dp:Author)) (cons 6 (safeStr dp:Comments)) (cons 7 (safeStr dp:Keywords)) (cons 8 (getvar "loginname")) (cons 9 (safeStr dp:RevisionNo)) (cons 300 (safeStr dp:Cust0)) (cons 301 (safeStr dp:Cust1)) (cons 302 (safeStr dp:Cust2)) (cons 303 (safeStr dp:Cust3)) (cons 304 (safeStr dp:Cust4)) (cons 305 (safeStr dp:Cust5)) (cons 306 (safeStr dp:Cust6)) (cons 307 (safeStr dp:Cust7)) (cons 308 (safeStr dp:Cust8)) (cons 309 (safeStr dp:Cust9)) (cons 40 (getvar "TDINDWG")) (cons 41 (getvar "TDCREATE")) (cons 42 (getvar "TDUPDATE")) ) ) ;; make Xrecord and add to NOD (dictadd (namedobjdict) "DWGPROPS" (entmakex xlist)) ) ;; END of dwgprops.lsp
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant