(gile) Posté(e) le 31 octobre 2008 Partager Posté(e) le 31 octobre 2008 Salut, Suite à ce sujet, j'ai essayé de finaliser la demande avec une routine aboutie (enfin, j'espère). Le but est d'afficher dans un attribut de bloc (donc extractible) la somme des aires de plusieurs polylignes qui sont liées au bloc. Je laisse le soin à chacun de créer son bloc à sa guise, il doit seulement respecter certains impératifs :- être nommé "TotalArea"- contenir au moins un attribut (étiquette "AREA") qui sera automatiquement renseigné avec la somme des aires des objets (polylignes Mpolygons) qui lui sont liés. Si le bloc contient un second attribut (étiquette "NOBJ") celui ci sera aussi automatiquement renseigné avec le nombre d'objets liés. Le LISP définit quatre commandes et une "variable système" :- TOTALAREA pour insérer un bloc "TotalArea" après avoir sélectionné les polylignes auxquelles il sera lié ;- AREACONV agit comme une variable système et gère le facteur de conversion entre l'unité du dessin et l'unité affichée dans l'attribut (ex : 10000 pour cm² en m²)- AREAEDIT pour lier ou délier des polylignes à un bloc "TotalArea" ;- AREASHOW pour mettre en surbrillance les polylignes liées à un bloc en passant le curseur sur le bloc ;- AREAUPD pour mettre à jour le bloc "TotalArea" sélectionné si des polylignes qui lui sont liées ont été modifiées ou supprimées.Une régénération provoque la mise à jour de tous les blocs "TotalArea". Ceci étant du à un réacteur, il faut que les lignes de code (à la fin du LISP) qui définissent ce réacteur (ou l'intégralité du code) soient chargées automatiquement à chaque démarrage (valise de la BD APPLOAD, fichiers *.mnl ou acaddoc.lsp) Par défaut, deux décimales sont affichées ainsi que les zéros de finPour modifier ces paramètres, il faut modifier les codes de TOTALAREA et deTotalAreaUpd (voir commentaires dans ces codes) EDIT 1 : mise à jour automatique similaire à celle des champs dynamiques en fonction de la valeur de FIELDEVAL EDIT 2 : réparé un dysfonctionnement dans le réacteur avec la commande ETRANSMIT. EDIT 3 : création et attribution automatique d'un calque "Total_surface". EDIT 4 : réparé un dysfonctionnement avec les blocs n'ayant plus aucune polyligne liée. EDIT 5 : les entités MPOLYGON sont traitées EDIT 6 : mise à jour automatique de tous les blocs avec les versions EDIT 7 : Ajout de AREABOX, un boite de dialogue de lancement des commandes. EDIT 8 : version 2.01 Deux attributs dynamiques : étiquette "AREA" pour la somme des aires des objets et "NOBJ pour le nombre d'objets. EDIT 9 : version 2.02 Les régions et les hachures sont aussi traitées. EDIT 10 : réparé un oubli d'initialisation de areaconv dans areabox. TotalArea.zip version 2.04 le fichier contient le LISP , un exemple de bloc et un fichier texte explicatif. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
nazemrap Posté(e) le 1 novembre 2008 Partager Posté(e) le 1 novembre 2008 Bonjour, je pensais que ces commandes étaient performantes, mais je n 'avais pas eu l 'occasion de m 'en servir.J 'ai testé celle-ci ce matin, effectivement c'est efficace !!!!! Et j 'imagine que les cas d 'utilisations probables sont nombreux....Heureux les bénéficiaires de telles possibilités. Super!!!!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 1 novembre 2008 Auteur Partager Posté(e) le 1 novembre 2008 Merci nazemrap :) J'ai modifié le LISP, la mise à jour automatique est désormais similaire à celle des champs dynamiques (ouverture, sauvegarde, traçage, etransmit, régénération) en fonction de la valeur de FIELDEVAL. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
jalna Posté(e) le 1 novembre 2008 Partager Posté(e) le 1 novembre 2008 Bonjour, Voila une routine aboutie!! Je dirais chapeau bas Monsieur! Quand je pense à mes galères avec les extractions de données qui marchent une fois sur deux, la je dois dire, que grace à toi, je vais oublier tout ça et ne prendre que ta routine. Si tu savais à quel point cela va me faciliter la tache, je pense que tu es loin de l'imaginer...... Depuis le temps que je cherche une routine de ce style, voila tu l'as fait........ Et de plus tu as ajouter des petits programmes sympa (AREASHOW........) Et tu as eu une super idée avec AREACONV!! Et tout cela avec des commentaires sur chaque routine!!! Merci encore Gile Mais comme je l'ai déja dit, je suis sur de ne pas être le seul à qui cela va faire plaisir!! Tiens encore une choseExtractions de données de surfaces dans un tableau AutoCAD sous 2008, okPassez votre fichier à une personne qui a 2006, il bosse dessus et enregistre, okOuvrez le sur 2008, adieu extractions de données................... Grace à TOTALAREA finit les galères.............Bon j'arrête on se croirait dans un téléachat.................. Bon Week End "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 1 novembre 2008 Auteur Partager Posté(e) le 1 novembre 2008 Merci jalna. J'ai modifié le code, le réacteur provoquait un dysfonctionnement avec la commande ETRANSMIT. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
jalna Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 Salut Gile Encore une petite chose qui pourrait etre sympa.......-Créer un calque Total Surface automatiquement et mettre le bloc totalarea sur ce calque! -Comme le pline block (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list (vla-get-Layers AcDoc) "TEXTE-SURFACES" ) ) ) (vla-add (vla-get-Layers AcDoc) "TEXTE-SURFACES" ) ) (vla-put-Layer ref "TEXTE-SURFACES") Le problème c'est que je ne sais ou placer ce code!!!!!!!!!!! "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 3 novembre 2008 Auteur Partager Posté(e) le 3 novembre 2008 C'est fait (version 1.06). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 Bonjour à toutes et tous, Peut être rudement pratique aussi ! Merci (gile) :P Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
jalna Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 Merci Gile!! liliPeut être rudement pratique aussi ! Pas tout compris! :casstet: "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 Re, jalna , je voulais dire lorsque j'aurai ce besoin, je n'oublierai pas cette routine,... ;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 Hello Un grand merci a Gilles :) Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
jalna Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 Oui Un grand merci à Gile et à ce forum!! (merci à vous)Pourvu que ça dure!!!!!! Ok lili Bonne journée................................................ "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
jalna Posté(e) le 3 novembre 2008 Partager Posté(e) le 3 novembre 2008 J'ai un petit soucis!!!!!!! Je fais le total de deux polylignesJ'en efface une et je regen, ça marche (mais à jour)J'efface la deuxième, je regen, et la une fois sur deux il me met zéro en surface ou alors il garde la dernière surface!! Bizarre :casstet: "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 14 novembre 2008 Auteur Partager Posté(e) le 14 novembre 2008 Salut, Je n'avais pas vu passer ton message.J'ai effectivement trouvé un dysfonctionnement quand il n'y a aucune polyligne dans le dessin.J'ai réparé ce dysfonctionnement ainsi que la possibilité de traiter un bloc qui n'aurait plus aucune polyligne liée (pour pouvoir lui en lier de nouvelles).J'espère que la nouvelle version (1.06) fonctionne désormais correctement.Merci pour ces retours. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 15 novembre 2008 Partager Posté(e) le 15 novembre 2008 Hello Gilles Attention: je débarque aves mes idées "saugrenues" !!! :P 1) Même routine "ou presque" pour traiter seulement les longueurs/perimètres et non pas les surfaces ! bloc = TotalPerimeter On peut être intéressé par les longueurs de polyligne sreprésentant du réseau (humide, energie, etc) par exemple ... 2) SVP serait-il possible d'inclure les fameux MPOLYGONs de MAP (ou CIVIL) dans cette fabuleuse routine ? Vue de loin, sachant que les fonctions (vla-get-area) & (vla-get-perimeter) traitent les MPOLYGONs, je pense que cela est possible "sans trop de boulot" !? Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 15 novembre 2008 Auteur Partager Posté(e) le 15 novembre 2008 Salut, 1) J'y pensais aussi, j'attendais un peu de finaliser celle-ci. 2) C'est fait. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 15 novembre 2008 Auteur Partager Posté(e) le 15 novembre 2008 Re, L'équivalent pour les longueurs (périmètres) ici. J'ai modifié le code de façon à ce qu'il fonctionne aussi avec les versions Merci de me confirmer que ça marche bien. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 15 novembre 2008 Partager Posté(e) le 15 novembre 2008 Hello Gilles Je viens de faire un test simple de TOTALAREA "dernier cri" avec MAP R6 (basé sur AutoCAD 2002) :- 5 polylignes closes de Parcelles + 1 MPolygon- totalarea sur les 6 objets : resultat dans le bloc totalarea OK- etirer qq poignees de polylignes et/ou MPolygon- regen- bloc totalarea mis a jour correctement AREAEDIT testé et OK AREASHOW testé et OK Verifications réalisées avec la routine "ZTOTM.lsp Donc on peut supposer que cela va fonctionner sur tout AutoCAD ou MAP ou CIVIL versions 2002 / 2004 Le Decapode Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 16 novembre 2008 Auteur Partager Posté(e) le 16 novembre 2008 Salut, J'ai jouté AreaBox qui ouvre une petite boite de dialogue pour le lancement des commandes. TotalPerim.zip et Totalarea.zip sont en téléchargement sur cette page avec un exemple de bloc. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 17 novembre 2008 Partager Posté(e) le 17 novembre 2008 Hello Gilles Je suggère une petite amélioration sur tes 2 excellentes routines TotalArea & TotalPerimeter ... Si le bloc/symbole Totalxxxxx a au moins 2 attributs, alors utilisez le 2eme attribut pour indiquer le nbr d'éléments liés par ton réacteur à ce bloc de surface ou perimétre ! :P D'ailleurs, ces 2 attributs peuvent être soit visibles, soit invisibles, donc on ne verra apparaître que ce qui nous intéresse :) Le Decapode (et ses idées "saugrenues") Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
thry0 Posté(e) le 17 novembre 2008 Partager Posté(e) le 17 novembre 2008 Bjr à tous, Le simple fait de relancer Areabox après une modif de surface, un update,met à jour automatiquement l'aire de l'objet ... Le bouton AreaUpd n'a donc pas d'utilité dans ce cas ! Voir s'il faut rectifier pour une mise à jour "voulue" où laisser comme celà en automatique ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 17 novembre 2008 Partager Posté(e) le 17 novembre 2008 Hello Je pense qu'il est intéressant de savoir si le bloc Totalxxxxxx est lié à qq objets seulement ou bien à 10 000 Polylignes/MPolygons de parcelles par exemple ! Sinon pour moi, la routine est excellente telle quelle !! :) Le Decapode "stoïque sur sa position" Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 17 novembre 2008 Auteur Partager Posté(e) le 17 novembre 2008 Bjr à tous, Le simple fait de relancer Areabox après une modif de surface, un update,met à jour automatiquement l'aire de l'objet ... Le bouton AreaUpd n'a donc pas d'utilité dans ce cas ! Voir s'il faut rectifier pour une mise à jour "voulue" où laisser comme celà en automatique ... Areabox ne fait qu'ouvrir la BD et lancer la commande sélectionnée.Les mise à jour se font :- soit pour l'ensemble des blocs, de la même façon que pour les champs : à la régénération, à l'enregistrement, à l'ouverture, au traçage ou au lancement de ETRANSMIT en fonction du paramétrage de fIELDEVAL ;- soit avec Areupd pour mettre à jour uniquement le bloc sélectionné (comme METTREAJOURCHAMP) ce qui devrait accélérer la procédure sur des fichiers un peu lourds contenant plusieurs blocs TotalArea. lecrabe, Je verrais ce que je peux faire pour ce second attribut ce soir... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 17 novembre 2008 Partager Posté(e) le 17 novembre 2008 Hello Gilles Merci il n'y a aucune urgence pour Totalxxxxx ! :) Encore Merci pour ARCSEG qui fonctionne bien et qui permet meme de garder les fameux Object Datas de MAP (ou CIVIL) car : - Les polylignes sont modifiees en fait, donc pas de souci ! - Pours les Arcs et Cercles, il suffit de les transformer en PolyArcs AVANT par les outils de nettoyage de dessins de MAP, ainsi ils deviennet automatiquement des PolyArcs, donc on lance ARC2SEG APRES ... :D :cool: Le Decapode "heureux" PS: J'ai honte, je n'ai pas encore testé TotalPerimeter alors que c moi qui ... :P Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 17 novembre 2008 Auteur Partager Posté(e) le 17 novembre 2008 Salut, J'ai modifié le LISP pour ajouter un second "attribut dynamique".Pour éviter toute confusion, les attributs sont identifiés par leurs étiquettes :AREA pour la somme des airesNOBJ pour le nombre d'objets (optionel) PS: J'ai honte, je n'ai pas encore testé TotalPerimeter alors que c moi qui ... C'est un copier/coller à peine modifié de celui-ci Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
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