Aller au contenu

Luna

Membres
  • Compteur de contenus

    1 113
  • Inscription

  • Dernière visite

  • Jours gagnés

    42

Tout ce qui a été posté par Luna

  1. Luna

    Selection avec filtre

    Coucou, C'est bien là tout l'intérêt de l'utilisation des filtres de sélection, afin de limiter les boucles trop longues à uniquement les objets nécessaires à la boucle (au lieu d'éjecter les objets non nécessaire) 🙂 Mais en effet chacun fait à sa guise en fonction de ses habitudes et possibilités. Ne connaissant que le LISP je ne sais pas comment se gère les filtres en VBA. Bisous, Luna
  2. Si seulement les entités VIEWPORT se laissaient faire comme les autres...chat serait le pied ! La conservation des propriétés des calques d'une VIEWPORT passe par les Xdatas si je ne dis pas de bêtises. Chat aurait été avec plaisir de fournir un programme de ce genre mais je ne maîtrise pas encore suffisamment ces entités rebelles que sont les VIEWPORT ! Mais l'idée est bonne en effet ! Peut-être tester s'il est possible de corriger le problème en délimitant une fenêtre polygonale par un contour polygonal ou s'il faut forcément passer par une fenêtre classique... En attendant il est toujours possible de créer des Etats de calques temporaires pour copier l'état de calques de la fenêtre qui bug, créer une fenêtre classique, restaurer l'état de calque précédent, et délimiter cette fenêtre via la polyligne de l'ancienne fenêtre. Dommage que le gestionnaire des états de calques ne puisse pas être ouvert sans sa BdL... Bisous, Luna
  3. Coucou, Vui j'ai le même soucis et je n'ai pas encore trouvé de solution (si ce n'est désactiver temporairement mes accrochages et arrêter de râler) 🙂 Après il me semble qu'il y a une différence entre créer une polyligne pour la transformer en fenêtre et créer une fenêtre classique pour la délimiter ensuite par une polyligne (à vérifier car je ne suis plus sûre). Bisous, Luna
  4. Coucou, La véritable question est : désires-tu que l'on écrive un programme pour toi ou bien souhaites-tu seulement que l'on te donne des pistes de recherche afin que tu puisses écrire la commande par toi-même ? Il existe de nombreuses solutions à ton problème, que se soit en terme de fonctions ou même de langage utilisé. Une macro ou un script pourrait même faire l'affaire :) Lorsque tu dis chat, tu veux dire d'un point de vue général (tu ne connais pas la programmation) ou c'est un souci de vocabulaire (tu ne sais pas quelle(s) fonction(s) utiliser) ou c'est un soucis d'organigramme (ce qui ne semble pas être le cas vu que tu sais déjà ce que tu veux que ton programme fasse) ? Bisous, Luna
  5. Coucou, Pour ceux que chat intéresse, je poste ci-dessous une routine permettant de comptabiliser le nombre d'objets présents dans chaque réseaux sélectionnés et d'en faire une rapide synthèse dans l'historique de commandes. Les améliorations évidentes seraient d'insérer un tableau de synthèse composé de champs dynamiques lié aux réseaux mais j'ai préféré faire simple (et court !). Le décompte des objets se base sur le nombre de rangées, colonnes et niveaux des réseaux (rectangulaire, polaire et trajectoire) tout en prenant en compte le nombre d'objets sources et d'objets supprimés (lorsqu'on sélectionne un réseau, puis en maintenant la touche CTRL enfoncée, on sélectionne les références d'un réseau pour ensuite supprimer ces références. Permettant de supprimer des objets dans un réseau sans avoir besoin de le décomposer). Pour ceux ne connaissant pas cette option pour avoir des réseaux en mode gruyère : AutoDesk - Présentation des réseaux (Je n'ai pas osé prendre en compte l'option de remplacer une référence par une autre de manière ponctuelle) Programme : (defun c:ARRAYCOUNT (/ Array-Def jsel i n name lst Array ent r c l s ent-list o-list) (defun Array-Def (name / get-DXF-value i ent Array-Properties Array-Definition Array-ItemList ItemList ent-lst lst n p) (defun get-DXF-value (entlist code n) (while (and (setq entlist (member (assoc code entlist) entlist)) (> (setq n (1- n)) 0) ) (setq entlist (cdr entlist)) ) (if (and entlist (= n 0) ) (cdr (assoc code entlist)) ) ) (if (and (= (cdr (assoc 0 (entget name))) "INSERT") (wcmatch (getpropertyvalue name "Classname") "AcDbAssociative*Array") ) (progn (setq Array-properties (entget (cdr (assoc 330 (entget (cdr (assoc 330 (entget name))))))) Array-ItemList (entget (cdr (assoc 360 Array-Properties))) i (get-DXF-value Array-ItemList 90 4) ) (while (setq Array-ItemList (member '(100 . "AcDbAssocArrayItem") Array-ItemList)) (setq n (strcat (itoa (get-DXF-value Array-ItemList 90 2)) "," (itoa (get-DXF-value Array-ItemList 90 3)) "," (itoa (get-DXF-value Array-ItemList 90 4)) ) p (cond ((= (logand (get-DXF-value Array-ItemList 90 5) 1) 1) 0) ((= (logand (get-DXF-value Array-ItemList 90 5) 8) 8) 1) ) ItemList (cons (cons n p) ItemList) Array-ItemList (cdr Array-ItemList) ) ) (setq Array-definition (tblsearch "BLOCK" (cdr (assoc 2 (entget (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 (entget name)))))))))) ent (cdr (assoc -2 Array-Definition)) lst (list (cons "TotalObject" (apply '+ (mapcar 'cdr ItemList))) (cons "ColumnSpacing" (cdr (assoc 40 (member '(1 . "ItemSpacing") Array-Properties)))) (cons "Columns" (cdr (assoc 90 (cdddr (member '(1 . "Items") Array-Properties))))) (cons "RowSpacing" (cdr (assoc 40 (member '(1 . "RowSpacing") Array-Properties)))) (cons "Rows" (cdr (assoc 90 (cdddr (member '(1 . "Rows") Array-Properties))))) (cons "LevelSpacing" (cdr (assoc 40 (member '(1 . "LevelSpacing") Array-Properties)))) (cons "Levels" (cdr (assoc 90 (cdddr (member '(1 . "Levels") Array-Properties))))) ) ) (while ent (setq ent-lst (cons ent ent-lst) ent (entnext ent) ) ) (setq lst (append lst (list (cons 90 (length ent-lst)) (cons 330 ent-lst)))) ) ) lst ) (if (or (setq jsel (ssget "_I" '((0 . "INSERT") (2 . "`*U*")))) (setq jsel (ssget '((0 . "INSERT") (2 . "`*U*")))) ) (progn (repeat (setq n 0 i (sslength jsel)) (setq name (ssname jsel (setq i (1- i)))) (if (wcmatch (getpropertyvalue name "Classname") "AcDbAssociative*Array") (progn (setq lst (cons (cons (setq n (1+ n)) (setq Array (Array-Def name))) lst) r (cdr (assoc "Rows" Array)) c (cdr (assoc "Columns" Array)) l (cdr (assoc "Levels" Array)) s (cdr (assoc 90 Array)) o-list (cons (list (cdr (assoc "TotalObject" Array)) s) o-list) ent-list (mapcar '(lambda (ent) (cond ((and (= (cdr (assoc 0 (entget ent))) "INSERT") (not (wcmatch (getpropertyvalue ent "Classname") "AcDbAssociative*Array")) ) (cons (getpropertyvalue ent "BlockTableRecord/Name") (cdr (assoc 8 (entget ent)))) ) (t (cons (cdr (assoc 0 (entget ent))) (cdr (assoc 8 (entget ent)))) ) ) ) (cdr (assoc 330 Array)) ) ) (prompt (strcat "\n||==================================================||" "\nRéseau n°" (itoa n) (cond ((wcmatch (getpropertyvalue name "Classname") "AcDbAssociativeRectangularArray") " (Rectangulaire)") ((wcmatch (getpropertyvalue name "Classname") "AcDbAssociativePolarArray") " (Polaire)") ((wcmatch (getpropertyvalue name "Classname") "AcDbAssociativePathArray") " (Trajectoire)") (t "") ) " :" "\n Nombre d'objets total = " (itoa (cdr (assoc "TotalObject" Array))) "u / " (itoa (* r c l)) "u" "\n Nombre de rangées = " (itoa r) " u" " (Espacement = " (rtos (cdr (assoc "RowSpacing" Array)) 2 2) " m)" "\n Nombre de colonnes = " (itoa c) " u" " (Espacement = " (rtos (cdr (assoc "ColumnSpacing" Array)) 2 2) " m)" "\n Nombre de niveaux = " (itoa l) " u" " (Espacement = " (rtos (cdr (assoc "LevelSpacing" Array)) 2 2) " m)" "\n Nombre d'objets source = " (itoa s) " u" "\n Composition de la source du réseau :" (apply 'strcat (mapcar '(lambda (x) (strcat "\n " (if (not (= 0 (setq ent (- (length ent-list) (length (setq ent-list (vl-remove (car ent-list) ent-list))))))) (strcat (itoa ent) " \"" (car x) "\" sur le calque \"" (cdr x) "\"." ) "" ) ) ) ent-list ) ) ) ) ) (ssdel name jsel) ) ) (prompt (strcat "\n||==================================================||" "\nSynthèse des " (itoa n) " réseaux sélectionnés :" "\n Nombre d'objets total = " (itoa (apply '+ (mapcar 'car o-list))) " u" "\n Nombre d'objets global (avec sources) = " (itoa (apply '+ (mapcar '(lambda (x) (apply '* x)) o-list))) " u" "\nSe référer au détail de chaque réseau pour la répartition des objets et des objets sources." ) ) ) ) (princ) ) Exemple de rendu : ||==================================================|| Réseau n°1 (Rectangulaire) : Nombre d'objets total = 297u / 297u Nombre de rangées = 9 u (Espacement = 1.64 m) Nombre de colonnes = 33 u (Espacement = 1.06 m) Nombre de niveaux = 1 u (Espacement = 1 m) Nombre d'objets source = 1 u Composition de la source du réseau : 1 "LWPOLYLINE" sur le calque "0". ||==================================================|| Réseau n°2 (Rectangulaire) : Nombre d'objets total = 244u / 297u Nombre de rangées = 9 u (Espacement = 1.64 m) Nombre de colonnes = 33 u (Espacement = 1.06 m) Nombre de niveaux = 1 u (Espacement = 1 m) Nombre d'objets source = 1 u Composition de la source du réseau : 1 "LWPOLYLINE" sur le calque "0". ||==================================================|| Réseau n°3 (Rectangulaire) : Nombre d'objets total = 24u / 24u Nombre de rangées = 2 u (Espacement = 1.64 m) Nombre de colonnes = 4 u (Espacement = 1.06 m) Nombre de niveaux = 3 u (Espacement = 1 m) Nombre d'objets source = 1 u Composition de la source du réseau : 1 "LWPOLYLINE" sur le calque "0". ||==================================================|| Réseau n°4 (Rectangulaire) : Nombre d'objets total = 8u / 8u Nombre de rangées = 2 u (Espacement = 1.64 m) Nombre de colonnes = 4 u (Espacement = 1.06 m) Nombre de niveaux = 1 u (Espacement = 1 m) Nombre d'objets source = 6 u Composition de la source du réseau : 4 "CIRCLE" sur le calque "0". 2 "CIRCLE" sur le calque "0". ||==================================================|| Réseau n°5 (Rectangulaire) : Nombre d'objets total = 8u / 8u Nombre de rangées = 2 u (Espacement = 1.64 m) Nombre de colonnes = 4 u (Espacement = 1.06 m) Nombre de niveaux = 1 u (Espacement = 1 m) Nombre d'objets source = 1 u Composition de la source du réseau : 1 "LWPOLYLINE" sur le calque "0". ||==================================================|| Réseau n°6 (Polaire) : Nombre d'objets total = 47u / 60u Nombre de rangées = 1 u (Espacement = 2.43 m) Nombre de colonnes = 60 u (Espacement = 0.1 m) Nombre de niveaux = 1 u (Espacement = 1 m) Nombre d'objets source = 6 u Composition de la source du réseau : 4 "CIRCLE" sur le calque "0". 2 "CIRCLE" sur le calque "0". ||==================================================|| Réseau n°7 (Trajectoire) : Nombre d'objets total = 74u / 91u Nombre de rangées = 1 u (Espacement = 2.35 m) Nombre de colonnes = 91 u (Espacement = 2.83 m) Nombre de niveaux = 1 u (Espacement = 1 m) Nombre d'objets source = 6 u Composition de la source du réseau : 4 "CIRCLE" sur le calque "0". 2 "CIRCLE" sur le calque "0". ||==================================================|| Synthèse des 7 réseaux sélectionnés : Nombre d'objets total = 702 u Nombre d'objets global (avec sources) = 1347 u Se référer au détail de chaque réseau pour la répartition des objets et des objets sources. Travaillant dans le domaine du photovoltaïque, l'utilisation des réseaux est très courante, d'où la création de cette commande. Bien que assez spécifique, elle peut s'avérer utile pour les utilisateurs de réseaux et les développeurs qui aimeraient un peu mieux comprendre où chercher les infos 🙂 (encore un grand merci à @(gile) pour m'avoir montrer où chercher btw !) PS : j'ai également une version permettant de faire le décompte des réseaux présents dans des blocs mais j'ai estimé que ces cas étaient assez rares pour justifier son utilisation quotidienne. Bisous, Luna
  6. Si tu as accès à l'application de Bureau AutoDesk, tu y as accès normalement. Bisous, Luna
  7. Luna

    Selection avec filtre

    Coucou, Si cela fonctionne comme en AutoLISP, je te suggère ceci : Set SS_SelectLignesRappel = ThisDrawing.SelectionSets.Add("LignesRappel") filterType(0) = 0 filterData(0) = "LINE,POLYLINE" 'Comme ajouter une fonction pour que les lignes et le polylignes sont sélectionné? filterType(1) = 67 filterData(1) = 0 Attention à la différence entre LWPOLYLINE (correspond à la commande "_PLINE" ou "POLYLIGN") et POLYLINE (correspond aux polylignes 3D ou anciennes polylignes 2D), qui ne correspondent pas au même type d'objet. Bisous, Luna
  8. Pour ma part, c'est très particulier car on utilise une GED (nommée M-Files) basée sur des métadonnées. Ainsi fait, chaque document possède un historique donc si une modification est apportée sur un fichier, on a toujours accès à la version originale depuis l'historique. Du coup pour l'indice du plan, je n'ai pas vraiment ce soucis, mais il est évident qu'en changeant le nom à chaque fois, tes gestions de calques, chemin d'XRef, etc seront perdu..donc à voir Bisous, Luna
  9. Je n'ai jamais parlé de renommer les blocs ^^" désolée si ce n'était pas clair. J'ai déjà reçu par le passé des plans de toiture ou la moindre polyligne, le moindre cercle était une référence de bloc (donc si je fais une sélection rapide, je n'ai accès qu'au références de blocs) et bien évidemment, la folie des grands hommes ne s'arrêtait pas là étant donné qu'il avait plusieurs niveaux d'imbrication de blocs et lorsqu'il n'utilisait pas un bloc pour ranger plusieurs blocs, il utilisait les groupes....un bordel sans nom le machin... Du coup tu gèles le calques "Visserie", toute la charpente disparaissait...Après bien sûr ce n'est pas le cas dans tous les .dwg mais c'est bien de vérifier si l'utilisation d'un bloc est purement nécessaire... Qu'entends-tu précisément par "l'indicage de vos xref" ? Bisous, Luna
  10. Soka, je ne connaissais pas XREFOVERRIDE, chat sera plus simple que ce que je fais actuellement donc ! Merci 🙂 Bisous, Luna
  11. Coucou, Pour commencer il faut que chaque XRef appartienne à un calque nommé qui lui est propre. Ensuite, j'ai pris l'habitude de renommer les XRef (via la palette des référence, pas le fichier de référence attention) afin qu'elles apparaissent toutes au même endroit (du coup toutes mes XRef commencent par "Xref_") lorsqu'on affiche tous les calques (mais j'ai aussi pris l'habitude de nommer les calques de l'entreprise avec une clé et des indices pour qu'ils soient tous regroupés ensembles). Ensuite je te conseille vivement de copier le fichier originel de tes références (pour le conserver tel quel) et de référencer plutôt les copies. Ainsi fait, tu peux faire un peu de ménage dans tes XRef, à commencer par les commandes _OVERKILL (ou EPURER en fr) et _PURGE (ou PURGER en fr). Tu peux également checker comment est fait le .dwg (format d'unités, géoréférencement, ...) pour éviter par exemple d'avoir un .dwg contenant plus de 2 000 blocs nommés aléatoirement car le dessinateur à eu la bonne idée de faire des CTRL+C/CTRL+MAJ+V pour chaque objet du dessin (ou de dessiner les côtes à la mano et d'en faire des blocs au lieu d'utiliser prévu pour chat...). Bref, toujours regarder la composition d'un .dwg car parfois tu peux avoir de sacrées surprises de la part de dessinateurs. J'ai aussi pris l'habitude de réorganiser un peu les calques (notamment vider le contenu du calque 0 pour les dispatcher sur des calques nommés) et de remettre l'intégralité des objets en couleur, type de ligne et transparence avec la valeur "DuCalque" (donc vérifier avant de faire cela si les calques des objets correspond à la bonne couleur pour éviter d'avoir des problèmes après coup). Au moins comme chat si tu désires mettre ton fond de plan en gris, tu n'auras pas d'objets parasites ! :3 Bisous, Luna
  12. Coucou, Je ne maîtrise pas les scripts mais après lecture, le sujet auquel tu fais référence correspond à une écriture de script à partir d'un fichier Excel. C'est pour cela qu'il utilise la fonction CAR(13) pour renvoyer le caractère à partir du code ASCII 13. Si on se réfère à la doc des codes ASCII, il peut s'écrire de différentes manières : Binaire Oct. Déc. Hex. Abréviation note 1 note 2 note 3 Nom (1967) 1963 1965 1967 000 1101 015 13 0D CR ␍ ^M \r Caractère de retour chariotnote 7 Le soucis vient principalement du fait que sur Excel, la valeur de CAR(13) est non imprimable (étant donné qu'il s'agit d'un retour chariot donc normal). Donc en fonction de ta façon d'écrire ton script, il faudra adapter son écriture (i guess ^^"). As-tu essayé un \r ou autre ? Peut-être même essaye simplement d'ouvrir une feuille Excel, écrire =CAR(13) dans une cellule, copier la valeur (donc le résultat, pas la formule) et de copier le résultat dans ton script ^^" Bisous, Luna
  13. Coucou, Je dirais qu'il n'existe pas vraiment de solutions car en effet un arc est défini dans le sens trigo. Je pense d'ailleurs que cette inversion des types de lignes dans les arcs provient du fait que le bulge associé au segment arqué est négatif, inversant ainsi le sens du type de ligne. Cependant l'arc tel que défini ne possède pas d'autre définition possible à mon avis...Donc même si on coupe l'arc, il ne sera probablement pas dans le bon sens Bisous, Luna
  14. Coucou, Pour commencer bienvenue à toi ! Concernant l'écriture des LISP, les liens proposés par @JPhil sont les références de l'AutoLISP (quelque soit le niveau de chacun, on continue sans cesse de les consulter). Ensuite pour bien comprendre le fonctionnement de l'AutoLISP, rien ne vaut la pratique ! Au début, on n'écrit même pas des expressions dotées de plusieurs fonctions, il faut se familiariser avec l'utilisation des fonctions, les différents types de données (bien comprendre la différence entre un atome et une liste, entre le T et le nil, ...). Tu dois également te familiariser avec l'environnement de développement intégré (si tu as une version AutoCAD 2021 ou supérieure, tu as le choix de l'IDE entre VLIDE et Visual Studio Code via la variable LISPSYS). Bref au début, faut maîtriser les bases du langages, c'est à dire la grammaire puis il faut s'attaquer aux conjugaisons et seulement après on peut apprendre le vocabulaire :3 Comme j'aime bien le dire "apprendre sans comprendre c'est échouer en boucle, commence par comprendre et tu n'auras jamais plus besoin d'apprendre" et tu verras que le forum de CADxp est très actifs donc si jamais tu as des questions sur des sujets bloquants, il y aura toujours quelqu'un pour y répondre. Autrement il existe également des formations proposées par certains membres de CADxp. Une fois que tu en seras au vocabulaire, la liste des variables systèmes (>>>ici<<<) crée par @rebcao est également une véritable mine d'or lorsque tu as besoin d'en modifier une (ne jamais oublier de rendre sa valeur initiale pour ne pas perturber l'espace de travail du dessinateur). Bisous, Luna
  15. Coucou, Moi je n'ai qu'une question : à quoi te sert ton échelle d'annotation ? Le principe d'échelle annotative permet d'avoir la taille des côtes qui s'adapte à l'échelle du dessin. Ex. : On défini une cotation linéaire pour les échelles 1/10ème et 1/100ème, cette cotation ne sera visible dans une fenêtre de présentation que si l'échelle de la fenêtre est 1/10ème ou 1/100ème (et si le calque n'est pas gelé évidemment). Donc dans ton cas, quel est l'intérêt des cotations annotatives qui ne sont visibles que pour une seule échelle couplées à un gel/dégel des calques ? Soit tu utilises les échelles annotatives pour que les côtes 1/100ème ne soient visibles qu'en échelle 1/100ème (idem pour les 1/10ème) et auquel cas tu n'as pas besoin de geler les calques (il me semble), soit tu n'utilises pas les échelles annotatives et tu gèles l'ensemble des calques ne correspondant pas à l'échelle de ta fenêtre. Tu peux te simplifier le gel/dégel des calques en créant des filtres de propriétés dans ta liste de calques avec par exemple une liste comme suit : Où "Echelle 1:100" correspond au nom du filtre de propriété et *1:100* correspond au filtre que l'on applique dans la colonne "Nom" signifiant que l'on ne filtre que les calque dont leur nom contient la chaîne "1:100". Ainsi, dans une fenêtre avec une échelle 1/100ème, il te suffit de cliquer sur le filtre "Echelle 1:10", CTRL+A sur la liste des calques affichés et "geler les calques dans la fenêtre". Ce n'est évidemment qu'une proposition parmi tant d'autres, mais je ne comprends pas la nécessité d'utiliser les échelles annotatives ET le gel/dégel des calques. Pour info, pour créer un filtre de propriété tu peux ouvrir le gestionnaire des calques, clic droit sur le filtre nommé "Tous" (dans la colonne tout à gauche, vers le haut) puis "Nouveau filtre des propriétés...". Bisous, Luna
  16. Coucou, Je pense que la variable dont a besoin @philsogood est XCOMPAREENABLE, permettant d'activer/désactiver la comparaison entre les Xref et le dessin. Bisous, Luna
  17. Luna

    Onglet éditeur de bloc

    Coucou, N'ayant jamais connu de version LT je ne fais que supposé que cela fonctionne également sur LT : Tu as normalement accès à l'éditeur de bloc en sélectionnant le bloc que tu souhaites modifier puis via le menu déroulant du clic droit. Sinon tu peux également l'ouvrir avec la commande MODIFBLOC. Tu as encore plein d'autres méthodes pour y accéder, donc quelles serait la solution la plus viable pour toi ? Bisous, Luna
  18. Luna

    Aide bloc dynamique

    Coucou, Une action de déplacement avec un coefficient de 0.5 sur la distance devrait suffire, associée à ton paramètre linéaire. Bisous, Luna
  19. @CRL t'es un génie, merci beaucoup !!! Bisous, Luna
  20. Coucou, Merci de ta réponse et j'ai effectivement oublié de préciser que cette absence de tri alphanumérique était présente aussi bien dans l'onglet "Récent" que "Dessin courant" (d'où mon désarroi)... Je précise également que je n'utilise pas les aperçus des blocs (beaucoup trop de latence à mon goût pour une quelconque utilité) donc ma liste des blocs du dessin courant est en affichage "Liste" (mais il semblerait que le type d'affichage importe peu sur le tri de la liste). Bon bah du coup je vais utiliser _CLASSICINSERT Bisous, Luna
  21. Coucou, Concernant la palette d'insertion des blocs, je n'arrive pas à comprendre comment faire en sorte que la liste des blocs soit triée dans l'ordre alphabétique...Parce que pour retrouver un bloc dans une liste non triée c'est assez énervant ! (et je sais que je pourrais utiliser le filtre de recherche mais j'ai juste l'habitude de scroller pour les trouver ^^") Je n'ai pas trouvé d'option ou de variable système qui gère cela donc je ne sais pas si c'est faisable ou non. Si ce n'est pas le cas, je repasserai avec la _CLASSICINSERT pour retrouver mes petits. Bisous, Luna
  22. Coucou @rebcao, J'utilise ces fichiers des variables systèmes et du Top Quizz des galères AutoCAD tous les jours et c'est une véritable mine d'or pour tout utilisateur d'AutoCAD confondu ! Alors un grand merci pour tout ce travail incroyable ! ♥ Bisous, Luna
  23. Autant pour moi, j'ai été trop vite et j'ai oublié le lien STRIPMTEXT... J'ai corrigé mon message précédent. J'ai vérifié le "\\pxi-3,l4,t4;" et cela semble être lié à la propriété "Première ligne" dans la boîte de dialogue "Paragraphe..." de l'éditeur de texte. Autrement dit, il s'agit du retrait de la première ligne d'un paragraphe (= Alinéa). Sinon, en effet cela peut permettre de demander plus de rigueur aux dessinateurs pour faciliter le programme. Bisous, Luna
  24. Coucou, Pour commencer, bravo pour ce programme ! :3 Ensuite, pour répondre à tes questions : Tout dépends de comment tu souhaites utiliser tes fichiers par la suite. Si par exemple tu modifies tes folios (et donc les ré-imprimer), je suppose qu'il est possible d'utiliser le fichier .dsd créer précédemment pour relancer l'impression ? Si toutefois, il te paraît plus simple de publier les folios qu'avec ta commande, alors il serait préférable de le supprimer à la fin étant donné que ton programme va le re-créer de toute manière 🙂 Qu'entends-tu par "justifications étranges" ? Le fait que le texte soit aligné à gauche, au centre, à droite ou justifié ? Si c'est uniquement cela, il me semble que les propriétés de justification d'un MText sont définies par la chaîne "\\pxq[];" avec "[]" pouvant avoir pour valeur "l" (= left), "c" (= center), "r" (= right) ou "j" (= justify). Donc en supprimant ces chaînes cela devrait régler le soucis. Autrement il y a le programme de @GEGEMATIC issu du programme STRIPMTEXT dans ce post. Autrement, je pense que la partie "; Passage en nom propre" et "Remplacement des caractères" possède une écriture très répétitive qui pourrait se simplifier en créant une fonction. Mais c'est uniquement de la simplification d'écriture donc non nécessaire en soit, juste des économies de lignes et une généralisation possible :3 Bisous, Luna
  25. @DenisHen, Si je comprends bien le fonctionnement du programme il convertit simplement le thumbnail du .dwg, autrement dit ce n'est pas un choix artistique de prendre le fond noir. Je présume que tu travailles habituellement avec l'arrière-plan foncé ? Le problème peut éventuellement venir de là, et donc en passant avec un arrière-plan blanc, la thumbnail devrait se mettre à jour :3 Par contre je ne connais pas la fréquence de rafraîchissement de la miniature donc cela risque d'être chronophage s'il faut ouvrir chaque .dwg pour refresh la miniature... Bisous, Luna
×
×
  • 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é