(gile) Posté(e) le 12 juin 2009 Posté(e) le 12 juin 2009 Salut, Les objets MPOLYGON sont des objets MAP qui réunissent en un seul objet des contours (cercles, polylignes) et des hachures. Quand on les importe dans AutoCAD standard (Vanilla), il deviennent des PROXY_OBJECTS à moins que AcMPolygonObj17.dbx (dans le répertoire d'installation : C:\Program Files\AutoCAD 20XX) soit chargé. On arrive même à créer ce type d'objet dans AutoCAD en LISP avec entmake, c'est un peu fastidieux parceque les données sont semblables à celles des objets hachure. Un exemple : (defun c:makeMPolygon (/ filename) (setq filename (strcat "acmpolygonobj" (substr (getvar "ACADVER") 1 2) ".dbx")) (or (member filename (arx)) (arxload filename) ) (entmake '((0 . "MPOLYGON") (100 . "AcDbEntity") (100 . "AcDbMPolygon") (70 . 1) (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . "ANSI31") (71 . 0) (91 . 2) (92 . 2) (73 . 0) (72 . 0) (93 . 5) (10 62.6859 18.6225 0.0) (10 120.0 60.2636 0.0) (10 177.314 18.6225 0.0) (10 155.422 -48.7543 0.0) (10 84.5779 -48.7543 0.0) (92 . 2) (73 . 0) (72 . 0) (93 . 4) (10 20.0 100.0 0.0) (10 20.0 -100.0 0.0) (10 220.0 -100.0 0.0) (10 220.0 100.0 0.0) (76 . 1) (52 . 0.0) (41 . 2.0) (77 . 0) (78 . 1) (53 . 0.785398) (43 . 0.0) (44 . 0.0) (45 . -4.49013) (46 . 4.49013) (79 . 0) (11 0.0 0.0 0.0) (99 . 0) (450 . 0) (451 . 0) (460 . 0.0) (461 . 0.0) (452 . 0) (462 . 0.0) (453 . 0) (470 . "") ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 12 juin 2009 Posté(e) le 12 juin 2009 hello gile C'est un peu comme les polygones AEC dans aa2010 aa2009 aa2008on peut aussi avoir une epaisseur de ligne definit et rajouter enlever des pointspar contre ca prend de la place dans le fichier DWG et parti comme tu es gile tu vas trouver un LISP pour rajouter des points ou en enlever au MPOLYGONE suivant votre version autocad il faut changer dans le LISp "acmpolygonobj18.dbx" le passer en "18" pour la version 2010 acmpolygonobj17.dbx pour la version 2009 je suppose a+ bon week phil [Edité le 12/6/2009 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 12 juin 2009 Auteur Posté(e) le 12 juin 2009 suivant votre version autocad il faut changer dans le LISp "acmpolygonobj18.dbx" le passer en "18" pour la version 2010 Merci PHILPHIL, c'est un peu ce que je voulais savoir, je vais modifier le code pour qu'il fasse ça automatiquement. et parti comme tu es gile tu vas trouver un LISP pour rajouter des points ou en enlever au MPOLYGONE Je ne suis pas sûr d'aller beaucoup plus loin en LISP avec les MPOLYGON, les données DXF de ces objets, comme celles des hachures sont un calvaire à manipuler. Par contre avec dotNET ces objets sont plus faciles à manipuler et possèdent des propriétés très intéressantes. À suivre... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 13 juin 2009 Auteur Posté(e) le 13 juin 2009 Salut, Pour le fun, une commande pour AutoCAD (de base) qui permet de transformer des objets (polylignes, polylignes2d, cercles) en MPOLYGON. EDIT : nouvelle DLL Procédure :- Télécharger VanillaMPoly.dll - Charger la DLL dans AutoCAD avec la commande NETLOAD,- Lancer la commande PL2MPG- Sélectionner des objets.- Entrez un nom de motif de hachure (ou un point pour aucun). http://img132.imageshack.us/img132/3578/mpolygon.png Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 13 juin 2009 Posté(e) le 13 juin 2009 Bonsoir à toutes et tous, De plus en plus fort le (gile) !! :P :D Est-ce qu'il faut recharger cette ".dll" à chaque ouverture de AutoCAD ? C'est vraiment un MPolygon MAP ? @+, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
PHILPHIL Posté(e) le 13 juin 2009 Posté(e) le 13 juin 2009 hello a fond dans la programmation ce week end gile ?? les *.DLL que tu créer , c'est ca que tu appelles le "dotnet" phil[Edité le 13/6/2009 par PHILPHIL] [Edité le 13/6/2009 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 13 juin 2009 Auteur Posté(e) le 13 juin 2009 Est-ce qu'il faut recharger cette ".dll" à chaque ouverture de AutoCAD ? Si tu veux t'en servir à chaque fois, oui. Le chargement vaut pour toute la session, comme (vl-load-com). Tu pourrais faire un fichier AutoCAD.lsp dans lequel tu mets :(command "_netload" "AcadMPolygon.dll ") C'est vraiment un MPolygon MAP ? Oui, mais sans les données objet (Object Datas). les *.DLL que tu créer , c'est ca que tu appelles le "dotnet" Pas tout à fait, dotNET est une plateforme de développement basée sur le Framework.NET qui permet l'utilisation de plusieurs langages (C#, VB.net, C++, J#, F#, IronPython...).Les programmes .NET sont compilés en assemblies qui peuvent être des fichiers .exe ou .dll (uniquement dll en ce qui concerne AutoCAD).J'en dis un peu plus long ici. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 13 juin 2009 Posté(e) le 13 juin 2009 Re, Ok ! Merci pour la réponse Gilles, quelles sont les différences fondamentales entre un fichier "acad.lsp" et "acaddoc.lsp" ? Et qu'est-ce que les Object Datas ? Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 13 juin 2009 Auteur Posté(e) le 13 juin 2009 quelles sont les différences fondamentales entre un fichier "acad.lsp" et "acaddoc.lsp" ? Par défaut variable système ACADLSPASDOC à 0), acad.lsp n'est chargé qu'une fois au démarrage d'AutoCAD et acaddoc.lsp à l'ouverture de chaque document. Si ACADLSPASDOC est à 1 AutoCAD.lsp aura le même comportement que acaddoc.lsp. Les fichiers DLL ou ARX chargés au démarrage n'ont pas besoin d'être rechargés à chaque document, on peut donc utiliser le fichier AutoCAD.lsp pour lancer ces chargements.Ce fichier peut aussi contenir la célèbre expression (vl-load-com) qui, elle non plus, n'a pas besoin d'être relancée à l'ouverture de chaque document. Pour les DLL et ARX, on peut aussi créer une clé dans la base de registre qui provoquera le chargement automatique de ces fichiers.Pour chaque fichier, il faut créer une nouvelle clé dans :HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.0\ACAD-5001:40C\Applications La fonction LISP ci-dessous : DllAutoLoad s'occupe d'écrire tout ça.Elle requiert 3 arguments :- le nom de la nouvelle clé- une description- le nom du fichier DLL (ou le chemin complet s'il n'est pas dans les chemins de recherche) Exemple :(DllAutoLoad "Mpolygon" "Commande PL2MPG pour créer des MPolygons" "AcadMpolygon.dll") ;;; DllAutoLoad ;;; Inscrire une DLL dans la base de registre pour qu'elle se charge automatiquement ;;; ;;; Arguments ;;; key : (string) la clé dans la base de registre ;;; descr : (string) description ;;; filename : (string) nom ou chemin complet du fichier .dll ;; (DllAutoLoad "GetFileLisp" "Charger GetFileLisp.dll" "GetFileLisp.dll") (defun DllAutoLoad (key descr filename / fullname) (vl-load-com) (if (setq fullname (findfile filename)) (mapcar '(lambda (k v) (vl-registry-write (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications\\" key ) k v ) ) '("DESCRIPTION" "LOADCTRLS" "LOADER" "MANAGED") (list descr 2 fullname 1) ) (princ (strcat "\nLe fichier \"" filename "\" est introuvable.") ) ) ) Et qu'est-ce que les Object Datas ? Je ne saurais trop te dire je ne connais pas MAP, lecrabe pourrait certainement t'en dire plus (voir ici).D'après ce que j'ai compris, ce sont des données liées aux objets Mpolygon un peu comme des Xdatas mais je n'arrive pas à y accéder avec AutoCAD standard. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 14 juin 2009 Posté(e) le 14 juin 2009 Bonjour à toutes et tous, Salut Gilles, Merci, :D PS: En reprenant tes notes de cours, je me suis rendu compte que j'avais la réponse à la première question,... Désolé de te faire répéter, ... En espérant que cette question puisse servir à d'autres,... J'ai l'impression que cces histoires de fichiers de démarrage ne séduisent pas les foules,... Et pourtant, sacré intérêt,... :P @+, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 14 juin 2009 Auteur Posté(e) le 14 juin 2009 J'ai l'impression que cces histoires de fichiers de démarrage ne séduisent pas les foules,... Et pourtant, sacré intérêt,... C'est normal, comme tu as pu le voir, ce n'est pas très simple et ça demande beaucoup de rigueur.De plus, ça n'a pas beaucoup d'intérêt tant qu'on a pas beaucoup de grosses applications à charger. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 14 juin 2009 Posté(e) le 14 juin 2009 Re, De plus, ça n'a pas beaucoup d'intérêt tant qu'on a pas beaucoup de grosses applications à charger. C'est un peu mon cas, Mais j'imagine vite l'intérêt dans une entreprise,.... A mon tout petit niveau, je ferai un test au lycée sur quelques routines simple en Topo,... PS: Je pense commencer mon premier lisp par la création de places de parking automatique,... Pas un énorme intérêt si ce n'est de pratiquer le lisp pendant que la formation est encore chaude ,... J'espère m'y mettre à partir de mi-juillet,... Merci encore Gilles, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 14 juin 2009 Auteur Posté(e) le 14 juin 2009 Salut, Nouvelle version de la DLL, un peu plus évoluée.Il reste un problème que je n'arrive pas à résoudre l'échelle des hachures est bien prise en compte dans les propriétés du MPolygon mais, à la création, il s'affiche toujours à l'échelle 1.0 :casstet: Il est toujours possible de modifier l'échelle le motif etc. depuis la palette de propriétés Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 15 juin 2009 Posté(e) le 15 juin 2009 Bonjour à toutes et tous, Salut Gilles, mais, à la création, il s'affiche toujours à l'échelle 1.0 comment ça ? http://free0.hiboox.com/images/2509/2fc3d04cb516af3197404586abe15a6e.jpg Pas de pb chez moi,... Ou alors, j'ai pas bien compris,... Sur l'image, j'ai relancé une seconde fois la fonction pour voir si il gardait en mémoire le choix précédent. Vrai pour le motif de hachures et l'échelle,... Beau travail, Merci encore de ce partage, :P Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 15 juin 2009 Auteur Posté(e) le 15 juin 2009 Salut, Essaye de faire uu MPolygon avec les hachure à l'échelle 1 et un autre avec les hachures à l'échelle 5. Les affichent les hachures à l'échelle 1 alors que dans la fenêtre des propriétés les échelles sont bien 1 et 5.J'ai le même problème avec l'angle du motif : les propriétés sont prisent en compte mais l'objet ne se met pas à jour... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 15 juin 2009 Posté(e) le 15 juin 2009 Re, Exact ! Je viens juste de m'en rendre compte ! Par contre, modifiable dans les propriétés,... C'est déjà ça, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 15 juin 2009 Auteur Posté(e) le 15 juin 2009 Ça y est j'ai réussi à corriger ce bug grâce à l'aide d'un membre de TheSwamp. La nouvelle DLL VanillaMPoly.dll (penser à supprimer les autres ;) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 15 juin 2009 Posté(e) le 15 juin 2009 Re, En effet, fonctionne nickel ! Merci encore Gilles, :P Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 15 juin 2009 Posté(e) le 15 juin 2009 Hello Les Object Data (ou Donnees d'Objet) de MAP sont un peu l'equivalent des XDATAs d'AutoCAD ! Avec MAP ou CIVIL, on peut creer N tables de donnes d'Objets avec N champs de type (Integer, Reel Flottant, Caractere et Point) Sur n'importe quel objet graphique AutoCAD (ligne, arc, cercle, polyligne, MPolygon, bloc, point, texte, etc) on peut affecter UNE (ou N mais c rare) table(s) de donnees d'objet et mettre 1 (ou N mais c tres rare) enregistrement(s) MAP et CIVIL sont capables de creer / modifier / consulter et associer/dissocier les tables de donnees d'objet sur les entites graphiques A ma connaissance un AutoCAD simple ne peut rien en faire car il n'a pas le module pour decrypter les donnees d'objet. Eh oui elles sont cryptees ! Le Decapode Autodesk Expert Elite Team
lili2006 Posté(e) le 15 juin 2009 Posté(e) le 15 juin 2009 Bonjour à toutes et tous, Salut lecrabe, Merci de ce complément d'information, :D Je suis allez faire un tour sur le lien que propose (gile) et ou tu as déjà développé ces infos,... Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
fabcad Posté(e) le 17 novembre 2010 Posté(e) le 17 novembre 2010 Bonsoir, Je me permet de réveiller ce post car j'utilise à la maison ta fonction de conversion, le seul inconvénient c'est que la fonction ne permet pas de faire une conversion de plusieurs polylignes en plusieurs mpolygones. Car quand tu lances la conversion de plusieurs polylignes cela crée un mpolygone unique, un petit choix de traitement serai le bienvenu. Voilà voilà, Merci,
lecrabe Posté(e) le 17 novembre 2010 Posté(e) le 17 novembre 2010 Hello Fab Si tu as un MAP (ou un CIVIL), il faut utiliser la commande : _MPOLYGON : pour Créer un MPolygon manuellement puis Clic-Clic-Clic puis Fermer ou SINON voir l’option S qui est très intéressante pour convertir N polylignes closes en UN SEUL MPOLYGON _MAPPOLYLINETOPOLYGON : pour Convertir N Polylignes en N MPolygons Par contre je pense que la fonction de Gilles ne dispose pas de cetet subtilite !?A verifier ??? Le Decapode Autodesk Expert Elite Team
fabcad Posté(e) le 17 novembre 2010 Posté(e) le 17 novembre 2010 Merci Pat, C'est évidemment sur un AutoCAD seul que je souhaiterais réaliser ces manipulations. A+
(gile) Posté(e) le 17 novembre 2010 Auteur Posté(e) le 17 novembre 2010 Salut, La commande PL2MPG fonctionne ainsi parce qu'il est possible de créer un seul Mpolygon à partir de plusieurs polylignes (personnellement, je vois là un intérêt majeur des Mpolygons). Mais il est tout à fait possible d'utiliser cette commande dans un LISP avec la fonction command, les commandes définies en .NET sont en tout point semblables aux commande natives (définies en ObjectARX/C++) Exemple pour faire un Mpolygon par polyligne (hachures ANSI31 à l'échelle 10 et conservation des objets source)Pour des Mpolygons sans hachures et suppression des objets source, remplacer :(command "pl2mpg" ent "" "ANSI31" 10.0 "Non")par :(command "pl2mpg" ent "" "." "Oui") (defun c:toto (/ n ss ent) (if (setq ss (ssget '((0 . "LWPOLYLINE") (-4 . "&") (70 . 1)))) (repeat (setq n (sslength ss)) (setq ent (ssname ss (setq n (1- n)))) (command "pl2mpg" ent "" "ANSI31" 10.0 "Non") ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
fabcad Posté(e) le 17 novembre 2010 Posté(e) le 17 novembre 2010 Merci Gile pour tes infos, C'est dans le but d'avoir des batiments remplis et uniques dans un fichier cadastre. Y'a plus qu'à copier coller ton bout de code. Bonne soirée Fabrice
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