GEGEMATIC
Membres-
Compteur de contenus
1 416 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par GEGEMATIC
-
Salut, Est-ce que les problèmes de recherche de licence lorsqu'on a le malheur de faire un clic droit sur une polyligne 3d vont être pires ? Est-ce que la licence qui reste indisponible pendant 5 minutes lorsque Covadis plante (j'appelle ça la double peine) va être indisponible pendant une heure ? Je charie, mais cette histoire de licence dématérialisée ne m'interresse pas en tant que client, et a plutôt tendance à me faire peur ! a+, Gégé PS: Lorsqu'une communauté de commune prend la compétence eau potable, la 1ère chose qu'elle fait c'est: - Changer les compteurs - Augmenter le prix du m3 !
-
Au final, c'est simple d’avoir la liste des sommets, et c'est très simple d'avoir la profondeur totale: ;;*************************************************************************** ;;§/poly/ Délivre la liste des sommets du fond de forme d'une plateforme /nepol ;;retourne une seule liste de liste de points 3d avec le nom de la plateforme au début ;;(pw_lsomm_FF_3d_covgrading (enam)) ;;("Herisson Dallage 40cm + finition 20 cm 2" (1.99604e+06 2.23606e+06 98.4) (1.99604e+06 2.23606e+06 98.4) (1.99603e+06 2.23606e+06 99.39) (1.99604e+06 2.23606e+06 99.39) (1.99604e+06 2.23606e+06 99.39) (1.99603e+06 2.23606e+06 99.39) (1.99603e+06 2.23606e+06 99.39)) (defun pw_lsomm_FF_3d_covgrading (epol / enget ltmp res prof nom x y z) (setq enget (entget epol)) (setq nom (cdr (assoc 1 enget))) (setq prof (cdr (assoc 140 enget))) ;(mapcar 'cdr (setq prem (vl-remove-if-not '(lambda (x) (or (= 10 (car x)) (= 92 (car x)) ) ) enget ) ) ;) (foreach l prem (if (/= 92 (car l)) (setq ltmp (cons (cdr l) ltmp)) (setq res (cons (reverse ltmp) res) ltmp nil ) ) ) ;;liste points niveau fini (if ltmp (setq res (cons ltmp res)) ) (setq res (pw_flatten_list res)) (setq res (mapcar '(lambda (pt) (setq x (car pt) y (cadr pt) z (last pt)) (list x y (- z prof)) ) res)) (cons nom res) ) ;; ***************************************************************************** ;;§/listes/ ecrase une liste de liste a une liste d'élements/lst ;;non recursive, ne gère qu'un niveau ;(pw_flatten_list '((1 2)(3 4) 4.5 (5 6))) -> (1 2 3 4 4.5 5 6) ; (defun pw_flatten_list (lst / l deb) (setq deb (car lst)) (setq lst (cdr lst)) (if (not (listp deb)) (setq deb (list deb)) ) (foreach l lst (if (listp l) (setq deb (append deb l )) (setq deb (append deb (list l ))) ) ) deb )
-
Salut à toutes et tous, J'ai un projet où il y a beaucoup de plateformes avec peu de talus, mais beaucoup de structures différente. Donc pas besoin d'entrée en terre, mais dans un 1er temps un fichier de point avec les coordonnées x,y,z du fond de forme serai bien approprié. J'ai pas l'impression que ce soit possible de base ? a+ Gégé
-
Salut, merci a tous les deux ! a+ Gégé
-
Salut a toutes et à tous, je m’aperçois que ma vieille routine "blocdubloc", qui place toute la définition d'un bloc avec les propriété "dubloc" par pointage, a un problème, et je n'ai pas réussi à le reproduire. Parfois elle ne s'arrête pas, et parcours tous les blocs, mais pas toujours ... enfin ça m'emmerde. ça a certainement été fait en mieux par qq d'autre, donc si une bonne âme à ça sous la main ... a+ Gégé
-
Bonnes pratiques de dessinateur ?
GEGEMATIC a répondu à un(e) sujet de sylarr dans AutoCAD 2020-2024
Salut, c'est vrais que la nuance est maigre, mais pour moi : Si tu veux laisser maximum de souplesse, tu met dubloc, mais tu peux aussi vouloir éviter que les utilisateurs utilisent des couleurs forcées, la tu met ducalque. PS: Si seulement les multilignes intégraient les propritété "dublocs" a+ gégé -
Bonnes pratiques de dessinateur ?
GEGEMATIC a répondu à un(e) sujet de sylarr dans AutoCAD 2020-2024
Salut, dac avec vous: Pour les blocs, 0, ducalque (pour un dessin ayant vocation à être mis en référence) dubloc pour les autres, c'est le principe général. ne pas dessiner sur le calque 0, c'est primordial pour un dessin ayant vocation à être mis en référence, car il est impossible de désactiver le calque 0 d'une xref: 0 + 0 = 0 mais on arrive jamais à gérer tous les cas: par exemple, j'ai besoin des altitudes sur certain points, insérés sur certains calques, mais pas sur d'autres ... et la Microstation avait un truc génial: les adistion de numéros: 50 + 1 = 51, 50 + 2 = 52. Si autocad permettait un suffixe de calque d'attribut ce serait très bien. a+ Gégé -
Lisp pour ajouter un texte à côté de plusieurs points avec un Z
GEGEMATIC a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Salut, ce qui est fou, c'est qu'historiquement, le Lisp est un langage d'intelligence artificielle ! les "machines Lisp" étaient le nec plus ultra des années 80 ! Grace à Autocad, c'est un vieux langage qui fait de la résistance ... a+, Gégé -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Ok, je vais faire comme ça. Je suis déjà trop content d'avoir enfin identifié des sources de ralentissement pour lesquelles il y a une solution, une solution qui n'est pas de se priver d'une fonctionnalité. (En gros travailler avec Autocad 2010 sous Autocad 2021 ...) Messages à tous: Si votre réseau est lent, utilisez "disponible hors connexion" ça va accélérer votre Autocad ... a+ Gégé -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
J'ai fait un test vite fait, pas l'air concluant mais je n'ai plus beaucoup de temps. du coup je t'envoi mon dessin: https://fromsmash.com/kZmaP-kkw1-dt a+ merci -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Bon j'ai bien trouvé les fonction générales, j'ai testé sur un dessin contenant: - Une image non référencée (mais trouvable) - 3 images non résolues (introuvables) dont une renommée Rien ne se passe, mes 4 images sont toujours là ... -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
"c:\accoreconsole" ? Non bien sur, je l'ai créé spécialement, mais "E:\aclsp\ini" l'était déjà. De toute façon, j'ai intérêt à faire comme j'avais prévu, le bat et scr placé dans un répertoire fixe, présent dans le path de windows, a+ gégé -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
ça peut être bien, tu en a plusieurs dans ta collection je vois ... mais pour les tester, il faut la définition de: getaxdbdoc D'avance merci ! autre chose : c'est pas plutôt : "Detach unresolved images from drawings contained in a folder." ça tombe bien, c'est de ça que j'ai besoins ... -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
1er test ultra simple: Répertoire et fichiers: "C:\accoreconsole\console.bat" "C:\accoreconsole\console.scr" "C:\accoreconsole\dessin1.dwg" "C:\accoreconsole\dessin2.dwg" Contenu fichiers bat: cd "c:\accoreconsole" for /f "delims=" %%f IN ('dir /s /b "*.dwg"') do "C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "%%f" /s console.scr pause Contenu fichiers scr: (setvar 'clayer "0") zoom et _qsave résultat: C:\accoreconsole>cd "c:\accoreconsole" C:\accoreconsole>for /F "delims=" %f IN ('dir /s /b "*.dwg"') do "C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "%f" /s console.scr C:\accoreconsole>"C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "C:\accoreconsole\dessin1.dwg" /s console.scr Redirect stdout (file: C:\Users\Gerald\AppData\Local\Temp\accc177802). AcCoreConsole: StdOutConsoleMode: processed-output: enabled,auto AutoCAD Core Engine Console - Copyright 2020 Autodesk, Inc. All rights reserved. (R.163.0.0) Execution Path: C:\Program Files\Autodesk\AutoCAD 2021\accoreconsole.exe Version Number: R.163.0.0 (UNICODE) Chargement de Base AEC... Chargement des DLL de Modeler. Résolu Xréf "Xref - VEP tunnel de la Mescla et Reveston_A": Xref - VEP tunnel de la Mescla et Reveston_A.dwg "Xref - VEP tunnel de la Mescla et Reveston_A.dwg" introuvable. Résolu Xréf "Xref-Topo_Reveston-Sud": .\Xref-Topo_Reveston-Sud.dwg "Xref-Topo_Reveston-Sud.dwg" introuvable. Résolu Xréf "LZ3_Export Recolement MESCLA": LZ3_Export Recolement MESCLA.dwg "LZ3_Export Recolement MESCLA.dwg" introuvable. Régénération du modèle. **** Variable système modifiée **** 1 des variables système gérées a été modifiée par rapport à la valeur préférée. Utilisez la commande MONITEURVARSYS pour afficher les modifications. Commande: Commande: "console.scr": Impossible de trouver le fichier. Commande: Commande: Commande inconnue "EXTERNALREFERENCES". Appuyez sur F1 pour obtenir de l'aide. Commande: Commande: *Annuler* Commande: Commande: *Annuler* Commande: _.quit C:\accoreconsole>"C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "C:\accoreconsole\dessin2.dwg" /s console.scr Redirect stdout (file: C:\Users\Gerald\AppData\Local\Temp\accc266682). AcCoreConsole: StdOutConsoleMode: processed-output: enabled,auto AutoCAD Core Engine Console - Copyright 2020 Autodesk, Inc. All rights reserved. (R.163.0.0) Execution Path: C:\Program Files\Autodesk\AutoCAD 2021\accoreconsole.exe Version Number: R.163.0.0 (UNICODE) Chargement de Base AEC... Régénération du modèle. xte peut ne pas s'imprimer **** Variable système modifiée **** 1 des variables système gérées a été modifiée par rapport à la valeur préférée. Utilisez la commande MONITEURVARSYS pour afficher les modifications. Commande: Commande: "console.scr": Impossible de trouver le fichier. Commande: Commande: Commande inconnue "EXTERNALREFERENCES". Appuyez sur F1 pour obtenir de l'aide. Commande: Commande: *Annuler* Commande: Commande: *Annuler* Commande: _.quit On voit que la méthode du script dans le même répertoire ne macrhe pas, il faut spécifier son chemin -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
et aussi le fait que je n'ai pas mis de qsave, car j'aavais mal compris ton blog: J'ai cru que ça voulait dire "enregistre automatiquement" Je refait des essais encore plus simples, sans $ et je te tiens au courant a+ -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Non, regarde bien mon script, il s'appelle spurgec, mais il n'y a pas plus spurge dedans, simplement un : (print "script") Au début j'avais la totale, avec un chemin réseau. j'ai simplifié au fur et à mesure, chemin local, pas de profile, script minimaliste, mais les dessins ne sont pas ouverts et pas sauvegardés. en plus, il n'accepte pas les noms de fichier comportant plusieurs "." ! Comme si c'était moi qui décide ! a+ gégé -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
salut Fraid, c'est un zéro pointé ! rien ne marche, même en ayant revu considérablement à la baisse mes ambitions: Difficile de résumer tout ce qui ne marche pas, puisque rien ne marche, mais à chaque fois différemment. 1) Exactement selon ton procédé: J'ai un répertoire avec 2 dessins, et les 2 fichiers nécessaires: "X:\Users\Gerald\Documents\$accoreconsole\spurgec.scr" "X:\Users\Gerald\Documents\$accoreconsole\spurgec.bat" dans spurgec.scr: (print "script") On ne peut pas faire plus simple ! dans spurgec.bat cd "X:\Users\Gerald\Documents\$accoreconsole" for /f "delims=" %%f IN ('dir /s /b "*.dwg"') do "C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "%%f" /s spurgec.scr je lance spurgec.bat: X:\Users\Gerald\Documents\$accoreconsole>cd "X:\Users\Gerald\Documents\$accoreconsole" X:\Users\Gerald\Documents\$accoreconsole>for /F "delims=" %f IN ('dir /s /b "*.dwg"') do "C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "%f" /s spurgec.scr X:\Users\Gerald\Documents\$accoreconsole>"C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "X:\Users\Gerald\Documents\$accoreconsole\72010.01-PG G0701 Rev D-Bassin_Vue en plan.dwg" /s spurgec.scr Redirect stdout (file: C:\Users\Gerald\AppData\Local\Temp\accc189722). AcCoreConsole: StdOutConsoleMode: processed-output: enabled,auto AutoCAD Core Engine Console - Copyright 2020 Autodesk, Inc. All rights reserved. (R.163.0.0) Execution Path: C:\Program Files\Autodesk\AutoCAD 2021\accoreconsole.exe Version Number: R.163.0.0 (UNICODE) Chargement de Base AEC... Chargement des DLL de Modeler. Résolu Xréf "Xref-Topo_Reveston-Sud": .\Xref-Topo_Reveston-Sud.dwg [FORMES_CG06.SHX] n'a pas pu être localisé. rimer "Xref-Topo_Reveston-Sud" chargé: X:\Users\Gerald\Documents\$accoreconsole\Xref-Topo_Reveston-Sud.dwg Le fichier de référence "Xref-Topo_Reveston-Sud" a peut-être été modifié depuis le dernier enregistrement du dessin hôte. Résolu Xréf "Xref - VEP tunnel de la Mescla et Reveston_A": Xref - VEP tunnel de la Mescla et Reveston_A.dwg "Xref - VEP tunnel de la Mescla et Reveston_A.dwg" introuvable. Résolu Xréf "LZ3_Export Recolement MESCLA": LZ3_Export Recolement MESCLA.dwg "LZ3_Export Recolement MESCLA.dwg" introuvable. Régénération du modèle. **** Variable système modifiée **** 1 des variables système gérées a été modifiée par rapport à la valeur préférée. Utilisez la commande MONITEURVARSYS pour afficher les modifications. Commande: Commande: "spurgec.scr": Impossible de trouver le fichier. Commande: Commande: Commande inconnue "EXTERNALREFERENCES". Appuyez sur F1 pour obtenir de l'aide. Commande: Commande: *Annuler* Commande: Commande: *Annuler* Commande: _.quit X:\Users\Gerald\Documents\$accoreconsole>"C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "X:\Users\Gerald\Documents\$accoreconsole\Xref-Topo_Reveston-Sud.dwg" /s spurgec.scr Redirect stdout (file: C:\Users\Gerald\AppData\Local\Temp\accc149562). AcCoreConsole: StdOutConsoleMode: processed-output: enabled,auto AutoCAD Core Engine Console - Copyright 2020 Autodesk, Inc. All rights reserved. (R.163.0.0) Execution Path: C:\Program Files\Autodesk\AutoCAD 2021\accoreconsole.exe Version Number: R.163.0.0 (UNICODE) Chargement de Base AEC... Régénération du modèle. xte peut ne pas s'imprimer **** Variable système modifiée **** 1 des variables système gérées a été modifiée par rapport à la valeur préférée. Utilisez la commande MONITEURVARSYS pour afficher les modifications. Commande: Commande: "spurgec.scr": Impossible de trouver le fichier. Commande: Commande: Commande inconnue "EXTERNALREFERENCES". Appuyez sur F1 pour obtenir de l'aide. Commande: Commande: *Annuler* Commande: Commande: *Annuler* Commande: _.quit 2) Selon ce que j'avais prévu au début : Script et bat dans un répertoire du path, "e:\aclsp\ini\" "E:\ACLSP\INI\spurgeb.bat" "E:\ACLSP\INI\spurgeb.scr" dans spurgeb.bat: for /f "delims=" %%f IN ('dir /b "*.dwg"') do "C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "%%f" /s "e:\aclsp\ini\spurgeb.scr" /p "Map Covadis" Bien noter que dans ce cas, un profil est spécifié. dans spurgeb.scr: (print "script") Toujours aussi simple ! je lance: PS X:\Users\Gerald\Documents\$accoreconsole> spurgeb X:\Users\Gerald\Documents\$accoreconsole>for /F "delims=" %f IN ('dir /b "*.dwg"') do "C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "%f" /s "e:\aclsp\ini\spurge.scr" /p "Map Covadis" X:\Users\Gerald\Documents\$accoreconsole>"C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "72010.01-PG G0701 Rev D-Bassin_Vue en plan.dwg" /s "e:\aclsp\ini\spurge.scr" /p "Map Covadis" Redirect stdout (file: C:\Users\Gerald\AppData\Local\Temp\accc149682). AcCoreConsole: StdOutConsoleMode: processed-output: enabled,auto AutoCAD Core Engine Console - Copyright 2020 Autodesk, Inc. All rights reserved. (R.163.0.0) Execution Path: C:\Program Files\Autodesk\AutoCAD 2021\accoreconsole.exe Version Number: R.163.0.0 (UNICODE) Chargement de Base AEC... Chargement des DLL de Modeler. Résolu Xréf "Xref-Topo_Reveston-Sud": .\Xref-Topo_Reveston-Sud.dwg [FORMES_CG06.SHX] n'a pas pu être localisé. rimer "Xref-Topo_Reveston-Sud" chargé: X:\Users\Gerald\Documents\$accoreconsole\Xref-Topo_Reveston-Sud.dwg Le fichier de référence "Xref-Topo_Reveston-Sud" a peut-être été modifié depuis le dernier enregistrement du dessin hôte. Résolu Xréf "Xref - VEP tunnel de la Mescla et Reveston_A": Xref - VEP tunnel de la Mescla et Reveston_A.dwg "Xref - VEP tunnel de la Mescla et Reveston_A.dwg" introuvable. Résolu Xréf "LZ3_Export Recolement MESCLA": LZ3_Export Recolement MESCLA.dwg "LZ3_Export Recolement MESCLA.dwg" introuvable. Régénération du modèle. **** Variable système modifiée **** 1 des variables système gérées a été modifiée par rapport à la valeur préférée. Utilisez la commande MONITEURVARSYS pour afficher les modifications. Commande: Commande: Chargement du fichier annulé: e:\aclsp\ini\spurge.scr Commande: Commande: Commande inconnue "EXTERNALREFERENCES". Appuyez sur F1 pour obtenir de l'aide. Commande: Commande: *Annuler* Commande: Commande: *Annuler* Commande: _.quit X:\Users\Gerald\Documents\$accoreconsole>"C:\\Program Files\\Autodesk\\AutoCAD 2021\\accoreconsole.exe" /i "Xref-Topo_Reveston-Sud.dwg" /s "e:\aclsp\ini\spurge.scr" /p "Map Covadis" Redirect stdout (file: C:\Users\Gerald\AppData\Local\Temp\accc288682). AcCoreConsole: StdOutConsoleMode: processed-output: enabled,auto AutoCAD Core Engine Console - Copyright 2020 Autodesk, Inc. All rights reserved. (R.163.0.0) Execution Path: C:\Program Files\Autodesk\AutoCAD 2021\accoreconsole.exe Version Number: R.163.0.0 (UNICODE) Chargement de Base AEC... Régénération du modèle. xte peut ne pas s'imprimer **** Variable système modifiée **** 1 des variables système gérées a été modifiée par rapport à la valeur préférée. Utilisez la commande MONITEURVARSYS pour afficher les modifications. Commande: Commande: Chargement du fichier annulé: e:\aclsp\ini\spurge.scr Commande: Commande: Commande inconnue "EXTERNALREFERENCES". Appuyez sur F1 pour obtenir de l'aide. Commande: Commande: *Annuler* Commande: Commande: *Annuler* Commande: _.quit PS X:\Users\Gerald\Documents\$accoreconsole> La on remarque le: chargement de script annulé ! je suis effondré, parceque j'ai tout misé sur cette solution, et je n'arrive même pas à faire marcher un cas super simple. J'aurais du tester avant. a+ Gégé -
Non, détacher que les images non référencées OU les images non résolues. Et en fait, dès le 1er dessin, je suis tombé sur un image qui ne s'enlevait pas. j'avais le même pb avec mon lisp à moi, c'est pour ça que je l'avais décrit comme "pas finit" En fait cette image a été renommée. Je sais que j'ai déjà eu ce problème de liaison entre les informations d' un dictionnaire et d'entité, que j'avais résolu, mais je ne me souvient plus de quoi il s'agissait. Bon c'est pas grave, je vais déjà essayer le script console avec spurge, ça enlèvera 99% des pb ... a+ Gégé
-
Salut a tous, et a Gile en particulier, je suis étonné qu'une page traitant d'un pb aussi courant soit aussi vieille ? Il y a une nouvelle version quelque part ? Parceque sur celle là, j'ai un problème, c'est que lorsqu'une image a été renommée, ce nom n'est que dans le dictionnaire, pas dans la propriété name, qui pointe plutôt vers le filename. pour trouver ce nouveau nom je dois faire ça: ;; Recherche du "dictionnaire" des images (s'il existe) (setq im_dict (vl-catch-all-apply 'vla-item (list (vla-get-Dictionaries (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)))) "ACAD_IMAGE_DICT") ) ) (if (vl-catch-all-error-p im_dict) (setq im_dict nil) ) (cdr (assoc 3 (entget (handent (vla-get-handle im_dict))))) -> "Logo_OGE_RN" là j'ai le bon nom pour le détacher, mais comment faire le lien entre l'image à détacher, parcequ'elle est unresolved ou unreferenced, et son nom de scène ? encore une emmerde et il faut que je tombe dessus... a+ gégé
-
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Avec ton script, je devrais pouvoir utiliser les commandes de Gile: ;;https://cadxp.com/topic/10147-super-purge/#elControls_51491_menu ;;https://cadxp.com/topic/19793-super-purge/#elControls_105516_menu j'essaye et je vous dit -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Question à Fraid, quel profil utilise la console ? on peut le spécifier ? -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Trop bien ! je connaissais pas ! du coup le dbx perd de son interet ! -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
;;******************************************************************************** ;§/blocs/crée un Script de purge et de suppression de dwg des xref du dessin /none (defun c:script_purge_xref ( / f) ;/ fech fin (setvar "cmdecho" 1) (setvar "highlight" 1) ;;(setq dir (PW_PICK_DIRECTORY "Répertoire racine pour nettoyage de dessins" "e:\\")) (setq lst-f (PW_LISTRESOLVEDXREF) ) ;;;(if (not gc-GetFolderDlg) ;;; (command "_netload" ;;; (strcat aclsp-chem "DotNet/LispExtension/LispExtension.dll") ;;; ) ;;; ) ;;; (pw_bydefault "gc-chem" (pw_unslashit aclsp-chem)) ;;; ;;; (setq lst-f (gc-getfiledlg ;;; "Sélectionnez les fichiers à traiter :" ;;; gc-chem ;;; "Fichier dwg (*.dwg)|*.dwg" ;;; t ;;; ) ;;; ) ;;(setq gc-chem (vl-filename-directory (car lst-f))) (setq gc-chem (getvar "dwgprefix")) ;(setq ldwg (vl-directory-files chem "*.dwg")) (setq g (open (strcat gc-chem "redefdwg.scr") "w")) (foreach dxf lst-f (setq nblc (vl-filename-base dxf)) (setq res (strcat gc-chem "\\" nblc ".dwg")) (write-line "_open" g) (write-line (pw_fab_chaine dxf) g);_pour les noms de fichier avec espace ;;(write-line "(c:NA_DELETE_ALL_TABLE)" g) (write-line "_layer" g) (write-line "_set" g) (write-line "0" g) (write-line "" g) (write-line "_purge" g) (write-line "_all" g) (write-line "*" g) (write-line "_no" g) (write-line "_zoom" g) (write-line "_e" g) ;;; (write-line "_zoom" g) ;;; (write-line "_extent" g) (write-line "-image _detach *" g) (write-line "_qsave" g) (write-line "" g) (write-line "" g) (write-line "_close" g) ) (close g) ) -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Pour virer ces xref et images non valide, je suis à la recherche de routines en dbx, car le gestionnaire de Xref ne permet que de changer leur chemin. Moi je veux les virer, si on ne me les a pas données, c'est que j'en ai pas besoin. j'ai déjà ces éléments là, en dbx : ;;*********************************************************************************** ;;§/dbx/Changer toutes les xref d'un dessin de type attaché via dbx /none (defun c:DbxAllXrefAttached () (setq dbx (pw_open_dwg_dbx (setq dess (getfiled "dwg pour passer en xref de type attaché par dbx" "" "dwg" 0)))) (setq blocks (vla-get-blocks dbx)) (vlax-for oB blocks (if (= (vla-get-isXref oB) :vlax-true) (setpropertyvalue (vlax-vla-object->ename oB) "IsFromOverlayReference" 0) ) ) ;;(setq dess (strcat (car dess) (cadr dess) "-Attached.dwg")) (vla-saveAs Dbx dess) ;;(vla-save Dbx);_ca ne marche pas, je ne sais pas pourquoi (vlax-release-object Dbx) ) ;;*********************************************************************************** ;;§/dbx/Changer toutes les xref d'un dessin de type superposées via dbx /none (defun c:DbxAllXrefOverlay () (setq dbx (pw_open_dwg_dbx (setq dess (getfiled "dwg pour passer en xref de type attaché par dbx" "" "dwg" 0)))) (setq blocks (vla-get-blocks dbx)) (vlax-for oB blocks (if (= (vla-get-isXref oB) :vlax-true) (setpropertyvalue (vlax-vla-object->ename oB) "IsFromOverlayReference" 1) ) ) ;;(setq dess (strcat (car dess) (cadr dess) "-Overlay.dwg")) (vla-saveAs Dbx dess) ;;(vla-save Dbx);_ca ne marche pas, je ne sais pas pourquoi (vlax-release-object Dbx) ) ;;*********************************************************************************** ;;§/dbx/Ouvrir un fichier dwg externe via objetcDbx/dwg ;;De patrick 35 ;;http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=13402#pid ;;(setq Dbx (pw_open_dwg_dbx "c:/test.dwg")) ;;(setq Dbx (pw_open_dwg_dbx (getfiled "dwg pour dbx" "" "dwg" 0))) (defun pw_open_dwg_dbx (dwg / dbx) (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16) (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument")) (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2) ) ) ) ) (vla-open dbx dwg) dbx ) et d'autres qui ne le sont pas, mais qui seraient très utiles en Dbx: ;******************************************************************************** ;§/xref/pour détacher toutes les Xrefs dont le chemin n'est pas valide/none ;;idée originale : Gile (defun c:detach_nonvalides () (if (not xref-lst) (3listes_xref) ) (mapcar '(lambda (x) (setq path (vla-get-Path (vla-item (vla-get-blocks acdoc) x))) (if (not (open path "r")) (vla-detach (vla-item (vla-get-Blocks AcDoc) x)) ) ) xref-lst ) ) ;**************************************************************************** ;§/xref/Détache les images non résolues (pas finit) /none (defun c:DetachUnresolvedImage ( / l chem lnom) (foreach l (pw_list_eimagedef) (if (not (findfile (setq chem (cdr (assoc 1 (entget l )))))) (progn (setq nom (vl-filename-base chem) lnom (cons nom lnom)) ;;; (print chem) ;;; (prompt "\nUnresolved: la fonction n'est pas finie !") ) ) ) (if lnom (progn (print (setq lnom (pw_ch_de_lst lnom ","))) (command "-image" "_d" lnom) ) ) ) ;;******************************************************************************** ;§/xref/Pour récupérer les "noms" (vla-get-name) des Xrefs dans 3 listes/none ;;;xref-lst : les noms de toutes les Xrefs du dessin ;;;xref-lst1 : les noms des Xrefs "parents" (pouvant en contenir d'autres) avec la listes des xrefs filles (contenues par) ;;;xref-lst2 : les noms des Xrefs imbriquées dans les Xrefs de xref-lst1 ou dans celles de xref-lst2 ;;;(imbrication double ou triple ou plus...), les Xrefs les plus "profondément imbriquées" se trouvant en fin de liste. ;;idée originale par giles ;;post original: ;;http://cadxp.com/topic/10043-detacher-xrefs-imbriques-et-ref-croisees/ ;; AcDoc : pointeur vers le document actif ;; ss : sélection de tous les blocs et Xrefs insérés sur les calques dévérouillés ;;le 27 11 2018: Ne semble plus marcher avec les références imbriquées (defun 3listes_xref () (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) ss (ssget "_X" '((0 . "INSERT"))) ) ;; On parcourt le jeu de sélection pour constituer une liste (xref-lst) ;; avec seulement les noms des Xrefs (if ss (progn (repeat (setq n (sslength ss)) (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))) ) (if (and (not (member (vla-get-name obj) xref-lst)) ;_ éviter les doublons (= :vlax-true ;_ uniquement les Xrefs (vla-get-isXref (vla-item (vla-get-Blocks AcDoc) (vla-get-Name obj)) ) ) ) (setq xref-lst (cons (vla-get-name obj) xref-lst ) ) ) ) ;;; (setq xref-lst1 xref-lst ;_ on conserve dans xref-lst1 les xref "parents" ;;; n_lst 0 ;;; ) (setq xref-lst1 nil) (setq n_lst 0) ;; On parcourt la liste xref-lst et pour chaque Xref, on cherche si ;; dans ces composants il y a une (ou des) Xref. Si ces le cas, ;; elles sont rajoutées en fin de liste et seront traitées à leur tour. (while (setq name (nth n_lst xref-lst)) (setq bloc (vla-item (vla-get-blocks acDoc) name)) (repeat (setq n (vla-get-count bloc)) ;_ nombre de composant du bloc (Xref) (setq ent (vla-item bloc (setq n (1- n)))) (if (and (= (vla-get-ObjectName ent) "AcDbBlockReference") ;_ si le composant est un bloc ;;; (not (member (vla-get-name ent) xref-lst)) ;_ s'il n'est pas déjà dans la liste (= :vlax-true ;_ si c'est une Xref (vla-get-isXref (vla-item (vla-get-Blocks AcDoc) (vla-get-Name ent) ) ) ) ) ;_#and (progn (if (not (member (vla-get-name ent) xref-lst)) ;_ s'il n'est pas déjà dans la liste (setq xref-lst (reverse (cons (vla-get-Name ent) (reverse xref-lst) ) ) ;_ la Xref est ajoutée en fin de liste ) ) ;;dans tous les cas, cette référence conient d'autre référence: (if (setq tmp (assoc name xref-lst1)) ;_ s'il est déjà dans la liste des références parentes (setq xref-lst1 (subst (append tmp (list (vla-get-Name ent))) tmp (cons name xref-lst1)) ) (setq xref-lst1 (reverse (cons (list name (vla-get-Name ent)) (reverse xref-lst1))) ;_ la Xref est ajoutée en fin de liste ) ) ) ) ;_#if ) (setq n_lst (1+ n_lst)) ) ) ) ;; Constitution de xref-lst2 : xref-lst moins les éléments parents contenus dans xref-lst1 (setq xref-lst2 (vl-remove-if '(lambda (x) (member x (mapcar 'car xref-lst1))) xref-lst) ) (prompt "\nXref du dessin:") (mapcar 'print xref-lst) (prompt "\nXref parentes du dessin est leurs sous xref:") (foreach l xref-lst1 (prompt (strcat "\nParent : " (car l))) (prompt "\n Fils : " ) (foreach ll (cdr l) (prompt (strcat "\n " ll)) ) ) (princ) ) ;*********************************************************************** ;;§/listes/regroupe des listes d'association par code d'association/ none ;;ex :(regroup_assoc '((a 2)(a 3)(b 1)(a 4)(b 2))) -> '((A 2 3 4) (B 1 2)) ;;ne marche que pour une profondeur à 2 niveaux ;;implémenté pour les paires pointées (defun pw_regroup_assoc ( lassoc / res l tmp nl cd pairpoint) (foreach l lassoc (setq pairpoint (pw_estpairpoint l)) ;;si déja répertorié (if (setq tmp (assoc (setq cd (car l)) res)) (progn (if pairpoint (setq nl (append tmp (list (cdr l)))) (setq nl (append tmp (list (cadr l)))) ) (setq res (subst nl tmp res)) ) (if pairpoint (setq res (cons (list (car l)(cdr l)) res)) (setq res (cons l res)) ) ) ) (reverse res) ) ; ***************************************************************************** ;§/dxf/ retourne une liste classée des ename d'IMAGEDEF présentes dans le dessin /none (defun pw_list_eimagedef ( / tmp ) (setq tmp (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")) (cdr (assoc 350 (pw_regroup_assoc tmp))) ) ; **************************************************************************** ;;§/xref/liste les fichiers avec répertoire des xrefs non résolues du dessin/none ;;;(pw_listUnResolvedXref) -> ("E:\\ACLSP\\dwg14\\SIAV\\DCE\\calque_covadis.dwg") ;;;Drapeaux par type de bloc (valeurs binaires pouvant être combinées) : ;;;0 = indique qu'aucun des drapeaux suivants ne s'applique ;;;1 = bloc anonyme généré par hachure, cotation associative, d'autres opérations internes ou une application ;;;2 = ce bloc a des définitions d'attribut non constantes (ce bit n'est pas défini dans le cas contraire ou si le bloc n'a aucune définition d'attribut) ;;;4 = ce bloc est une référence externe (xréf) ;;;8 = ce bloc est un recouvrement de référence externe : ce qui veut dire superposé (sinon attaché bit = 0) ;;;16 = ce bloc a des dépendances externes : j'ai fait le test, ce bit n'est pas activé quand il devrait l'être en théorie ;;;32 = référence externe résolue ou dépendant d'une référence externe (bit ignoré à la saisie):ne permet pas de différencier une reference déchargée d'une introuvable ;;;64 = cette définition est une référence externe référencée (bit ignoré à la saisie) (defun pw_listUnResolvedXref ( / XrefInfo CurrBlock XrefInfo Rewind Flags) (setq temp nil) (setq XrefInfo (list)) (setq Rewind t) (while (setq CurrBlock (tblnext "block" Rewind)) (setq Rewind nil) (setq Flags (cdr (assoc 70 CurrBlock))) ;;(print (cdr (assoc 2 CurrBlock)))(princ " ")(princ flags) ;;(eq 4 (logand 4 (cdr (assoc 70 d)))) (if (and (pw_multimember '(4 ) (pw_l_flag flags));_ that means that this block is a REFERENCED xref (not (eq 32 (logand 32 flags))));_introuvable ou déchargée (if (= "TEXT" (cdr (assoc 0 (entget (cdr (assoc -2 CurrBlock))))));_text pour unresolved, ENDBLK pour unloaded (progn (setq temp (cons CurrBlock temp)) (setq NewXref (cdr (assoc 1 CurrBlock)) ) (setq XrefInfo (cons NewXref XrefInfo)) );_progn ) ) ) XrefInfo ) ; **************************************************************************** ;;§/xref/liste le nom des xrefs non résolues du dessin/none ;;;(pw_listUnResolvedXref) -> ("E:\\ACLSP\\dwg14\\SIAV\\DCE\\calque_covadis.dwg") ;;;Drapeaux par type de bloc (valeurs binaires pouvant être combinées) : ;;;0 = indique qu'aucun des drapeaux suivants ne s'applique ;;;1 = bloc anonyme généré par hachure, cotation associative, d'autres opérations internes ou une application ;;;2 = ce bloc a des définitions d'attribut non constantes (ce bit n'est pas défini dans le cas contraire ou si le bloc n'a aucune définition d'attribut) ;;;4 = ce bloc est une référence externe (xréf) ;;;8 = ce bloc est un recouvrement de référence externe : ce qui veut dire superposé (sinon attaché bit = 0) ;;;16 = ce bloc a des dépendances externes : j'ai fait le test, ce bit n'est pas activé quand il devrait l'être en théorie ;;;32 = référence externe résolue ou dépendant d'une référence externe (bit ignoré à la saisie):ne permet pas de différencier une reference déchargée d'une introuvable ;;;64 = cette définition est une référence externe référencée (bit ignoré à la saisie) (defun pw_listUnResolvedXrefName ( / XrefInfo CurrBlock XrefInfo Rewind Flags) (setq temp nil) (setq XrefInfo (list)) (setq Rewind t) (while (setq CurrBlock (tblnext "block" Rewind)) (setq Rewind nil) (setq Flags (cdr (assoc 70 CurrBlock))) ;;(print (cdr (assoc 2 CurrBlock)))(princ " ")(princ flags) ;;(eq 4 (logand 4 (cdr (assoc 70 d)))) (if (and (pw_multimember '(4 ) (pw_l_flag flags));_ that means that this block is a REFERENCED xref (not (eq 32 (logand 32 flags))));_introuvable ou déchargée (if (= "TEXT" (cdr (assoc 0 (entget (cdr (assoc -2 CurrBlock))))));_text pour unresolved, ENDBLK pour unloaded (progn (setq temp (cons CurrBlock temp)) (setq NewXref (cdr (assoc 2 CurrBlock)) ) (setq XrefInfo (cons NewXref XrefInfo)) );_progn ) ) ) XrefInfo ) -
[Autocad 2021] Eloge de la lenteur...
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Justement, C'est très difficile ! Mais ça a été rendu possible par le ralentissement général du système, car 23 secondes, c'est grâce à se ralentissement du au monteur, sinon c'est 3/4 secondes. Il faut filtrer sur AutoCAD.exe, filtrer sur le le réseau, faire un clear, noter l'heure à la seconde près, lancer sa commande Autocad, noter l'heure de fin, et regarder les evenements qui se sont produits.
