Olivier Eckmann
Membres-
Compteur de contenus
2 348 -
Inscription
-
Dernière visite
-
Jours gagnés
119
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Olivier Eckmann
-
OK, juste un hyperlien sur des textes (on se fout des rectangles) et l'hyperlien est constitué de la chaine du texte + .DWG (defun C:TXT2HL ( / I ssText oText) (if (setq ssText (ssget (list (cons 0 "TEXT")))) (progn (setq I 0) (repeat (sslength ssText) (setq oText (ssname ssText I)) (setq I (1+ I)) (seturl oText (strcat (cdr (assoc 1 (entget oText))) ".DWG")) ) ) ) ) Olivier
-
Le calque 0 ne serait pas inactif ou gelé? Olivier
-
Bonjour @William44850, A moins que l'on parle d'un objet carroyage type COVADIS, mais sinon l'objet carroyage n'existe pas dans AutoCAD. Est une polyligne? un bloc? une présentation? est-ce qu'il y a bien 1888 carroyages? Chaque carroyage possède un "identifiant unique". Sous quelle forme? un attribut de bloc? une donnée d'objet Map? le nom de la présentation? Un hyperlien vers un fichier fonctionne selon le principe des chemins relatif ou absolu? Est-ce que tu veux un chemin absolu ou relatif? Si j'ai renvoyé sur cette discussion, c'est que le programme lisp contient l'instruction permettant d'affecter un hyperlien à un objet via la commande (seturl ... Olivier
-
Organisation d'une liste (déplacement d'un élément)
Olivier Eckmann a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonsoir, Si je reprends : écrire la fonction en "français" c'est à dire comme un algorithme ça pourrait donner ça ; définit comme variable d'entrée : la liste MaListe , la variable Old : 1er indice à permuter, la variable New : 2nd indice à permuter ; les indices dans une liste commence à 0, mais tu souhaites compter à partir de 1 donc on enlève 1 pour convertir ton indice en indice base 0 ; stocke le nombre d'élémentde MaListe dans la variable NbElt ; stocke/initialise la valeur 0 dans un compteur/indice nommé I ; stocke/initialise une liste vide dans la variable NewList ; boucle sur les nombre d'élément de la liste ; SI le compteur (indice) est égal à Old-1 ALORS ; Ajoute l'élément d'indice New-1 à la nouvelle liste ; SINON, SI le compteur (indice) est égal à New-1 ALORS ; Ajoute l'élément d'indice Old-1 à la nouvelle liste ; SINON Ajoute l'élément d'indice courant à la nouvelle liste ; passe à l'élément suivant ; renvoie la nouvelle liste Ensuite sous chaque ligne de commentaire tu écris la fonction lisp correspondante ; définit comme variable d'entrée : la liste MaListe , la variable Old : 1er indice à permuter, la variable New : 2nd indice à permuter ; les indices dans une liste commence à 0, mais tu souhaites compter à partir de 1 donc on enlève 1 pour convertir ton indice en indice base 0 (defun DeplElemList (MaListe Old New / i NewList) ; stocke le nombre d'élémentde MaListe dans la variable NbElt (setq NbElt (length MaListe)) ; stocke/initialise la valeur 0 dans un compteur/indice nommé I (setq I 0) ; stocke/initialise une liste vide dans la variable NewList (setq NewList nil) ; boucle sur les nombre d'élément de la liste (repeat NbElt ; SI le compteur (indice) est égal à Old-1 ALORS (if (= I (1- Old)) ; Ajoute l'élément d'indice New-1 à la nouvelle liste (setq NewList (append NewList (list (nth (1- New) MaListe)))) ; SINON, SI le compteur (indice) est égal à New-1 ALORS (if (= I (1- New)) ; Ajoute l'élément d'indice Old-1 à la nouvelle liste (setq NewList (append NewList (list (nth (1- Old) MaListe)))) ; SINON Ajoute l'élément courant à la nouvelle liste (setq NewList (append NewList (list (nth I MaListe)))) ) ) ; passe à l'élément suivant (setq I (1+ I)) ) ; renvoie la nouvelle liste NewList ) Et voilà ... Ce beaucoup moins fun à écrire que la fonction récursive de @(gile), mais comme dirait @didier autant commencer à apprendre à marcher avant de courir 🙂 Il n'y a que 11 lignes que l'on peut encore raccourcir sans problème (remplacer les if par un cond par ex), mais comme chaque étape est décortiquée à son maximum, peu de risque de s'embrouiller les pinceaux. Olivier -
Bonjour, Tu peux essayer de t'inspirer de cette discussion : https://forums.autodesk.com/t5/autocad-tous-produits-francais/import-en-masse-d-hyperliens-vers-des-blocs/td-p/10523126 Olivier
-
Organisation d'une liste (déplacement d'un élément)
Olivier Eckmann a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Je ne t'ai jamais dit d'utiliser subst, il suffit d'avoir un compteur qui s'incrémente et créer un nouvelle liste dans laquelle tu ajoutes soit l'élément courant, soit le OLD, soit le NEW. Olivier -
Organisation d'une liste (déplacement d'un élément)
Olivier Eckmann a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Ecris le en français, puis passe au code ensuite quand c'est bien clair. "Problème clairement exposé à 90% résolu" Olivier -
Organisation d'une liste (déplacement d'un élément)
Olivier Eckmann a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Je suis sûr que l'on peut faire mieux, mais en version la plus simple (et intuitive peut-être) pour une permutation : Tu crées une boucle pour parcourir ta liste avec un indice courant qui s'incrémente de 0 à n-1 Et 3 conditions : - si l'indice courant est égal à l'indice OLD tu ajoutes à la nouvelle liste, l'élément d'indice NEW - si l'indice courant est égal à l'indice NEW tu ajoutes à la nouvelle liste, l'élément d'indice OLD - sinon tu ajoutes l'élément d'indice courant Olivier -
Comment faire un bouton avec une image dans un DCL ?
Olivier Eckmann a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Bonjour, ici : https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/dcl-button-images/td-p/9863170 il y a une discussion intéressante, mais c'est un "subterfuge" compliqué pour simuler quelque chose non prévue, donc c'est compliqué à mettre en œuvre. Soit l'interface permet juste d'obtenir des infos, et quand tu cliques OK, ça fait le boulot. Dans ce cas tu fais le dialogue dans le langage que tu souhaites (VBA) puis tu lances la commande lisp avec tous les paramètres issus du dialogue. Soit tu dois interagir avec AutoCAD pendant ton dialogue, et là, soit tu fais tout en VBA soit tu passes à quelque chose de plus robuste DotNet (C# de préférence, éventuellement VB.Net si tu es allergique aux points virgules🙂 ) et tu fais tout avec 1 seul langage. Faire du DCL pour avoir de joli interface, ça ne fonctionne pas ou bien au prix d'effort "quasi insurmontable" Olivier -
Bonjour, Je n'y connais rien, donc je vais dire des bêtises, mais tant pis, je me lance. Si j'ai tout bien compris, l'IA apprend à partir de données (grandes quantités d'info). Ces informations sont-elles contrôlées par les humains pour les valider, ou bien est-ce qu'elle pioche toute seule dans tout ce qui existe sur internet, réseau sociaux... Car dans ce cas, on sait qu'il y a beaucoup de fake news relayées par les réseaux sociaux : la dernière en date qui m'a assis par terre "1 jeune sur 6 croit que le terre est plate" : https://www.europe1.fr/societe/la-terre-est-plate-les-contreverites-scientifiques-gagnent-du-terrain-chez-les-jeunes-4164999 Si l'IA se base sur ces informations pour se "construire" est-ce qu'un jour si je lui demande la forme de la terre, elle risque de me répondre que la terre est plate? A partir de quand un humain saura que c'est une erreur? Dans quelque années, un jeune qui n'aura "appris/vécu" que grâce à l'IA, n'aura plus aucune culture/connaissance pour démêler le vrai du faux? Si un humain publie un texte (ou une information) généré par l'IA, est-ce qu'elle va les utiliser comme des données "humaines" pour apprendre? Donc elle apprend de ce qu'elle produit elle-même? Ca me laisse perplexe. Olivier
-
[Résolu ] Rédéfinir un bloc dont la couleur est forcée à l'intérieur de l'éditeur d'attribut étendu
Olivier Eckmann a répondu à un(e) sujet de Steven dans AutoCAD 2020-2024
Salut @Steven, C'est ça que tu veux? Olivier BLOCS_AVEC_ATT_COUL_FORCEES.dwg -
Bonjour, Il y a cette discussion à voir : https://cadxp.com/topic/41480-dessiner-un-pavage-en-arc-de-cercle/ Olivier
-
Barre de menu, Prolongement et Sélection de sommets multiples
Olivier Eckmann a répondu à un(e) sujet de Mlestru dans AutoCAD 2020-2024
Bonjour, Dans ton espace Dessin, tu n'as aucun menu affiché, seulement les onglets du ruban. Ci-joint la vidéo pour les remettre en place : https://autode.sk/3WSrPKX Olivier -
Barre de menu, Prolongement et Sélection de sommets multiples
Olivier Eckmann a répondu à un(e) sujet de Mlestru dans AutoCAD 2020-2024
Bonjour, Pour les points 2 (et peut-être 3), à la ligne de commande, taper MAPIOPTIONS (attention, il y a bien un i entre MAP et OPTIONS) Puis décocher la dernière option (sélection d'image par Maj+click) dans l'onglet préférences Olivier -
Copier des états de calques entre XREF
Olivier Eckmann a répondu à un(e) sujet de sylarr dans AutoCAD 2020-2024
Bonjour, Le nom de la XRef correspond par défaut au nom du DWG, par contre, on peut la renommer comme on le veut. Donc : Nommer la XREF n°1 par exemple XREFV1, puis faire son état de calque et l'exporter en .LAS Renommer la XREFV1 en XREFV0, puis la seconde XRef en XREFV1, importer le LAS Renommer XREFV1 en XREFV2 Renommer XREFV0 en XREFV1 Olivier -
Enregistrement automatique qui se désactive
Olivier Eckmann a répondu à un(e) sujet de rober dans AutoCAD 2020-2024
Bonjour, Jamais rencontré ce problème, mais tu peux éventuellement mettre la variable SAVETIME dans la liste des variable à suivre, comme ça tu auras une notification quand elle change et tu pourras peut-être l'associer à une commande ou une action spécifique. Olivier -
Comment obtenir cubature de tranchée d'une canalisation covadis?
Olivier Eckmann a répondu à un(e) sujet de jonathan LRD dans Covadis
-
résolu Modifier densité sommets (=>triangles) MNT
Olivier Eckmann a répondu à un(e) sujet de Jaypee dans Covadis
Bonjour, Tu as Cov3D / Visualisation du relief / Création maillage régulier. Ca permet de créer un MNT carré à la taille de grille souhaitée. Olivier Eckmann -
Salut @GEGEMATIC, A priori si tu utilises Revit en mode viewer, pas de souci, tu peux installer la version que tu veux, sans être en infraction sur ta licence 2021. Olivier
-
Bonjour, Dans cet article, on trouve la routine pour sélectionner tous les groupes : https://adndevblog.typepad.com/autocad/2012/05/obtaining-group-names-as-a-list-using-autolisp.html Dans cette discussion (message 5), il y a la fonction selgrp qui permet de sélectionner tous les objets d'un groupe donné : https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programmatically-find-a-group-s-quot-insert-quot-point/td-p/7311913 En combinant les 2, ça doit le faire. Olivier
-
Affichage tronqué du nom des menus (ruban, onglets)
Olivier Eckmann a répondu à un(e) sujet de alainterieur12 dans AutoCAD 2018
Je ne sais pas si c'est la capture d'écran qui a été déformée, mais les textes ont l'air écrasé en largeur et les cercles ressemblent à des ellipses verticales. C'est quoi la résolution? Conforme à l'écran? Olivier -
Affichage tronqué du nom des menus (ruban, onglets)
Olivier Eckmann a répondu à un(e) sujet de alainterieur12 dans AutoCAD 2018
Comme ça, je pense que tu es sur un écran 4K avec une police à 125%. Je crois que la version 2018 ne prenais pas en compte les écrans 4K. Olivier -
Comment utiliser les raccourcis clavier AutoCAD?
Olivier Eckmann a répondu à un(e) sujet de LucasRAPP dans Tutoriaux AutoCAD
Bonjour, Avec la version 2023, 2 commandes françaises ont été modifiées, mais pas dans le PGP. POLYLIGN est devenue POLYLIGNE (avec un E à la fin) DECOMPOS est devenu DECOMPOSER (avec ER à la fin) Olivier -
Ca ressemble à de l'IA via ChatGPT qui génère du Lisp ou autre langage via l'analyse des programmes. En général, ça fait n'importe quoi, et ensuite comme ça ne fonctionne pas, on retrouve les demandes sur les forums pour corriger le code. Olivier
-
Parcellaire d'un département par commnunes
Olivier Eckmann a répondu à un(e) sujet de bonuscad dans Autodesk Map
Bonjour @bonuscad, Avec la commande ARX, puis GROUPE, tu as la liste des groupes de commandes déclarés dans les ARX. Avec la commande ARX, puis COMMANDES, tu as la liste des commandes définies par groupe (précédemment vus). En chargeant les ARX 1 par 1, tu devrais pouvoir récupérer le(s) groupe(s) de commande supplémentaires, puis les commandes définies dans ce groupe. Je en sais pas si Covadis peut-être utilisé en mode console, mais si tu tapes le nom de l'arx en ligne de commande, cela te donne la liste de toutes les commandes définies dans cet ARX. C'est bien pratique. Olivier
