Aller au contenu

[RESOLU] Scan d'un DWG à l'image de Windirstat


Syl2007

Messages recommandés

Hello tous,

Tout d'abord : Vive Vous ! J'avais envie et je trouve ça pas mal.Ce matin c'est less is more, les fondamentaux.Sinon : Mon pc, un avion de chasse, des Giga Hz de vitesse de proc (3.6 GHz), des Gigaoctets de RAM (32 Go), des coeurs en veux-tu en voila (8) et Totocad 2017+Covadis+Autopiste V17 en mode bière ships football vautré dans le canapé : rien de nouveau.Pas tout le temps bien sûr mais trop souvent.

The question :Connaitriez-vous une commande permettant de lister le contenu d'un DWG : nbre de lignes, P2D, P3D, MNT, blocs, hachures, ... avec surtout leur taille, encombrement respectif ?A l'image du très bon WindirStat qui scan un disque dur et qui dit "quoi est où et pèse combien".Indispensable pour gérer des données.Et ça dans un but de faire du ménage ciblé.

Très bonne journée.

Sylvain

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Pas tout compris dans le préambule mais ce n'est pas grave...

 

Pour répondre ta demande, je vais attendre un peu des fois que quelqu'un intervienne avec une solution existante

Sinon je prendrai le clavier pour t'écrire ce lisp qui répondra à ton attente

Assez facile en fait quand on a un peu l’habitude sauf au sujet de la taille des objets

Qu'entends-tu par là ? des octets sur le disque ou une taille en unité dessin ?

 

Je guette les réponses et je reviens à la charge le cas échéant.

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Hello et merci Didier,

Désolé pas très clair en effet.Une taille en octet ou je sais pas quoi qui correspond à un "poids" qui touche la vitesse de maniabilité d'un dwg.

Tu sais quand tu t'évertues à Purger un dessin (tous les purges de l'univers qui existent) et puis qu'en fait c'est le bloc arbre qui existent 200 fois dans le dessin et qui te prend 7 Mo et surtout te fait ramer l'ordi. Parce ce bloc arbre, et bé c'est une daube.

Donc si dès le début je sais que c'est ce bloc arbre, c'est plus simple.

 

Ou alors c'est Totocad la daube, puisque si tu lui mets 500 000 P2D, éléments géométriques de base il me semble, et bien tu le mets dans les choux.Faites le test, une P2D de 10 mètres de longueur copiée 500 000 fois, et je parle de P2D, pas d'autres entités. Mais c'est un autre sujet, je digresse.Pour info, 500 000 éléments, sur des plans de synthèse de projet linéaire, on y arrive.

Cerise sur le gâteau, tu ouvres ce fichier avec un clone d'Autocad (GstarCAD) et ça marche mieux.

 

Des bises !

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Ce n'est guère plus clair car tu utilises des mots dont je ne comprends pas toujours le sens, c'est quoi P2D ?

Des points en 2D je ne vois pas en quoi la coordonnée Z pourrait agir sur la rapidité

Je pense que les éléments géométriques sont des entités AutoCAD (lignes polylignes cercles arc...)

Un arbre de 7Mo? je souhaite pour toi que c'est une façon de parler car sinon il faut revoir vraiment les définitions de blocs.

Certes un ralentissement se produit mais en gérant correctement les claques et en gelant pendant le travail on y arrive

 

Mes modèles numériques de terrain issus de relevés LiDAR se comptent en millions d'entités (Face3d) et on survit...

Tu devrais trouver un bénéfice en gérant la variable UNDOCTL car créer 500 000 objets doit bien fatiguer le fichier de suivi...

Il est quelquefois bénéfique de sortir en enregistrant et de ré-ouvrir le dessin ça libère bien en rapport avec le fichier d'annulation.

 

Pense aussi à ne pas utilser de polices TTF pendant le travail, tu changes au moment de la livraison si tu veux mais travailler avec du SHX est plus fluide.

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Hello,

P2D : Polyligne (2D)P3D : Polyligne 3D

Je disais : Connaitriez-vous une commande permettant de lister le contenu d'un DWG :nbre de lignes, P2D, P3D, MNT, blocs, hachures, ... avec surtout leur taille, encombrement respectif.

Dit autrement :Je cherche un outil qui pour un DWG donné me donne un listing exhaustif de ce qu'il contient.Qualité, quantité et caractéristiques du contenu.

Dans mon panier, j'ai des poires, j'en ai 6 et elles pèsent 450 grammes.Je peux avoir en plus des pommes, des kiwis, etc ... et lorsque j'enlève de mon panier son contenu, il est vide.5 fruits et légumes par jour Didier. Faudrait que j'y pense aussi. Un peu d'ananas aussi c'est bon.

Ce qui correspond au résultat d'un Control+A dans la fenêtre de propriétés.Mais il y a aussi je crois d'autres objets qui n'apparaissent pas dans la fenêtre de propriétés, par exemple :- "les applications enregistrées" et qui sont supprimées lors d'un Purger.- Les types de lignes DGN également supprimés lors d'un Purger, et qui peuvent créer un ralentissement important.

- D'autres objets, dont je n'ai plus le nom, qui peuvent être invisibles et venir d'autres programmes.- ...

 

