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. Coucou, En regardant ton dessin, c'est bien de la définition de bloc dont on parle... et elle porte un nom qu'AutoCAD n'accepte pas habituellement ! Donc je suppose que ces blocs anonymes ont été créés via un autre software et donc à l'importation, ces objets ont obtenu une dénomination empêchant AutoCAD d'intéragir correctement avec... J'ai donc cherché comment renommer une définition de bloc, et je suis tombée sur ce programme proposé par Ronjonp (post #5) : https://www.cadtutor.net/forum/topic/64087-rename-block-with-vlisp-questions/?do=findComment&comment=528050 Tu fais un copier-coller du programme (tout ce qui se trouve dans l'encadré bleu !) dans ta ligne de commande AutoCAD puis tu lances la commande FOO. Il faut ensuite simplement suivre les instructions, c'est-à-dire sélectionner un bloc dont tu désires changer le nom, puis entrer le nouveau nom désiré en ligne de commande. Cela va modifier l'intégralité des références de bloc associés à cette définition (dans ton .dwg d'exemple, cela va modifier le nom de tous les blocs visibles car il n'y a qu'une seule définition de bloc anonyme "*U1"). Si jamais tu as plusieurs définitions de blocs anonymes, il te suffit de cliquer à nouveau sur un bloc et ainsi de suite (le programme boucle, donc si tu n'as plus de définitions à renommer il te suffit d'appuyer sur ENTER). Bisous, Luna
  2. Je ne comprends pas très bien ce qui doit être renseigné avec ton .dwg d'exemple... Faut-il remplir le tableau d'annotation (faisant du coup la moyenne de l'ensemble des polylignes/multilignes pour chaque ligne d'annotation pour connaître l'épaisseur de tracé) ? Faut-il, à partir du tableau définir les propriétés de toutes les polylignes/multilignes pour faire correspondre la largeur globale/échelle globale en fonction du calque ? Faut-il créer une ligne de repère pour chaque polyligne/multiligne indiquant la valeur de largeur globale/échelle globale et ainsi vérifier si cela correspond bien au tableau ci-contre ? S'il s'agit du tableau à remplir, alors il n'y a aucun lien direct entre le texte et un objet, car dans ton exemple, tu as 1 polyligne et 1 multiligne qui appartiennent au calque "Dn125" donc si la polyligne à une largeur globale de 139.7 mais que tu as oublié de définir l'échelle globale de la multiligne (qui imaginons est à 0.0), que faudrait-il rentrer dans le tableau du coup ? 139.7 ? 0.0 ? 139.7, 0.0 ? 69.85 ? Bisous, Luna
  3. Coucou, Normalement, le *U... devrait indiquer qu'il s'agit d'une référence de bloc dynamique... Donc je trouve étrange que cette notation ait pu être acceptée par AutoCAD pour la dénomination d'une définition de bloc...! Les blocs créés via CTRL+C / CTRL+MAJ+V sont nommés A$C... par exemple Donc es-tu sûr que l'on parle bien du nom de la définition de bloc et non de la référence de bloc ? Car s'il s'agit de la définition de bloc, le nom est étrange et s'il s'agit de la référence de bloc, alors on parle de bloc dynamique ! Dans le second cas, il est impossible de renommer la référence de bloc ! Cependant si l'on utilise la palette des propriétés, le nom de la référence de bloc affiché correspond bien au nom de la définition et non de la référence anonyme. Donc ma question serait : où précisément vois-tu ces blocs anonymes ? Dans quelle liste apparaissent-ils ? PS: Pour l'espace inter-lignes, tu peux avoir un grand espace en créant un nouveau paragraphe (= ENTER) ou bien tu peux avoir un simple retour à la ligne (= MAJ+ENTER). Bisous, Luna
  4. Luna

    [RESOLU] temps d'enregistrement

    Vui justement le QSAVE enregistre le dessin entier, car il le faut bien à un moment donné !!
  5. @Max73, La proposition d'utiliser un champ dynamique n'utilise pas de LISP ! De plus, il s'agit de la propriété objet "Largeur globale", autrement-dit, ton texte est directement lié à l'ID de ta polyligne !! Donc si tu modifies la largeur globale de ta polyligne, le texte se mettra à jour automatiquement après un REGEN ou REGENTOUT. En revanche si tu as 2000 polylignes dans ce cas là, je peux comprendre qu'il faut passer par un peu de programmation pour créer les textes avec champ dynamiques pour chaque polylignes... Mais dans ce cas il faut faire la demande explicitement avec un .dwg d'exemple. Je te joins un exemple de texte avec utilisation d'un champ dynamique lié à la polyligne. Si tu changes une valeur puis que tu fais REGEN, le texte associé à la polyligne modifiée sera mis à jour. Bisous, Luna Exemple Champs Dynamiques.dwg
  6. Luna

    [RESOLU] temps d'enregistrement

    Coucou, Cela peut éventuellement venir de l'emplacement du fichier par exemple, si tu travailles sur un serveur distant. La sauvegarde auto s'effectue en local donc cela peut prendre moins de temps. Ensuite, mais je me trompe sûrement, il me semble que la sauvegarde auto n'enregistre pas le dessin complet mais uniquement les objets nouvellement créés depuis la dernière sauvegarde, permettant de limiter la taille des fichiers de sauvegarde auto. Bisous, Luna
  7. Luna

    dissocier poignées

    Coucou, Sinon la méthode de @benoitlacroix fonctionne très bien aussi ! Car lorsque deux sommets sont superposés, le menu contextuel refuse d'apparaître (permettant de supprimer le sommet en trop)... Donc je prend la poignée milieu du segment précédant ou suivant les sommets superposés pour déplacer le segment d'une valeur connue dans un axe connu. Cela va dissocier les deux sommets, faisant apparaître un nouveau segment (nul auparavant) entre les deux et permettant l'apparition du menu contextuel ! Tu peux ainsi modifier le sommet resté sur place au besoin puis re-décaler le segment précédent avec la valeur et axe précédemment utilisé. C'est de la bidouille certes, mais c'est moins long que d'attendre un MAJ d'AutoCAD 😉 Bisous, Luna
  8. Coucou, Le soucis c'est que la table des propriétés de bloc permet de gérer les valeurs d'attributs, lorsque la table de consultation permet de gérer les valeurs dynamiques. Ainsi je ne vois pas comment un attribut peut influer sur un paramètre dynamique ! En revanche si je comprends bien ta démarche, tu voudrais que pour la visibilité "Arrivée dans chambre", ton texte soit "Arrivée" et pour la visibilité "Sortie de la chambre" il faudrait qu'il apparaisse "Sortie". Donc si les seules valeurs autorisées par ton attribut SENS sont "Arrivée" et "Sortie" et qu'elles sont directement dépendantes de ton état de visibilité, pourquoi ne pas simplement mettre un texte pour chaque visibilité (visible dans une visibilité, caché dans les autres) ? En clair tu remplaces ton attribut SENS par deux textes, les uns sur les autres qui correspondent chacun à la valeur souhaitée pour chaque visibilité et tu n'affiches que celui dont tu veux voir pour tes états de visibilité 🙂 Bisous, Luna
  9. Coucou, Je ne comprends pas bien la demande...Tu peux utiliser la commande RENOMMER pour renommer un bloc ou autre mais tu ne pourras pas renommer les objets commençant par un astérisque "*" car comme tu le dis ci-dessus, il s'agit d'une notation propre à AutoCAD. Par exemple, le "*U###*" signifie que ton bloc est dynamique, et donc chaque références de bloc dynamiques portera cette dénomination pour faire la différence entre les différentes valeurs des propriétés dynamiques. Autrement dit, on ne peut pas renommer une référence de bloc anonyme... Donc serait-il possible de donner plus d'informations sur la démarche ? Bisous, Luna
  10. Luna

    Selection et couleur bloc

    Coucou, A savoir que cela ne fonctionne pas si le bloc est dynamique 😉 Autrement il faudrait plutôt quelque chose comme ceci : (defun c:sb (/ str2lst bn co fl ss i nm en ce) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ;; DEFINITION OF THE COMMAND PARAMETERS (setq bn "00_NUM_TUBE" ;; EQUALS TO THE EFFECTIVENAME OF THE BLOCK (YOU CAN USE THE WILDCARD CHARACTERS FOR MORE USABILITY) co 4 ;; EQUALS TO THE NEW COLOR TO BE SET. USE AN INTEGER BETWEEN 0 TO 256 FOR ACI COLORS, A LIST OF 3 INTEGERS BETWEEN 0 AND 255 EACH FOR TRUE COLORS, A STRING WITH THE NAME OF COLOR BOOK fl nil ;; DETERMINES IF THE SEARCH FOR EFFECTIVENAME IS CASE SENSITIVE OR NOT (nil = CASE SENSITIVE, T = NOT CASE SENSITIVE) ) ;; END OF PARAMETERS'S DEFINITION (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat "`*U*," bn))))) (repeat (setq i (sslength ss)) (setq nm (vlax-ename->vla-object (ssname ss (setq i (1- i))))) (if (not (and (vlax-property-available-p nm 'EffectiveName) (setq en (vlax-get nm 'EffectiveName)) (if fl (mapcar '(lambda (x) (set (read (vl-princ-to-string x)) (strcase (vl-symbol-value x)))) '(bn en)) '(bn en) ) (wcmatch en bn) ) ) (ssdel (vlax-vla-object->ename nm) ss) ) ) (if (not (zerop (sslength ss))) (progn (setq ce (getvar "CMDECHO")) (setvar "CMDECHO" 0) (cond ( (listp co) (command "_.CHANGE" ss "" "_Properties" "_Color" "_TrueColor" (setq co (str2lst co ",")) "")) ( (= 'STR (type co)) (command "_.CHANGE" ss "" "_Properties" "_Color" "_ColorBook" co "")) ( (= 'INT (type co)) (command "_.CHANGE" ss "" "_Properties" "_Color" (setq co (itoa co)) "")) ) (setvar "CMDECHO" ce) (princ (strcat "\n" (itoa (sslength ss)) " blocks has been changed with the name \"" bn "\" to the color " co "..." ) ) ) (princ "\n0 blocks has been changed...") ) (princ) ) On peut modifier les paramètres de la commande si jamais le(s) nom(s) des blocs à rechercher ne correspond(ent) pas à "00_NUM_TUBE", si la couleur ne correspond pas à 4 et si l'on désire que le nom du bloc soit sensible à la casse ou pas Bisous, Luna
  11. +1 avec @JPhil ! La fonction (polar), et même la quasi totalité des fonctions nécessitant un angle ont besoin que l'angle soit exprimé en radian ! Donc comme ta variable 'rot' est justement exprimée en degrés donc cela va pouvoir fonctionner pour la commande (à partir du moment où tes unités sont bien en degrés décimaux) mais pour la fonction polar, cela ne sera pas bon. Si tu regardes bien au niveau de tes captures, le point d'insertion de ton bloc semble en effet être à 1/2 de la distance entre P1 et P2 mais c'est uniquement l'angle qui n'est pas bon 😉 Mais la rotation, elle est bonne Bisous, Luna
  12. Coucou, Comment fais-tu la copie avec point de base ? Via les raccourcis clavier CTRL+MAJ+C ? ou bien via la commande COPIERBASE ? Bisous, Luna
  13. Luna

    Lisp trace deux droite

    Coucou, Essaye quelque chose comme ceci : (defun c:CH&VX (/ LM:intersections reversens check-properties line sens pt i) (defun LM:intersections ( ob1 ob2 mod / lst rtn ) (if (and (vlax-method-applicable-p ob1 'intersectwith) (vlax-method-applicable-p ob2 'intersectwith) (setq lst (vlax-invoke ob1 'intersectwith ob2 mod)) ) (repeat (/ (length lst) 3) (setq rtn (cons (list (car lst) (cadr lst) (caddr lst)) rtn) lst (cdddr lst) ) ) ) (reverse rtn) ) (defun reversens (s / lst) (setq lst '("_Hor" "_Ver")) (car (vl-remove s lst)) ) (defun check-properties (name / check-line check-poly otype) (defun check-line (name / els pt1 pt2 ang) (and (setq els (entget name)) (setq pt1 (cdr (assoc 10 els))) (setq pt2 (cdr (assoc 11 els))) (setq ang (+ (/ pi 4.) (angle (trans pt1 0 1) (trans pt2 0 1)))) (or (equal 0.0 (rem ang (/ pi 2.)) 1E-12) (equal (/ pi 2.) (rem ang (/ pi 2.)) 1E-12) ) ) ) (defun check-poly (name / els pt1 pt2 ang) (and (setq els (entget name)) (= 2 (cdr (assoc 90 els))) (= 0.0 (cdr (assoc 42 els))) (setq pt1 (cdr (assoc 10 els))) (setq pt2 (cdr (assoc 10 (reverse els)))) (setq ang (+ (/ pi 4.) (angle (trans pt1 0 1) (trans pt2 0 1)))) (or (equal 0.0 (rem ang (/ pi 2.)) 1E-12) (equal (/ pi 2.) (rem ang (/ pi 2.)) 1E-12) ) ) ) (if (and name (setq otype (cdr (assoc 0 (entget name)))) (cond ( (= "LINE" otype) (check-line name)) ( (= "LWPOLYLINE" otype) (check-poly name)) ) ) name ) ) (while (setq line (check-properties (car (entsel "\nSélectionner une ligne à 45° :")))) (initget "Horizontales Verticales __Hor _Ver") (setq sens (cond ((getkword "\nLes droites passant par chaque point doivent être [Horizontales/Verticales] <Horizontales> ? ")) ("_Hor") ) ) (while (setq pt (getpoint "\nSpécifier un point :")) (command "_XLINE" sens pt "") (setq i (LM:intersections (vlax-ename->vla-object line) (vlax-ename->vla-object (entlast)) acextendnone)) (command "_XLINE" (reversens sens) (car i) "") ) ) (princ) ) La commande s'appelle CH&VX (= Create Horizontal & Vertical Xlines). Le programme peut gérer les SCU, il faut en premier lieu sélectionner un segment à 45° par rapport au SCU (attention, car si tu n'es pas correctement à 45°, la ligne ne sera pas acceptée !), puis on définit si l'on veut projeter les points à l'horizontale (donc la droite passant par la vue de dessus sera horizontale et le programme va donc calculer la droite verticale) ou à la verticale (réflexion inverse). Puis il te suffit de cliquer sur autant de points que souhaité pour les projeter par rapport à ton segment à 45°. Si tu ne spécifies pas de point (ENTER uniquement), tu repars au début pour la sélection de la ligne à 45°. J'ai testé sur ton .dwg et je n'ai pas trouvé d'erreur, après le programme ne peut pas faire la double projection Verticale > Horizontale > Verticale avec deux lignes à 45°. Du moins pas directement, car tu peux toujours faire une première projection Verticale (pour générer les droites horizontales) puis une projection Horizontale (pour générer les droites verticales) en changeant de ligne à 45° entre les deux 😉 Juste pour info, sur ton .dwg d'exemple les droites de construction étaient fausses pour la plupart ^^" Bisous, Luna
  14. Luna

    Lisp trace deux droite

    Coucou, La programmation c'est pas de la magie...il faut forcément une suite logique d'évènements pour pouvoir faire fonctionner un programme ! Donc si tu places tes droites à 45° n'importe où, comment doit-on les sélectionner ? Possèdent-elles un calque strictement réservé pour ces lignes ? Est-ce uniquement des lignes, ou bien cela peut aussi être des polylignes ? des droites ? Ensuite, comment le programme doit-il être en mesure de comprendre sur quelle "vue sur laquelle tu travailles" ? Peut-être qu'un logigramme permettrait d'y voir un peu plus clair sur la demande.. Les droites qui seront tracés doivent-elles appartenir à un calque précis ? Sont-elles temporaires ou bien sont-elle constantes (c'est-à-dire, faut-il prévoir de les supprimer à un moment donné ou pas ? Si oui, à quel moment ?) ? Le programme souhaité ne doit donc servir qu'à tracer les droites horizontales et verticales en cliquant sur un point, rien de plus c'est bien cela ? Bisous, Luna
  15. Coucou, Essaye avec ceci : (command-s "_-HATCH" "_Transparency" "80" "_DRaw" "_Back" "_Properties" "_Solid" "_Select" (entlast) "" "") Bisous, Luna
  16. La copie directe dans AutoCAD ne fonctionne pas correctement si tu as plusieurs commandes distinctes que tu insères dans ta ligne de commande ! Donc si tu veux que cela fonctionne, il faut soit faire 3 copier/coller (1 pour chaque (defun ...)) ou plutôt choisir l'option donnée plus haut, de créer un fichier .lsp puis de le charger dans ton AutoCAD ! Bisous, Luna
  17. Coucou, Les commandes sont STT_SAVE, STT_ALL_SHX et STT_RESTORE.. Donc si tu as écrit SST_SAVE, la commande n'est pas reconnue. Autrement, si tu n'as pas fait l'erreur de frappe sur AutoCAD, as-tu bien copié l'ensemble du code du sujet, collé le code sur un bloc note et enregistré le fichier sous format .lsp ? Bisous, Luna
  18. Luna

    ScanDXF Beta

    Coucou, Regarde sur le site de @rebcao : http://www.rebcao.fr/telechargements_outils_AutoCAD_gratuits_page1.html Bisous, Luna
  19. Luna

    Get_tile ou set_tile

    Tu ne me déranges absolument pas, il n'y a aucune honte à avoir si ta logique n'est pas comme la mienne ! Au contraire chat signifie que tu penses par toi-même et que tu cherches tes propres solutions 😜 Cependant je n'arrive pas à comprendre ce que tu entends par Parce qu'en ouvrant ta boîte de dialogue, il n'y a qu'une seule edit_box... Donc tu veux dire dans le cas où la boîte de dialogue est ouverte plusieurs fois ? Si c'est bien cela, il faut faire la différence entre : 1°) la boîte de dialogue est ouverte plusieurs fois durant la même commande (mais entre deux commande, la valeur est oubliée) 2°) la boîte de dialogue est ouverte plusieurs fois sur un même dessin (mais entre deux dessins, la valeur n'est pas partagée) 3°) la boîte de dialogue est ouverte plusieurs fois et je désire conserver ma valeur précédente à chaque nouvelle ouverture de la boîte de dialogue Dans le cas numéro 1, alors cela signifie que l'ouverture de ta boîte de dialogue est associée à une fonction nommée, que tu appelles via un (while) ou autre type de boucle. Il te faut alors prévoir à minima un argument pour ta fonction de BdL pour définir la valeur par défaut via (set_tile "List2" (cond (arg1) ("")) et ta fonction doit renvoyer la valeur contenue par List2 en fin d'exécution Dans le cas numéro 2, alors cela signifie qu'il faut que tu utilises une variable globale (donc sa valeur n'est pas remise à zéro à la fin du programme) et que, comme pour le cas n°1, tu définisses ton edit_box comme ci-dessus. Dans le cas numéro 3, alors tu peux utiliser la fonction (setenv) et (getenv) pour créer des variables qui sont partagées entre tous tes dessins, et donc tu définis ton edit_box ainsi (set_tile "List2" (cond ((getenv "NumLot")) (""))) en pensant à créer en premier lieu la variable "NumLot" comme suit (if (null (getenv "NumLot")) (setenv "NumLot" "0")) (j'ai pris "0" comme valeur par défaut, libre à toi de mettre la valeur que tu veux, et le nom de variable qui te plaît, évidemment !) Bisous, Luna
  20. Luna

    Get_tile ou set_tile

    Coucou, Alors j'ai un peu de difficulté à comprendre la construction de la boîte de dialogue.. L'aide d'AutoCAD indique que la {Dialog Tile} ne peut pas avoir de 'key associée...Donc pour moi : dialog { key = \"Titrenumlot\"; ne peut pas exister..Il suffit de définir le 'label en dur comme ceci : dialog { label = \"Saisir un NUméro de Lot\"; et de supprimer la ligne (set_tile "Titrenumlot" "Saisir un Numéro de Lot") Après quelques tests, ta méthode fonctionne, mais je ne comprend pas pourquoi tu te compliques la vie ainsi ^^" Ensuite je ne vois qu'une seule {edit_box} dans ta boîte de dialogue, et non deux. Il n'y a donc qu'une seule Tile, qui possède la key 'List2. Donc ma question c'est : où sont les key que tu définis avec (set_tile), nommé 'Listnumlot et 'numlot ? Je pense que pour avoir 2 {edit_box}, comme tu le demandes dans ton premier post, il faudrait écrire quelque chose dans le genre : (setq tmpnumlot (vl-filename-mktemp "Questionnumlot.dcl") file (open tmpnumlot "w")) (write-line "Questionnumlot : dialog { label = \"Saisir un Numéro de Lot\"; initial_focus = \"List1\"; spacer; : edit_box { label = \"Saisir un Numéro de Lot :\"; key = \"List1\"; height = 1; edit_width = 26; fixed_width = true; alignment = left;} : edit_box { label = \"Saisir le Numéro de Lot :\"; key = \"List2\"; height = 1; edit_width = 26; fixed_width = true; alignment = left;} : spacer { width = 1; height = 1;} ok_cancel; edit_width = 10;} " file) (close file) (setq Dcl_Id (load_dialog tmpnumlot)) (new_dialog "Questionnumlot" Dcl_Id) (set_tile "List1" "0") (action_tile "List1" "(if (= \"\" (get_tile \"List2\")) (set_tile \"List2\" $value))") (action_tile "accept" "(setq Lot (get_tile \"List2\")) (done_dialog)") (action_tile "cancel" "(done_dialog)") (start_dialog) (unload_dialog Dcl_Id) (vl-file-delete tmpnumlot) Je ne sais pas si cela correspond à ce que tu désires, mais c'est ce qui se rapproche le plus de ce que j'ai compris de ton premier post 😉 Bisous, Luna
  21. Luna

    Get_tile ou set_tile

    Coucou, Serait-il possible d'avoir le code en question pour savoir de quoi on parle ? 😉 Si tu as tout dans une seule boîte de dialogue, il faut utiliser (action_tile) sur la première question pour utiliser un (set_tile) dans le cas où la seconde question n'est pas encore renseignée. Avec un exemple, cela serait évidemment plus parlant ^^" Bisous, Luna
  22. Coucou, Une autre méthode, si le cartouche est sur un calque spécifique : SUPCALQUE. C'est barbare mais efficace, il suffit de supprimer le calque sur lequel est inséré les cartouches, puis de purger les éléments non référencés. Il faut juste que le calque soit réservé à l'insertion des cartouches et que tous les cartouches soit bien sur ce calque. Bisous, Luna
  23. Luna

    CHARTE / methodologie

    Coucou, Je ne répondrais que partiellement mais en effet si la dénomination des calques n'est qu'un ensemble de codification de 2-3 lettres par codes, c'est impossible pour un utilisateur de savoir dans quoi ranger où, et surtout, il faut aussi penser aux prestataires avec qui vous pouvez échanger des .dwg et qui ne connaissent rien à vos règles de codifications !! Donc il faut à minima un code (pour permettre le filtre des calques et l'organisation par ordre alphabétique) que je mettrai plutôt dans les premier caractères, pour regrouper les codes identiques ensemble, et un nom explicite pour comprendre ce que c'est supposé contenir. S'il est nécessaire (et que tu as le temps), tu peux également rajouter une description à tes calques, pour permettre de ne pas mettre un nom explicite à rallonge mais tout de même faciliter la vie aux utilisateurs (les tiens comme les prestataires). Concernant l'utilisation des LISP, de toutes façon c'est le LISP qui doit s'adapter à votre charte, car c'est beaucoup plus simple de changer un programme que de refaire une liste de calques !!! Le mieux étant évidemment d'éviter au maximum d'écrire des données en dur dans les programmes LISP, ou bien s'il est nécessaire de le faire, je te conseille de rentrer ces données via une variable déclarée au début de ton programme (comme chat, si un nom change, tu n'as besoin de le changer qu'une seule fois, au début du programme pour mettre à jour tout ton code, au lieu de devoir rechercher toutes les occurrences), mais c'est plus un soucis de programmation et non de chartes (je m'égare)... Si tu veux utiliser des filtres de propriétés pour tes calques, les filtres sont uniquement basé sur de la recherche de caractères ou de propriétés spécifiques et/ou relatives. Donc tu peux évidemment crée un filtre pour chaque code, ou ensemble de codes mais il faut obligatoirement que tes calques possèdent ce code pour pouvoir être filtrés. En revanche si tu utilises les filtres de groupe, cela fonctionne comme des dossiers donc il n'y a aucun lien avec les propriétés des calques. Donc théoriquement tu peux te passer des codes écris dans le nom des calques avec cette méthode, mais je te le déconseille car à l'instant où tu n'est plus dans un filtre de groupe, tes calques seront le foutoir ou bien si tu as des calques identiques mais pour 2 niveaux différents par exemple, le code permet de faire cette distinction plus facilement... Bref, la dénomination des calques est un savant mélange de rigueur (codification pour trier rapidement l'utilité de chaque calque) et d'informations explicites (pour les utilisateurs lambda qui ne veulent pas apprendre par cœur les codes) sans écrire un roman de 18 tomes. Les filtres sont de ce fait un excellent moyen pour mettre de l'ordre dans les calques et faciliter la vie à l'utilisateur pour être sûr qu'il est au bon endroit. Bisous, Luna
  24. Coucou, La réponse est non, il n'est pas possible d'accéder aux propriétés dynamiques et/ou attribut d'un bloc imbriqué. On ne peut accéder aux propriétés uniquement de la référence insérée dans le dessin. Pour ton cas, je te suggère plutôt de t'orienter sur la création d'un groupe et de jongler avec PICKSTYLE (CTRL+H) pour déplacer le groupe entier, ou bien accéder aux propriétés de tes sous-objets. Cependant il me semble que les groupes peuvent parfois se dissocier entre deux sessions de dessin (à confirmer). Car en l'état actuel, ton bloc contenant tes blocs dynamique n'a rien d'intéressant d'un point de vue bloc, à l'exception de pouvoir déplacer tes blocs dynamiques par groupe de 4... Tu peux essayer également de transférer tes propriétés dynamiques dans le second bloc, mais on ne peut pas avoir plusieurs visibilités par définition de bloc, c'est pourquoi je me tournerais plutôt vers les groupes Bisous, Luna
  25. Vui, Je n'ai pas encore le réflexe des ExpressTools ^^" J'ai plutôt tendance à développer moi-même les programmes, comme chat je sais comment chat marche... Et je décompose que très rarement mais tu as raison, la commande BURST est plus évoluée que DECOMPOS 😉 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é