lecrabe Posté(e) le 15 avril 2008 Posté(e) le 15 avril 2008 Hello J'ai farfouillé un peu partout et je n'ai pas trouvé mon bonheur :exclam: Il y a plein de routines qui travaillent sur les Xdatas et par exemple la bonne vieille commande XDLIST qui affiche sur l'ecran texte toutes les Xdatas d'un objet graphique Je desire une routine qui affiche dans un joli DCL, toutes les XDATAs d'un objet graphiiue selectionne !? :) Merci d'avance, Le Decapode (xdata tripatouilleur) Autodesk Expert Elite Team
(gile) Posté(e) le 15 avril 2008 Posté(e) le 15 avril 2008 Salut, Je ne sais pas si c'est "joli", mais voilà un premier jet. (defun c:xd (/ ent dlst str) (if (and (setq ent (car (entsel))) (setq dlst (cdr (assoc -3 (entget ent '("*"))))) (setq str "") ) (progn (foreach l dlst (foreach e l (setq str (strcat str (vl-princ-to-string e) " " ) ) ) (setq str (strcat str "\n")) ) (alert str) ) (alert "Cet objet ne comporte pas de données étendues") ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 15 avril 2008 Auteur Posté(e) le 15 avril 2008 Hello Gilles & MERCI Super ca marche bien mais c'est quand meme "un peu frustre" et comparable a ce qui est affiché par la commande XDLIST en mode texte Serait-il possible d'avoir un DCL avec N champs (sur 2 colonnes) où seraient affichés :- N champs avec le nom de la variable XDATA et juste à coté (A droite), son contenu eventuel Tant pis si il est prevu dans le DCL par exemple 20 lignes de 2 colonnes alors que l'on en utilise QUE: 1 ou 2 ou 3 etc Encore Merci, Le Decapode "chiant" Autodesk Expert Elite Team
rebcao Posté(e) le 15 avril 2008 Posté(e) le 15 avril 2008 et en plus il est éxigent le BESTIOT !!! sacré sale Bête ! Comment va le parigot ? Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
(gile) Posté(e) le 15 avril 2008 Posté(e) le 15 avril 2008 J'espère que cette fois ça répond aux exigences du décapode ;) NOTA : changer les valeurs dans cases n'a aucune incidence ;; XD (gile) ;; affiche une boite de dialogue qui liste les données étendues de l'objet sélectionné (defun c:xd (/ xd-box tmp file dcl_id ent dlst) (defun xd-box (dlst) (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line "XdBox:dialog{label=\"Données étendues\";" file ) (foreach l dlst (write-line (strcat ":boxed_column{label=" (vl-prin1-to-string (car l)) ";" ) file ) (foreach p (cdr l) (write-line (strcat ":edit_box{label=\"" (cond ((= 1000 (car p)) "1000 Chaîne : ") ((= 1002 (car p)) "1002 Accolade : ") ((= 1003 (car p)) "1003 Calque : ") ((= 1004 (car p)) "1004 Binaire : ") ((= 1005 (car p)) "1005 Maintient : ") ((= 1010 (car p)) "1010 Point : ") ((= 1011 (car p)) "1011 Position : ") ((= 1012 (car p)) "1012 Déplacement : ") ((= 1013 (car p)) "1013 Direction : ") ((= 1040 (car p)) "1040 Réel : ") ((= 1041 (car p)) "1041 Distance : ") ((= 1042 (car p)) "1042 Echelle : ") ((= 1070 (car p)) "1070 Entier 16 bits : ") ((= 1071 (car p)) "1071 Entier 32 bits : ") ) "\";value=\"" (vl-princ-to-string (cdr p)) "\";edit_width=30;}" ) file ) ) (write-line "}" file) ) (write-line "spacer;ok_only;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "XdBox" dcl_id)) (exit) ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) ) (if (and (setq ent (car (entsel))) (setq dlst (cdr (assoc -3 (entget ent '("*"))))) ) (xd-box dlst) (alert "Cet objet ne comporte pas de données étendues") ) (princ) ) [Edité le 15/4/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 16 avril 2008 Auteur Posté(e) le 16 avril 2008 Hello Gilles C parfait et TIP-TOP ! :) Comme d'hab Gilles a travaille avec efficacité et rapidité !! :D Mille mercis, Le Decapode Autodesk Expert Elite Team
(gile) Posté(e) le 16 avril 2008 Posté(e) le 16 avril 2008 Si tu n'as pas besoin de copier les valeurs, les case éditables son inutiles, cette version donne une boite moins imposante. (defun c:xd (/ xd-box tmp file dcl_id ent dlst) (defun xd-box (dlst) (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line "XdBox:dialog{label=\"Données étendues\";" file ) (foreach l dlst (write-line (strcat ":boxed_row{label=" (vl-prin1-to-string (car l)) ";:column{" ) file ) (foreach p (cdr l) (write-line (strcat ":text{label=\"" (cond ((= 1000 (car p)) "1000 Chaîne : ") ((= 1002 (car p)) "1002 Accolade : ") ((= 1003 (car p)) "1003 Calque : ") ((= 1004 (car p)) "1004 Binaire : ") ((= 1005 (car p)) "1005 Maintient : ") ((= 1010 (car p)) "1010 Point : ") ((= 1011 (car p)) "1011 Position : ") ((= 1012 (car p)) "1012 Déplacement : ") ((= 1013 (car p)) "1013 Direction : ") ((= 1040 (car p)) "1040 Réel : ") ((= 1041 (car p)) "1041 Distance : ") ((= 1042 (car p)) "1042 Echelle : ") ((= 1070 (car p)) "1070 Entier court : ") ((= 1071 (car p)) "1071 Entier long : ") ) "\";}" ) file ) ) (write-line "}:column{" file) (foreach p (cdr l) (write-line (strcat ":text{label=\"" (vl-princ-to-string (cdr p)) "\";}" ) file ) ) (write-line "}}" file) ) (write-line "spacer;ok_only;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "XdBox" dcl_id)) (exit) ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) ) (if (and (setq ent (car (entsel))) (setq dlst (cdr (assoc -3 (entget ent '("*"))))) ) (xd-box dlst) (alert "Cet objet ne comporte pas de données étendues") ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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