(gile) Posté(e) le 1 février 2011 Posté(e) le 1 février 2011 Salut, Après XDEDIT, je propose une version beta d'un nouvel outil. Cet outil s'adresse plutôt aux développeurs puisque les dictionnaires ne sont accessibles que par programmation. Il permet d'inspecter l'arborescence, ajouter des entrées, en supprimer (avec parcimonie), modifier des enregistrements (xrecord) aussi bien dans le dictionnaires des objets nommés (NOD) que dans les dictionnaires d'extension des entités. commande : EDICT Attention la modification des dictionnaires dont vous n'êtes pas l'auteur peut perturber le fonctionnement d'AutoCAD. http://img51.imageshack.us/img51/8079/dialogv.png DictionaryEditor.zip Si vous avez des problèmes pour dé-zipper ce fichier, utilisez 7zip (gratuit). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bseb67 Posté(e) le 2 février 2011 Posté(e) le 2 février 2011 Salut (Gile), zip téléchargé et en-cours d'essai. En tout cas, bravo pour l'interface :). C'est quand même mieuxqu'avec du dcl de base. Un premier détail, enfin, cela ne tient qu'a moi :le nombre de sous-élément à la fin du nom serai un petit plus. Par exemple dans le dessin de test, j'ai un certain nombre de groupes,donc une ligne "ACAD_GROUP", si je l'ouvre, pfuu, il y en a une flopée.Si à la place il y avait "ACAD_GROUP (135)". bon, je continue... a+ Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
(gile) Posté(e) le 2 février 2011 Auteur Posté(e) le 2 février 2011 Merci pour le retour. C'est vrai que les boites de dialogue faites avec Visual Studio n'ont pas grand chose à voir avec celles écrites en DCL. J'ai oublié de préciser : pour effacer des entrées ou des données dans les Xrecords il faut passer par le menu contextuel (ou la touche Suppr). Les entrées sont supprimées si on répond "Oui" à la boite d'alerte (il reste encore la possibilité de fermer le dessin sans enregistrer en cas de fausse manip). J'ai un peu amélioré certains comportements et réparé certains bugs (nouvelle DLL en téléchargement dans le premier message). Pour ceux qui seraient intéressés, les codes source (solution complète). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 2 février 2011 Posté(e) le 2 février 2011 Salut,C'a l'air très intéressant.Pourrais-tu expliquer le rôle d'une "extension". Comment cela fonctionne-t-il ? Est-ce renommable ? Quelle est la fonction ? J'ai des erreurs quelquefois. A priori c'est quand je clique sur Extension et que celui-ci ne devrait pas être allumé (quand je ne suis pas sur un élément qui peut recevoir une extension). Autre question : pourquoi représenter le NOD ? Je n'ai pas essayé l'onglet "entité". Ca viendra ici. J'avais essayé ton outil précédent. En tous cas, c'est sensass' de partager cet outil. Ca me servira puisque je me suis mis tout doucement à comprendre le sens et l'usage de ces dictionnaires pourtant connus depuis toujours. Well done anyway ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bseb67 Posté(e) le 2 février 2011 Posté(e) le 2 février 2011 Pfuu, si je tente de modifier un truc, je me tape une erreur :"exception non gérée...", Mais au moins cela ne plante pas :) Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
(gile) Posté(e) le 2 février 2011 Auteur Posté(e) le 2 février 2011 Salut, Je crois que je me suis un peu emmêlé les pinceaux avec les fichiers en téléchargement.Le numéro de la dernière version (1.01) apparait sur la boite de dialogue principale. Les dictionnaires sont un moyen utilisé par AutoCAD pour stocker des données liées au dessin ou à des objets.Ils se répartissent en deux groupes : Les dictionnaires liés au dessin ont un nom (clé) et sont tous des descendants du Dictionnaire des Objets Nommés (Named Objects Dictionary ou NOD). Les dictionnaires d'extensions sont liés à un objet (graphique ou nom). Tout objet AutoCAD (entité graphique, calque, dictionnaire, ...) peut avoir un (et un seul) dictionnaire d'extension. Les dictionnaires d'extension n'ont pas de nom, ce qui sert de clé est l'objet auquel ils appartiennent.En cela ils ressemblent au xdatas, tout en présentant plus de souplesse d'utilisation : pas de limite pour les données qu'ils contiennent, plus grande diversité des types de données, plus grande souplesse dans l'utilisation des codes DXF). Un dictionnaire (quelque soit sont type) peut contenir différent types d'objets :- un (et un seul) dictionnaire d'extension.- des dictionnaires nommés.- des objets personnalisés (custom objects) comme ceux utilisés par AutoCAD ou des applications.- des enregistrements (XRECORD) qui sont les containers pour les données de type chaine, nombre, point. On voit bien là les multiples imbrications possibles... L'outil que je propose là permet d'inspecter tout ça (il faudrait que je rajoute un onglet pour les tables, chaque objet d'une table (calque, définition de bloc, type de ligne, etc.) étant susceptible d'avoir un dictionnaire d'extension) et de modifier, d'ajouter, de supprimer des entrées ou des données aussi bien dans les dictionnaires du NOD que dans les dictionnaires d'extension d'entités. PS ; si vous avez des erreurs, merci de me dire les circonstances et ce que dit la ligne de commande ou la boite de dialogue (au moins jusqu'à la ligne qui donne la ligne dans le code qui a provoqué l'erreur). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 2 février 2011 Auteur Posté(e) le 2 février 2011 Petite précision concernant les dictionnaires. Les fonction LISP vlax-ldata-* utilisent aussi les dictionnaires (nommés ou d'extension) (vlax-ldata-put "DICO" "clef" 123)ajoute l'entrée "DICO" (dictionnaire) au NOD "clef" est l'équivalent d'un Xrecord mais c'est en fait un objet de type vlo_VL qui contiient la valeur 123. De même,(vlax-ldata-put (car (entsel)) "cle" 456)ajoute au dictionnaire d'extension de l'entité sélectionnée (ou crée ce dictionnaire s'il n'existait pas) et l'objet vlo_VL "cle" qui contient la valeur 456. Dans les deux cas EDICT "verra" les dictionnaires et les entrées vlo_VL mais les considère comme des 'objets personnalisés' parce que les données contenues dans ces objets ne sont accessibles qu'en LISP (et peut-être en ObjectARX/C++ natif).C'est ce que continue à reprocher certains programmeurs aux "LISP Datas" à savoir n'être pas accessible par tous les langages comme le sont les xdatas, dictionnaires et xrecords. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 3 février 2011 Posté(e) le 3 février 2011 Salut, Je n'ai pas pris de renseignements sur les extensions mais je le ferai. Problème rencontré :En attendant, c'est quand on est mal positionné (par exemple, je me suis mis sur "38EAF" de ACAD_BACKGROUND avec la souris) que le message d'erreur apparait. Car j'ai cliqué sur "Extension". Je peux te donner le message d'erreur mais c'est facilement reproduisible.J'ai bien compris que ca n'était pas possible mais le bouton est allumé, j'ai pas pu résister ! Tu dis Un dictionnaire (quelque soit sont type) peut contenir différent types d'objets :- un (et un seul) dictionnaire d'extension. Pourtant j'ai pu en ajouter plusieurs et encore en enfants, petits-enfants,.......en bricolant bien sur. C'est un abus de ma part.Je vais essayer de mieux comprendre les extensions de mon côté. quand j'aurai un peu le temps. http://img130.imageshack.us/img130/5889/03022011111220.png N'hésites pas si tu as besoin qu'on essaie des manips. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
(gile) Posté(e) le 3 février 2011 Auteur Posté(e) le 3 février 2011 Salut,Tu dis Un dictionnaire (quelque soit sont type) peut contenir différent types d'objets :- un (et un seul) dictionnaire d'extension. Pourtant j'ai pu en ajouter plusieurs et encore en enfants, petits-enfants,.......en bricolant bien sur. C'est un abus de ma part.Quand je dis ça, c'est le comportement d'AutoCAD que je décris : un objet ne peut contenir qu'un seul dictionnaire d'extension mais ce dictionnaire est aussi un objet AutoCAD qui peut lui aussi contenir un dictionnaire d'extension, etc. Le fait de pouvoir ajouter plusieurs dictionnaires d'extension au même objet dans la boite de dialogue est un oubli de ma part dans le code, la case "Extension" devrait être grisée quand l'objet sélectionné en contient déjà un.J'ai corrigé ça dans la nouvelle version (version 1.02). Par contre, je n'arrive pas à reproduire l'erreur que tu dis : mon dictionnaire est vide. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 3 février 2011 Posté(e) le 3 février 2011 Hola De mon côté, j'ai effacé la 1.01. Tout est écrasé chez moi.Je ne peux plus reproduire l'erreur.Donc avec la 1.02, plus de problèmes. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 Retour après quelques semaines d'utilisation. ... et redécouvertes des paradigmes de dicitonnaires. C'est vrai qu'avec ces dictionnaires on doit faire attention à ce qu'on fait m'ais qu'en même temps on est très libre, imbrication, homonymies, etc... Les dicos, c'est sympa, mais là, c'est vendu. Je charge souvent l'utilitaire. Bravo.... et merci ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
krunch Posté(e) le 2 octobre 2012 Posté(e) le 2 octobre 2012 Un bon outilMais j'ai une erreur 'eNotFromThisDocument'(avec AutoCad2010) à partir du moment où j'essaie de le faire marcher sur un 2è fichier ouvert dans la même session : d'abord quand je sélectionne une entrée du NOD ou de l'un de ses dictionnaires, ensuite immédiatement au lancement EDICT .. Veux-tu le rapport ?
(gile) Posté(e) le 2 octobre 2012 Auteur Posté(e) le 2 octobre 2012 Merci pour le retour, c'est réparé. Le lien est mis à jour dans le premier message. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 3 octobre 2012 Posté(e) le 3 octobre 2012 Salut (gile) Ca ne fonctionne pas sur une A2013. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 3 octobre 2012 Auteur Posté(e) le 3 octobre 2012 Salut (gile) Ca ne fonctionne pas sur une A2013. @+ Normal, il y a une rupture de compatibilité des applications .NET avec A2013 qui nécessite de re-compiler en ciblant de nouvelles références.Je ne l'ai pas fait systématiquement pour tout ce que j'ai pu poster en .NET, préférant attendre une demande. C'est chose faite, j'ai donc modifié le téléchargement dans le premier message qui contient maintenant 2 DLLs : DictionaryEditor_17.dll pour A2007-2012 et DictionaryEditor_19 pour A2013-?. 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