A titre d'exemple, je citais le logiciel Windirstat qui liste le contenu d'un disque dur puis classe par type et taille du contenu.

Merci, très bonne fin de journée.

 

Lien vers le commentaire
Partager sur d’autres sites

Et ce Control+A, ce tout sélectionner que je viens de faire par erreur me donne le droit d'aller prendre un café puisqu'il bloque Autocad pour 5 min ...Je survis mais je trouve ça anormal.En ce qui concerne les millions de face 3D dont tu parles Didier, c'est bien que cela fonctionne bien chez toi mais en ce qui me concerne la sélection que je viens de faire et dont je parle fait "juste",désolé du peu, 150 000 éléments, c'est un fichier de profils en travers.

Ca vous fait ça aussi chez vous ?

Tchuss.

 

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Dans un genre un peu different de ce qui est demande ...

 

Parfois j'utilise ce Lisp Sympa

qui indique le nombre d'entites par calque relativement a la selection ...

 

Bye, lecrabe "triste"

 


;; 
;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/add-counter-to-lisp/td-p/7941574
;; 
;; Routine: Count_Objects_per_Layer by marko_ribar
;; 

(defun c:Count_Objects_per_Layer ( / ss n1 loop laylist layer n2 numlist stringlist listex ) ; mylist is global variable
 (princ "\nSelect objects to list used layers... ") 
 (if (setq ss (ssget))
   (progn
     (setq n1 (sslength ss))
     (setq loop 0)
     (textscr)
     (repeat n1
       (setq layer (cdr (assoc 8 (entget (ssname ss loop)))))
       (if (not (member layer laylist))
         (setq laylist (cons layer laylist))
       )
       (setq loop (1+ loop))
     )
     (setq laylist (acad_strlsort laylist))
     (setq mylist laylist)
     (setq n2 (length laylist))
     (setq numlist 0)
     (setq stringlist "\nSelected Layers...\n") 

     (princ "\n    LayerName   ( Count ) \n ")

     (repeat n2
       (sssetfirst nil ss)
       (setq listext (nth numlist laylist))
       (setq listext (strcat listext "    ( " (itoa (sslength (ssget "_I" (list (cons 8 listext))))) " ) " ))
       (setq stringlist (strcat stringlist "\n    " listext))
       (setq numlist (1+ numlist))
     )
     (princ stringlist)
     (sssetfirst nil nil)
   )
   (princ "\nNo Entities Selected... ") 
 )
 (princ)	
) 


Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Tu as cet exemple sur la page Didier qui reprend une partie de tes demandes.

 

Quand aux poids des objets.... cela me semble difficile à analyser; pour seul exemple un Xref ne pèsera rien dans ta base de donnée du dessin même alors quand terme de temps de réponse cela peut varier suivant l'xref utilisé.

Les blocs dynamiques, s'ils se révèlent pratique, peuvent être une vrai cata surtout s'ils sont un peu complexes et utilisé à outrance.

Je dirais la même choses pour les tableaux avec des champs dynamiques.

 

En dernier lieu les applicatifs verticaux: les objets AEC d'Autocad Archi, les dictionnaires alimentés par Covadis, des type de ligne de Microstation, des données d'objet étendues, bref plein de truc peuvent alourdir un dessin sans qu'on s'en aperçoivent. Un simple copier-coller d'un dessin à l'autre peut importer des choses non utiles à ton dessin.

A part de la rigueur, pas de recette magique

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous.

Syl2007, le plus judicieux est de copier/coller le code dans l'IDE d'AutoCAD, avec la commande "'VLIDE", et de cliquer sur l'icone "Charger la fenêtre d'édition active"...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Hello,

BonusCad, j'ai bien copier/coller le code du lien dans un fichier txt renommé en lsp mais ça ne marche pas.Surement un truc que j'oublie.

 

Je n'ai pas contrôlé le code mis en ligne par Didier.Je te propose de copier-coller directement en ligne de commande les codes (l'un après l'autre) donnés dans ce post sur CadXp.

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

Bonjour à tous,

Désolé du retard, merci pour vos réponses.

En me relisant, je me rend compte que j'étais au bord de la crise de nerf 😂, je précise que je n'avais pris aucun produit 🙂.

Finalement pour le problème de la sélection globale (CTRL+A) qui bloque Autocad, et bien fermer la fenêtre de propriétés est la solution ... énorme.

Pour le reste, les problèmes de lenteur, de performance, c'est tjrs le bazar à mon sens.

Très bonne journée !

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Si tu as un AutoCAD 2020 et/ou plus, pourquoi ne pas regarder du côté de la commande PURGER ?
image.png.98a11b8ef0ccc16a40cad2d4d988bedd.png

Certes cela peut prendre un peu de temps pour checker tout le monde car les infos ne sont dispo qu'en sélectionnant une seule ligne (ici, 1 définition de bloc), mais tu as le nombre d'objets concernés, leur taille en octets, leur localisation, ...

Bref cela peut s'avérer pas mal pour purger ou simplement contrôler ton dessin je suppose car tu peux avoir les découpages par rapport aux blocs, calques, groupes, etc...et tu peux même sélectionner directement les objets concernés lorsqu'ils ne sont pas imbriqué dans une définition de bloc 😉

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité