-
Compteur de contenus
1 113 -
Inscription
-
Dernière visite
-
Jours gagnés
42
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Luna
-
Lancer une fonction à partir d'une autre fonction
Luna a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
Coucou, Juste pour préciser, Ici ce ne sont pas des fonctions mais des commandes, du fait du petit "c:" ^^ Voilà, fin de la parenthèse 🙂 Bisous, Luna -
Connaitre si un calque est imprimable
Luna a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
Coucou, Par simple complémentarité avec la réponse de (gile), tu peux également utiliser le Visual LISP avec la propriété "Plottable" : ((lambda (/ layers layer lst) (setq layers (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))) (vlax-for layer layers (setq lst (cons (cons (vlax-get layer "Name") (vlax-get layer "Plottable")) lst ) ) ) (reverse lst) )) Dans ce 1er cas de figure tu obtiendras un résultat du genre : (("0" . -1) ("Calque1" . -1) ("Calque2" . 0)) Avec : Tu peux également utiliser la forme contractée des fonctions (vlax-get), mais attention car le résultat est différent du premier : ((lambda (/ layers layer lst) (setq layers (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))) (vlax-for layer layers (setq lst (cons (cons (vla-get-Name layer) (vla-get-Plottable layer)) lst ) ) ) (reverse lst) )) Dans ce 2nd cas de figure tu auras plutôt ce résultat : (("0" . :vlax-true) ("Calque1" . :vlax-true) ("Calque2" . :vlax-false)) Soit : Donc cela ne change rien pour le nom des calques évidemment mais en revanche, les résultats imprimable/non imprimable est impacté 🙂 Bisous, Luna -
Coucou, J'avais moi-même confondu avec la couleur d'arrière-plan ! Une chance que généralement la couleur de l'interface suit la même logique que la couleur d'arrière-plan 🙂 Pour le coup, les arrière-plans/thèmes clairs me brûlent les rétines donc dès que j'en ai l'occasion je suis toujours sur des thèmes foncés (CADxp est une exception, car le thème foncé a une couleur désagréable je trouve, il n'y a pas de différence de teinte entre l'arrière-plan et la couleur des messages, donc on perd beaucoup d'infos ^^). Bisous, Luna
-
Bonjour, Comment cela est-ce une nécessité ? Par exemple une hachure au même niveau qu'une autre hachure va générer du flicker donc vraiment pas idéal. J'ai du mal à concevoir dans quelle condition la possibilité d'être au même niveau serait utile. Mais pour répondre à la question, je dirais simplement que non ce n'est pas possible. Bisous, Luna
-
*se (du coup ?) 🙂 Désolée, Luna
-
Coucou, S'ils continuent de changer les noms des commandes sans modifier leur fonctionnement ou quoi que se soit pour les versions françaises, je vais finir par utiliser définitivement la version anglaise pour ne plus avoir les fichiers .pgp qui bugguent parce qu'ils ont mal transférer les noms de commande... Savons-nous seulement à quoi sert ces modifications exactement ? Bisous, Luna
-
Modifier l'altimétrie d'une polyligne depuis attribut de blocs
Luna a répondu à un(e) sujet de Mfruncad dans AutoCAD 2020-2024
Coucou, Je n'aurais pas le temps de m'en occuper rapidement, mais je vais voir ce qu'il est possible de faire. En effet, rajouter un attribut Altitude_Fe me semble être la meilleure solution (car aucune perte d'information et/ou risque d'erreur !), mais dans ce cas, il faudrait que tu t'occupes de mettre à jour tes blocs pour le prendre en compte (envoi d'un .dwg corrigé ?). Pour la largeur globale, c'est impossible car tes réseaux sont des polylignes 3D or cette propriété n'existe que pour des polylignes 2D. Bisous, Luna -
Modifier l'altimétrie d'une polyligne depuis attribut de blocs
Luna a répondu à un(e) sujet de Mfruncad dans AutoCAD 2020-2024
Coucou @Mfruncad, Personnellement j'ai un soucis avec la définition : Altitude_GS = Altitude_GS - DIAM/1000 Car si l'on reprends ton exemple, tu comptes modifier la valeur de ton attribut Altitude_GS à partir de sa propre valeur. Autrement dit, si on lance le programme une première fois, on a au début : Altitude_GS = 12.93 Puis une fois le programme exécuté : Altitude_GS = 12.93 - 0.200 = 12.73 Si maintenant je relance le programme une nouvelle fois : Altitude_GS = 12.73 - 0.200 = 12.53 Et ainsi de suite... En clair, comment savoir si le programme a déjà été exécuté sur les blocs en question si tu redéfinis la valeur d'un attribut à partir de sa propre valeur ? Le programme ne fera qu'enterrer tes réseaux à chaque nouvelle exécution, entraînant des erreurs certaines (enfin c'est juste mon point de vue, peut-être ai-je mal saisie ta demande...). Ensuite, pourquoi l'attribut DIAM n'est pas sur tous les blocs présents sur la polyligne ? Est-ce un choix de ta part ou la flemme d'harmoniser la valeur sur l'ensemble des blocs ? Bisous, Luna -
Routine pour selectionner les Objets lineaires partant / arrivant sur les Blocs (ou Points)
Luna a répondu à un(e) sujet de lecrabe dans Routines LISP
Dans ce cas, je ne comprends pas bien pourquoi analyser les extrémités des objets linéaires si dans tous les cas, les blocs/points aux extrémités ne sont pas considérés et qu'on ne garde que les objets linéaires dans la sélection finale...En quoi consiste cette "analyse" ? De plus, si je comprends bien les blocs/points se trouvant aux extrémités des objets linéaires doivent appartenir au jeu de sélection initial, donc imaginons que mon jeu de sélection comporte 8 blocs, appartenant tous à une seule et même polyligne 3D. Le programme tel que tu le décris va tourner 8 fois, sélectionner 8 fois la même polyligne (à partir de coordonnées différentes), analyser 8 fois la polyligne et renvoyer strictement les mêmes résultats (quels "résultats" du coup ?) car les blocs aux extrémités n'auront pas bougés pour au final ne garder en sélection que l'unique polyligne 3D, ne donnant aucun renseignement sur "l'analyse" réalisée (8 fois) sur les 2 extrémités de cette polyligne et en ayant mouliné 7 fois de trop >w< Ou alors j'ai le cerveau ramolli et je n'ai pas bien saisie le déroulement du programme souhaité et le but voulu... sowwy.. Bisous, Luna -
Routine pour selectionner les Objets lineaires partant / arrivant sur les Blocs (ou Points)
Luna a répondu à un(e) sujet de lecrabe dans Routines LISP
Coucou @lecrabe, Il faut uniquement garder en sélection les objets linéaires et non les blocs/points aux extrémités de ces objets ? Quel est le but de la routine précisément ? Est-ce possible d'avoir un extrait de .dwg pour effectuer les tests ? Je vais voir ce qu'il est possible de faire en fonction de mes dispos 🙂 Bisous, Luna -
Hachure et epaisseur de polyligne dans polyligne multipoints
Luna a répondu à un(e) sujet de iowa13 dans Routines LISP
Coucou, Je ne dis pas que le tracé est moins faux, disons simplement que lorsque j'ai appris à faire du dessin en bâtiment, les largeurs de plumes à l'impression sont normées et on ne considérait pas la largeur de plume pour tracer l'épaisseur des murs me semble-t-il. Mais chat remonte à quelques années déjà et peut-être que je dis des bêtises ^^ Mais il est évident que si l'on mesure sur un plan papier ou sur AutoCAD, les cotations seront naturellement différentes entre les deux méthodes ce qui n'est pas normal et confus. Bisous, Luna -
Hachure et epaisseur de polyligne dans polyligne multipoints
Luna a répondu à un(e) sujet de iowa13 dans Routines LISP
Alors, je crois que ce que tu cherches en réalité c'est plutôt l'épaisseur de ligne à l'impression Ainsi ta polyligne à une épaisseur qui ne sera visible qu'à l'impression mais le contour de la ligne sera toujours bonne. Car en effet utiliser la propriété "Largeur Globale" d'une polyligne pour un mur, c'est une fausse bonne idée... Car comme le dit @didier, cela prête à confusion et même si en théorie les cotations auront une accroche aux sommets de la polyligne (donc au centre), cela reste une mauvaise pratique à mon avis. Bisous, Luna -
Hachure et epaisseur de polyligne dans polyligne multipoints
Luna a répondu à un(e) sujet de iowa13 dans Routines LISP
Coucou @iowa13, La programmation n'a rien de magique, pour apprendre il faut comprendre et pour comprendre il faut de la rigueur et de la curiosité. Trouver des personnes pour t'aider à te former n'est pas si difficile, en revanche cela demande du temps et de la persévérance. Comme le dit @didier à partir du moment où les personnes sont réellement motivées pour se former, tout est possible ! -> Aucune idée ! Car je n'ai jamais vu de .setq je ne parviens même pas à voir où tu as pu voir chat... Puisque tu es désireux d'apprendre, je ne vais pas te proposer de lignes de code ou de programmes tout fait tout beau. En revanche je vais t'aiguiller vers des fonctions dont tu auras besoin pour parvenir à tes fins ou avancer vers une solution : • (command), permet d'appeler une commande AutoCAD. Exemple : (command "_POLYLIGN") Il suffit ensuite de suivre les instructions requise par la commande pour la faire fonctionner. Tant qu'une commande n'a pas atteint sa finalité, elle sera toujours active. Un "" permet de simuler un ESPACE/ENTER • (while), permet de créer une boucle tant que la condition en argument est vrai • (getpoint), permet de demander à l'utilisateur de renseigner un point (3D) • (entlast), permet de récupérer le nom d'entité de la dernière entité crée • "_-HATCH", le nom de la commande "HACHURE" sans ouvrir la boîte de dialogue. Cette fonctionnalité est issue du "-" devant le nom de la commande, le "_" signifie que l'on utilise un nom (commande ou option) international (cela permet que le programme fonctionne aussi bien sur un AutoCAD dont la langue est définie sur Français, Anglais, Allemand, etc...) Pour répondre à ton problème, il existe de trèèèèès nombreuses solutions, plus ou moins complexe. Donc en voulant recopier des programmes à droite à gauche, forcément tu utilises des programmes beaucoup trop complexes ! Très honnêtement, même une simple macro permet de répondre à ton besoin... Bref, bon courage pour nous sortir un programme écrit par ta main, sans recopier le code de qui que se soit. Même si chat paraît difficile au début, tu ne pourras qu'être fier une fois que tu auras développer ton premier code par toi-même 🙂 Bisous, Luna -
Empêcher la modification de la valeur d'un attribut
Luna a répondu à un(e) sujet de Nicocotte dans AutoCAD 2020-2024
Coucou, A ma connaissance il n'est pas possible de définir un attribut de bloc en "lecture seule" mais si je comprends un peu la démarche j'avoue ne pas bien comprendre l'intérêt de l'attribut ? Les longueurs attribuées à l'attribut correspondent-elles à des longueurs d'objets réelle ou bien sont-elles définies par des formules ? En clair, un paramètre dynamique ne permettrait pas d'avoir la même possibilité ? Car contrairement à un attribut, un paramètre dynamique peut ne pas être affiché (donc il n'apparaît pas dans la palette de propriété) mais je ne sais pas si l'outil d'extraction de données est en mesure d'extraire les données de paramètres dynamiques pour les bloc... Je suppose que tu as besoin de cette valeur en accessible pour justement pouvoir ensuite faire un extract et facilement faire tes métrés ? Bisous, Luna -
Coucou, Le soucis principal que je vois : Aucune option n'a été définie en international (ils ont développé chat uniquement pour des AutoCAD anglais) mais rien de bien méchant vu qu'en international il suffit d'ajouter un underscore "_" devant les noms anglais. Et les commandes "LAYER" et "HATCH" ouvre une boîte de dialogue donc il faut plutôt utiliser les versions en ligne de commande (précédées d'un tiret "-"). (defun C:INSULHATCH ( / old_snap old_lay first_pt second_pt third_pt hatch_scale rectangle_name) ; ; insulation batting hatch tool from www.CADhatch.com for metric & imperial drawings ; to use, pick first point on left end of line, second point on right end of same line, third point needs to be opposite the second point. ; (setq old_snap (getvar "OSMODE"));save osnap so we can reset it on exit (setvar "OSMODE" 1); set osnap to end point (setq old_lay (getvar "CLAYER")); save current layer name so we can reset it on exit (prompt "\nSelect 2 points on lower line and 3rd on top line at 90degs to 2nd: ") (setq first_pt (getpoint)) (setq second_pt (getpoint)) (setq third_pt (getpoint)) (setq hatch_scale (/ (distance second_pt third_pt) 100.0)) ; hatch scale needs to be distance between lines divided by 100 (command "_-LAYER" "_M" "HATCHLAYERNAME" "") ; edit layer name to suit your requirments, if layer exists in the drawing will set to that, if not it will create it. (command "_RECTANG" first_pt "_R" second_pt third_pt) ; draw a rectangle to hatch (setq rectangle_name (ssget "_L" )) ; name the rectangle so we can delete it if required (command "_UCS" "3" first_pt second_pt "") (command "_-HATCH" "_P" "H1INSUN1" hatch_scale 0 "_S" "_L" "") (command "_ERASE" rectangle_name "") ; erases the hatch boundary rectangle, delete this line if you normally want to keep the boundary (command "_UCS" "_P") ; resets UCS to previous setting (setvar "OSMODE" old_snap) ; resets osnap to previous setting (command "_-LAYER" "_M" old_lay "") ; reset to orginal layer ) ; end defun L'écriture du programme est très bancale et je vois de nombreuses améliorations possibles mais je manque de temps pour te proposer une version plus propre. (version ci-dessus non testée !) Bisous, Luna
-
Dans l'attente d'un point ou d'un texte
Luna a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
Coucou, J'ai retrouvé une fonction LISP (get-string-or-entity) crée par (gile) qui semble répondre à ton besoin. ;--- LISP de (gile) publié sur CADxp.com le 25/03/2020 17:56 ; Permet de récupérer une chaîne de caractères ou une liste similaire à (nentsel) pour une entité : ;--- La fonction (Get-string-or-entity) possède 2 arguments ;--- cr si non nil, accepte les espaces dans la chaîne comme (getstring) ;--- msg correspond au message d'invite à afficher sur la ligne de commande ;--- Renvoie la chaîne de caractères, une liste de la forme (<entityname> . (x y z)) (similaire à (nentsel)) ou nil (defun GetStringOrEntity (cr msg / break result gr pt ent str) (prompt msg) (while (and (not break) (setq gr (grread nil 12 2)) ) (cond ( (= 3 (car gr)) ;; Clic gauche (setq ent (nentselp (cadr gr)) result (cond ((null ent) nil) ((= (length ent) 2) ent) (T (list (last (last ent)) (cadr gr)))) break T ) ) ( (equal gr '(2 13)) ;; Validation par Entrée (setq result str break T ) ) ( (and (not cr) (equal gr '(2 32))) ;; Validation par Espace (setq result str break T ) ) ( (= 2 (car gr)) ;; Récupération des entrées au clavier (if (= (cadr gr) 8) ;; 8 = retour/effacer (or (and str (/= str "") (setq str (substr str 1 (1- (strlen str)))) (princ (chr 8)) (princ (chr 32)) ) (setq str nil) ) (or (and str (setq str (strcat str (chr (cadr gr)))) ) (setq str (chr (cadr gr))) ) ) (and str (princ (chr (cadr gr))) ) ;; affichage sur la ligne de commande ) ) ) result ) ;; End of (defun GetStringOrEntity) Bisous, Luna -
Bloc dynamique - Déplacement attribut selon état de visibilité
Luna a répondu à un(e) sujet de minus87 dans AutoCAD 2020-2024
Coucou, Il est apparemment possible de renommer ces blocs anonymisés (cf. >>ici<<) cependant je doute que cela solutionne ton soucis... J'ai encore un peu du mal à saisir les différentes étapes et le but final. Que veux-tu dire par là ? Si je comprend bien, le but n'est pas de mettre à jour la définition de bloc...mais uniquement la valeur des attributs pour qu'ils aillent chercher des valeurs entrées dans les propriétés de dessin (projet ?). Comment accèdes-tu à ces propriétés ? Ne peut-on pas définir la valeur des attributs via un champ dynamique allant récupérer ces informations ? Je ne m'y connais malheureusement pas suffisamment en AutoCAD Electrical et je m'en excuse >w< Bisous, Luna -
Conversion Polyligne 2D en 3D par rapport à des pts topos blocs
Luna a répondu à un(e) sujet de Thiballz dans AutoCAD Civil
Coucou, Je remarque dans les fichiers transmis que tu ne possèdes pas de .dwg dans lequel les points (blocs) et les polylignes (2D), sont présents comme entités directement sélectionnables. Soit tes points topo sont insérés comme référence externe, soit tes lignes sont sous forme de bloc. Est-ce une volonté de ta part et il faut travailler avec chat ? Sur quel .dwg faut-il donc travailler ? Pour les polylignes, il arrive également que certains sommets n'ont pas de relevé topo, je suppose donc qu'il faut calculer "arbitrairement" une topo par rapport aux sommets précédents/suivants ? Ou bien il faut définir une topo nulle (permettant d'alerter sur l'absence de relevé topo) ? Comment souhaites-tu sélectionner tes polylignes ? Faut-il supprimer la polyligne d'origine ou bien créer une polyligne 3D en conservant l'existante ? Je verrai si j'ai un peu de dispo cette semaine. Bisous, Luna -
Conversion Polyligne 2D en 3D par rapport à des pts topos blocs
Luna a répondu à un(e) sujet de Thiballz dans AutoCAD Civil
Coucou, Serait-il possible d'avoir un .dwg d'exemple pour mieux comprendre comment sont situés les points topo par rapport aux polylignes, les noms des blocs, calques, etc... ? Cela facilitera grandement pour nous permettre de répondre à ton besoin (qui, je pense, nécessite de passer par de la programmation). Bisous, Luna -
Bloc dynamique - Déplacement attribut selon état de visibilité
Luna a répondu à un(e) sujet de minus87 dans AutoCAD 2020-2024
Coucou, Je n'ai pas parfaitement bien cerné le problème mais si je résume ce que j'ai compris : tu as un bloc CARTOUCHE (dynamique) et tu veux avoir la possibilité de le mettre à jour à partir d'un gabarit DWT de ton cartouche. Le soucis c'est que les références de blocs dont les paramètres dynamiques sont modifiés sont toujours renommées implicitement par AutoCAD en *U##. Donc impossible de prévoir le nom d'une référence de bloc dynamique, et bien que l'utilisateur ne voit pas ce changement, AutoCAD lui ne considère que ce nom pour ses différentes commandes. Du coup, impossible pour toi de remplacer ta définition de bloc avec une autre, tout en conservant les propriétés du cartouche existant, car AutoCAD refuse de considérer l'EffectiveName de ta référence de bloc. Si le but est donc de remplacer un bloc par un autre, peut-être voir du côté de RBLOC de Patrick_35 (il me semble que sa routine conserve les attributs et propriétés dynamiques) : Bisous, Luna -
Geler un calque pour qui reste visible
Luna a répondu à un(e) sujet de treza88 dans AutoCAD 2020-2024
Coucou, Le principe même de "geler" un calque est justement de rendre un calque non visible donc le concept de geler un calque pour qu'il reste visible -> non. En revanche si je comprends bien ta problématique c'est que tu travailles en espace objet, donc tu gèles des calques et lorsque tu imprimes un plan depuis ton espace papier, si tu as oublié de réactiver tous tes calques et bien il te manque des infos dans ton espace papier, c'est chat ? Si c'est le cas, je peux te suggérer une alternative : ne jamais travailler dans ton espace objet, conserver 100% des calques en visible et créer plutôt une présentation TRAVAIL avec une fenêtre de présentation. Tu peux ainsi travailler dans cette fenêtre, geler les calques comme tu le souhaites (uniquement dans la fenêtre) sans impacter la visibilité des calques dans les autres présentations. Cependant contrairement à AutoCAD, tu ne sembles pas avoir de commande _VPMAX et _VPMIN (cf >>ici<<) sur DraftSight, donc sûrement un peu plus contraignant sur les délais de zooms ou autre. Bisous, Luna -
[A2021] fenêtre ligne de commandes qui dépasse de chaque coté
Luna a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2020-2024
Coucou, Proposition un peu simpliste mais, si tu ancres la ligne de commande (au même titre qu'une barre d'outil) ? C'est moins pratique de mon point de vue, car tu ne peux plus faire F2 mais en théorie la ligne de commande fera la taille de ta fenêtre en bas.. Bisous, Luna -
comment mettre mon dessin en une ligne continue
Luna a répondu à un(e) sujet de bois deco dans AutoCAD LT 2020-2023
Coucou, Je crains de ne pas bien comprendre la demande. Parles-tu du type de ligne (= "Continuous" au lieu de "CACHE") ? -> Changer le type de ligne en "Continuous" depuis la palette de propriété en sélectionnant l'entité. Parles-tu du fait que tu possèdes une forme composée de lignes (donc pas une polyligne fermée) ? -> Sélectionner l'ensemble des lignes et lancer la commande JOINDRE. Si jamais tu te retrouves avec plusieurs polylignes ou une polyligne non fermée, il faudra retravailler un peu la polyligne pour la clore (accessible depuis la palette de propriétés ou bien la commande PEDIT). Le manque de précisions n'aide pas beaucoup pour nous permettre de répondre à ton problème 🙂 Bisous, Luna -
Coucou @DenisHen, La fonction (cons) permet de construire une liste ou bien une paire pointée. En effet $ (cons 1 2) (1 . 2) Créé une paire pointée $ (cons 1 '(2 3)) (1 2 3) Théoriquement, la liste ci-dessus est également une paire pointée (bien que le point ne soit pas apparent) puisque la fonction (assoc) fonctionnera exactement pareil si c'est contenu dans une liste (exemple code DXF 10 dans les listes DXF), et $ (setq lst (cons 1 '(2 3))) (1 2 3) $ (car lst) 1 $ (cdr lst) (2 3) En revanche si l'on regarde de plus près : $ (cons 1 2) (1 . 2) $ (cons 1 '(2)) (1 2) $ (cons '(1) 2) ((1) . 2) $ (cons '(1) '(2)) ((1) 2) Autrement dit, le premier argument de (cons) sera rajouté au début du second argument (si je ne m'abuse, on peut voir chat comme une pile donc dernier entré premier sorti, (car) renvoi la dernière entrée). Et en fonction du type du second argument, le résultat sera plus ou moins différent (apparition d'un point "." ou non). Tandis que (append) fonctionne différemment puisque dans un premier temps, le nombre d'argument est variable ! En effet $ (append '(1) '(2) '(3)) (1 2 3) $ (append '(1) '(2 3)) (1 2 3) $ (append '(1 2 3)) (1 2 3) Mais ce n'est pas tout. La fonction (append) n'accepte que des listes (et attention, des LIST ! Donc une paire pointée ne fonctionne pas non plus, c'est-à-dire si tu as utilisé un (cons) avec pour second argument un atom différent de nil), contrairement à (cons) qui accepte tout type de données. La fonction (append) ne fait que combiner un ensemble de liste en une seule liste, dans l'ordre dans lequel les arguments sont renseignés. $ (append '(1 2) 3) ; erreur: type d'argument incorrect: listp 3 $ (append '(1) (cons 2 3)) ; erreur: liste incorrecte: 3 Donc imaginons les 4 exemples ci-dessous : ;; EXEMPLE N°1 : (setq lst1 '()) (repeat (setq n 5) (setq lst1 (append lst1 (list (setq n (1- n))))) ) ;; EXEMPLE N°2 : (setq lst2 '()) (repeat (setq n 5) (setq lst2 (append (list (setq n (1- n))) lst2)) ) ;; EXEMPLE N°3 : (setq lst3 '()) (repeat (setq n 5) (setq lst3 (cons (setq n (1- n)) lst3)) ) ;; EXEMPLE N°4 : (setq lst4 '()) (repeat (setq n 5) (setq lst4 (cons lst4 (setq n (1- n)))) ) Es-tu en mesure de me donner les résultats obtenus à l'issue de chacun de ces exemples (sans les tester en console dans un premier temps, pour voir) ? Bisous, Luna
-
LISP pour faire une légende autocad
Luna a répondu à un(e) sujet de vin sans eau dans AutoCAD LT 2020-2023
Coucou, Les programmes développés par UrbanLISP sont payants. Autrement-dit le programme que tu présentes fonctionne parfaitement bien avec les hachures donc il répond à ton besoin. D'un point de vue purement commercial je doute qu'il soit très fair play de demander de développer gratuitement un programme qui est payant ailleurs : https://www.urbanlisp.com/command/37/quick-legend/ Personnellement je ne m'engagerai pas dans cette voie, désolée. Bisous, Luna
