
GEGEMATIC
Membres-
Compteur de contenus
1 414 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Tout ce qui a été posté par GEGEMATIC
-
Salut Thierry, pour te charrier je dirais qu'Autodesk n'est pas l'exemple à suivre en terme de relations client ... après chacun a ses raisons ... a+, Gégé
-
Merci Olivier, ton explication est vraiment plus claire que ce que j'ai entendu jusqu'ici ... On vient de déménager, on bossait en local, j'avais dit "vous inquiétez pas 30 jours glissant" et là, douche froide. Pour moi ça reste un système bancal, c'est a Sogelink de distribuer les licences, comme le fait Autodesk. mais la crise est passée ... a+, gégé
-
Salut à tous, je suis passé à la licence dématérialisée avec serveur propriétaire (toujours pas compris non plus), avec la promesse des 30 jours glissants. en ce qui nous concerne, la moindre déconnexion du serveur empêche l’activation de la licence donc je ne comprends pas le concept. autre chose, on voudrait passer en "tout cloud" donc plus de serveur du tout. comment ça marche ? merci a+, Gégé
-
modification de la définition d'un bloc dynamique non répercutée
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Visual LISP
salut Fraid, merci c'est ça ! pas logique, mais ça le fait ! a+ gégé -
modification de la définition d'un bloc dynamique non répercutée
GEGEMATIC a posté un sujet dans Visual LISP
Salut à toutes et a tous, meilleurs voeux pour 2025. Toujours dans mes blocs dynamiques, j'essaye de comprendre comment Autocad gère la définition et la représentation des blocs dynamiques. je voudrais pourvoir changer à la demande la taille d'une flèche de ligne repère contenue dans un bloc dynamique. En principe, sauf pour les attributs, il faut changer la définition du bloc pour que ça se répercute dans les occurrences du bloc. je le fait via ce code exemple pour le bloc "gen_sup" (defun foundef () (setq blks (vla-get-Blocks (vla-get-ActiveDocument(vlax-get-acad-object)))) (setq blk (vla-item blks "gen_sup")) (vlax-for ent blk (if (= (vla-get-ObjectName ent) "AcDbMLeader") (vla-put-ArrowheadSize ent 9.87654321) ) ) ) le changement de la définition se fait bien, mais elle n'est pas répercutée sur les occurences du bloc existantes. dans le dwg joint, on voit que les blocs "gen_inf", qui ont été modifiés après qu'une occurence du bloc a été insérée dans le dessin gardent une taille de flèche de 0.4, et non pas 9.8765 si vous éditez ce bloc, vous verrez pourtant que sa définition à une valeur de 9.8765 le bloc gen_sup, qui a été redéfini avant l'insertion d'une occurence à bien une taille de flèche de 9.8755 au lieu des 0.4 initiaux. Si j’utilise l'édition de bloc d'Autocad, la mise à jour est instantanée. En faisant un "handle_explorer" j'ai vu que la taille de la flèche est stockée 2 fois, code 40 et 140 en dxf. Je sais aussi que les blocs dyn créent une entrée personnalisée dans le dictionnaire irdDscDictionary, mais je n'ai rien trouvé dedans. là je sèche ! a+ Gégé Exemple_bdyn.dwg -
changer l'état de visibilité d'une entité à l'intérieur d'une définition de bloc dynamique
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Visual LISP
Salut, encore une observation que je fais sur les blocs dynamiques, la methode GetBoundingBox retourne une valeur indépendante de l'état de visibilité. on dira que ça m'arrange pas, mais c'est comme ça ... a+ Gégé -
changer l'état de visibilité d'une entité à l'intérieur d'une définition de bloc dynamique
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Visual LISP
Salut, donc je suis arrivé à contourner le problème, OUF! dans mon bloc "cellule souche" j'ai ajouté un bloc basique, un cercle avec le bon état de visibilisé. pour créer mes 80 blocs, j'ai fait un entmod sur le bloc basique avec le bloc représentation voulu. ça marche très bien ! Au passage, je me suis aperçu (Alléluia) que la caractéristique "dubloc" fonctionne de manière imbriquée, je n'avais jamais fait attention à ça. ;;******************************************************** ;§**/blocs/ prépare la copie des bocs avant de la lancer la redéfinition les blocs dynamique du pproto / none (defun c:prepare_Redef_pt_Topo_Dyn (/ el el1 el2 tmp reinit rep ss1 ss2) (PW_CHARGER_xml (strcat aclsp-chem "ini/topo/INERIS.xml")) (setq lblocs (pw_reduct_list (mapcar 'cadr ineris))) (foreach l (pw_reduct_list lblocs) (print l) (PW_COPY_BLOCK_DEF l (strcat l "_FOND")) ) ) ;;******************************************************** ;§**/blocs/redéfinie les blocs dynamique du pproto / none ;;cette opération est à faire: ;;lorsque l'on décide une redfinition des blocs "TCPOINT_11att", par exemple en ajoutant ou en supprimant des attributs, ;; (defun c:Redef_pt_Topo_Dyn (/ el el1 el2 tmp reinit rep ss1 ss2) (vla-StartUndoMark pw-acaddocument) (alert "\nRedéfinition des blocs dynamiques du pproto à partir des tcpt_11_att dynamique\nil faut purger les autres blocs avant de la lancer " ) (Getstring "\nEchap pour annuler cette commande très spéciale, valider pour continuer" ) (PW_CHARGER_xml (strcat aclsp-chem "ini/topo/INERIS.xml")) (setq lblocs (pw_reduct_list (mapcar 'cadr ineris))) (foreach l lblocs (cond ((wcmatch l "*_EP") (setq tcpt "TCPOINT_11att_EP_dyn") ) ((wcmatch l "*_EU") (setq tcpt "TCPOINT_11att_EU_dyn") ) (t (setq tcpt "TCPOINT_11att_dyn") ) ) (command "_bedit" tcpt) (setq eblocSouche (ssname (ssget "x"'((0 . "insert")(2 . "tcpoint_symbole"))) 0)) ;;(setq egsouche (entget eblocSouche)) (pw_entmodifi eblocSouche 2 (strcat l "_FOND")) (command "_bsaveas" l "_y" ) ) (vla-EndUndoMark pw-acaddocument) ) -
changer l'état de visibilité d'une entité à l'intérieur d'une définition de bloc dynamique
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Visual LISP
salut Gilles, c'est bien ce que je pensais, et je sais trop bien combien ça coute d'énergie de "décrypter les dictionnaires d'extension des définitions de bloc" pour s'apercevoir finalement qu'on ne peut les modifier... mais heureusement je crois que j'ai trouvé une combine pour m'affranchir de ce pb, je teste et je vous tiens au courant. merci a+ gégé -
Salut à toutes et a tous, j'ai créé un bloc dynamique servant de base à une annotation. Il est très simple, un point, une ligne repère, 11 attributs, un étirement polaire des la ligne repère et des 11 attributs. + un état de visibilité sur la ligne repère visible ou invisible. A partir des ce bloc "cellule souche", je défini 80 blocs à partir de cette cellule souche, en ajoutant des entités diverses pour avoir un symbole + évolué qu'un simple point. sauf que l'ajout des entités se fait dans un état de visibilité ou l'autre. Du coup, c'est soit je vois la ligne repère soit les entités ... (voir exemple joint) si je trouvais où est stocké l'état de visibilité, je pourrai le corriger par la programmation, ça serait mieux que de me palucher 80 blocs ... mais la je sèche. Lee mac drive les blocdynamique, mais il ne fait pas ça... a+ Gégé applique.dwg
-
[Challenge] Extraire les nombres d'une chaîne de caractères
GEGEMATIC a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Oui, j'ai rajouté les dépendances, pour que vous puissiez avoir le frisson de faire tourner une application préhistorique, un peu comme un émulateur de Donkey Kong... P_supp_elem montre ce que l'absence de visual lisp pouvait engendrer comme complications ... Enfin ça ne s'appelle pas participer au challenge, puisque le but est de le faire maintenant et avec élégance mais je me souvenais que cette séparation de nombres n'avait pas été qq chose de simple ... a+ Gégé -
[Challenge] Extraire les nombres d'une chaîne de caractères
GEGEMATIC a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
salut, moi c'est pas du code élégant, mais très ancien : Commande: (pw_sep_ch_nomb "Longueur = 456.789 mètres. Largeur = 123.456. Il faut retirer -56.89 à la quantité qui est de 1234 ! sinon c'est 1/2") -> ("Longueur = " "456.789" " mètres. Largeur = " "123.456" ". Il faut retirer -" "56.89" " à la quantité qui est de " "1234" " ! sinon c'est " "1" "/" "2") je vois qu'il reste un problème avec le signe - et bien sur, ça ne répond pas au cahier des charges de Gilles, car les nombres ne sont pas isolés. je me suis dit je corrige ça comme ça: Commande: (vl-remove-if-not '(lambda (x) (numberp (read x))) (pw_sep_ch_nomb "Longueur = 456.789 mètres. Largeur = 123.456. Il faut retirer -56.89 à la quantité qui est de 1234 ! sinon c'est 1/2")) "placement incorrect d'un point en entrée" error success car en fait: Commande: (read " .1") "placement incorrect d'un point en entrée" donc il faudrait retourner dans le code pour régler ça de manière robuste. a+ gégé ;****************************************************************************** ;;;§/str/ cree une liste de chaine à partir d'une chaine contenant nombre et alpha/ch ;** (pw_sep_ch_nomb "PT32A") -> '("PT" "32" "A") ;;;Commande: (pw_sep_ch_nomb "PT3.2A") ;;;("PT" "3.2" "A") ;;;Commande: (pw_sep_ch_nomb ".PT3.2A") ;;;(".PT" "3.2" "A") ;;;(pw_sep_ch_nomb " a1a253t00000")->(" a" "1" "a" "253" "t" "00000") ;;;Commande: (pw_sep_ch_nomb " .a.1.0a253t...00000...000.0a.a") ;;;(" .a." "1.0" "a" "253" "t..." "00000" "..." "000.0" "a.a") ;;;(pw_sep_ch_nomb " .a.1.0a253t...00000...000.0a.a") ;;;(" .a." "1.0" "a" "253" "t..." "00000" "..." "000.0" "a.a") (defun pw_sep_ch_nomb (ch / tprec lres i chcou tp buf nb rg lrg ) (setq i 1) (setq chcou "") (while (/= "" (setq buf (substr ch i 1))) (setq i (+ 1 i)) (if (pw_isnum buf) (setq tp "num") (setq tp "char") ) (if tprec (if (= tp tprec) (setq chcou (strcat chcou buf)) (if tp (progn (setq tprec tp) (setq lres (cons chcou lres)) (setq chcou buf) ) ) ) (progn (setq tprec tp) (setq chcou buf) ) ) ) (setq lres (cons chcou lres)) ;; pour le dernier (setq lres (reverse lres)) ;;(print lres) (if (member "." lres) (progn (setq lrg (pw_l_rang "." lres)) (foreach rg lrg (setq val-1 (pw_nth (- rg 1) lres) val (pw_nth rg lres) val+1 (pw_nth (+ rg 1) lres) ) (cond ((and val-1 val+1 (= (type val-1) (type val+1)) ;_marche pour "0" "." "0" ou "a" "." "a" ) (setq lres (pw_subst_rang nil (- rg 1) lres)) ;_ (nouv rang lst) (setq lres (pw_subst_rang (strcat val-1 val val+1) rg lres)) ;_ (nouv rang lst) (setq lres (pw_subst_rang nil (+ rg 1) lres)) ;_ (nouv rang lst) ) ((and (/= (type val-1) (type val+1)) ;_marche pour "a" "." nil (= (type val-1) (type val)) ;_marche pour "a" "." ) (setq lres (pw_subst_rang nil (- rg 1) lres)) ;_ (nouv rang lst) (setq lres (pw_subst_rang (strcat val-1 val) rg lres)) ;_ (nouv rang lst) ) ((and (/= (type val-1) (type val+1)) ;_marche pour "1" "." "a" (= (type val+1) (type val)) ;_marche pour "." "a" ) (setq lres (pw_subst_rang nil (+ rg 1) lres)) ;_ (nouv rang lst) (setq lres (pw_subst_rang (strcat val val+1) rg lres)) ;_ (nouv rang lst) ) ) ) (pw_supp_all nil lres) ) lres ) ;if ) ;;************************* ;;§/listes/ nth sécurisé qui supprime le message d'erreur lorsque le nth n'est pas trouvé /i lst ;;(pw_nth 3 '(1 2)) -> nil ;;(pw_nth 3 '(1 2 3 4)) -> 4 ;; (defun pw_nth ( i lst /) (if (or (= nil lst) (> (length lst) i)) (nth i lst) ) ) ;****************************************************************************** ;;§/str/determine si un caractere est un chiffre/char (defun pw_isnum ( char ) (if (member (ascii char) '(48 49 50 51 52 53 54 55 56 57)) 'T nil ) ) ;*************************************************************************** ;;§/listes/retourne la liste des rang d'un elem une liste/el lst ;;(pw_l_rang "a" '( "a" "b" "a" "b")) -> '(0 2) (Defun pw_l_rang (elem lst / nb val i lres) (setq nb (length lst)) (setq i 0) (while (< i nb) (setq val (nth i lst)) (if (= val elem) (setq lres (cons i lres)) ) (setq i (+ 1 i)) ) (reverse lres) ) ;************************************************************************* ;§**/LISTES/ Remplacement dans une liste (par rang), rang commence à 0/nouv rang lst ;;(pw_subst_rang "z" 2 '(1 2 3 4 5))-> (1 2 "z" 4 5) (defun pw_subst_rang (nouv rang lst) (if (null lst) nil (if (= rang 0) (cons nouv (cdr lst)) (cons (car lst) (pw_subst_rang nouv (- rang 1) (cdr lst))) ) ) ) ;************************************************************************* ;§/LISTES/Suppression dans une liste de toutes les occurences de l'elem el /el lst (defun pw_supp_all (el lst / ) (while (member el lst) (setq lst (pw_supp_elem el lst)) ) lst ) ;**************************************************************************** ;§/listes/Supprime la premiere occurence de l'élément "elem" pw_dans la liste "lst"/lm lst ; (defun pw_supp_elem (lm lst / lst1 lst2 i tp tmp) (setq lst2 lst lst1 nil ) (if (setq tmp (member lm lst2)) (progn (setq lst2 (cdr tmp)) (setq i 0) (while (not (equal lm (setq tp (nth i lst)))) (setq lst1 (cons tp lst1)) (setq i (+ 1 i)) ) (setq lst1 (reverse lst1)) (append lst1 lst2) ) (setq lst lst) ) ) -
identification des fenêtres espace papier
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans Routines LISP
salut Phil, j'ai choisi cette commande: VPOOUTA1_4_FENETRE_NOMMEE même si je n'ai pas de fenêtre nomées. ça marche tout en conservant un bug: les cadres sont bien crées, mais des cadres et des textes sans aucun rapport avec la présentation sont également créés: voilà pour illustrer: les 2 cadres dans la zone surlignée sont OK, le cadre immense et le texte ne sont pas correctes. Mais ça fait le boulot, c'est pas un problème, merci ! a+ Gégé -
Salut à toutes et à tous, avant de me lancer dans une programmation hasardeuse, je vérifie que ce dont j'ai besoin n'existe pas déjà. Je reçois parfois de dwg où les entités de l'espace objet ont été dupliquées 20 fois, en fonction de ce que le dessinateur voulait représenter, ou conserver "au cas ou" etc ... Comment savoir quelle partie de l'espace objet correspond à quoi ? le lisp dont j'ai besoins doit parcourir les onglets de présentation, parcourir les fenêtres, et tracer dans chaque fenêtre l'emprise de cette fenêtre avec un texte contenant le nom de la présentation (ou alors tracer les emprises dans un calque ayant le nom de la présentation) si ça existe déjà, je prends ... a+ Gégé
-
Merci Aurélien, je vais regarder ça, car du coté d'Autodesk, pas de nouvelles ! a+ Gégé
-
salut, je viens de créer ce sujet : https://cadxp.com/topic/61644-gestion-de-licence-kafkaïenne/ mais du coté de Sogelink, j'ai également besoin d'explications: En 2024, Sogelink aurait donc inventé le cloud sur disque dur local ? c'est un concept ... Je m'explique: Après avoir éteint le serveur pendant nos vacances, j'ai reçu des e-mail sogelink m'expliquant que le serveur de licence ne répondait pas. Du coup je me suis aperçu que la disparition de la clé physique n'avait pas enlevé l'obligation d'avoir un serveur de licence chez moi ! ça parait un peu idiot non ? Pourquoi Sogelink ne gère pas lui même le service des licences ? comme le fait (très mal) Autodesk ? Comment je fais si je passe tout en cloud, et que je n'ai plus de serveur ? (ce que je souhaite faire dès que je pourrais avoir une connexion digne de ce nom ) dans l'attente, Gégé
-
Salut, billet d’humeur qui ne changera rien, je le sais... ce matin un de nos postes n'a plus de licence active, pas possible de travailler. sur le site de mes abonnements, il y a une licence disponible, mais il faut l'assigner à un team ! pb, il y a 2 teams dans mon abonnement ! je ne les ai jamais créé, au quel les assigner ? En savoir plus sur les teams ? Tout est en anglais, je suis pas traducteur ... Demander de l'assistance ? l'IA d'Autodesk doit être basée sur ChatGPT version 0.00001, c'est un dialogue de sourd qui se termine par une demande d'assistance par mail. (2j de délai) et donc on ne peut pas bosser. merci le 21eme siècle ... a+ Gégé
-
Filtrer les calques
GEGEMATIC a répondu à un(e) sujet de PATRICE69 dans Pour aller plus loin en LISP
Salut, dans ces 2 sujets, tu devrais trouver des infos et je crois qu'un autre fichier + récent à été créé . a+ -
Salut, en gratuit il faudra que tu ailles sur chaque site de fabriquant, tu y trouveras du .dwg 2d et 3d et du Revit (pour la robinetterie fonte en 2d: Pamcad de Pont à mousson, chez Pam également du Revit) danfoss socla a un super catalogue 3d. pour tous les tubes et les raccords : https://www.traceparts.com/fr ensuite il y a Fisa qui vends des catalogues aux normes françaises. Par contre, si tu veux faire de la tuyauterie sous Autocad, AutoCAD MEP, bien qu'imparfait (doux euphémisme) te rendra bien service ... a+, Gégé
-
Salut, comment tu désactive (par deéfaut) cet explorateur d'objet qui s'ouvre dans chaque dessin, et qu'on est obligé de refermer ? (même comportement qu'acrobat reader) ça nous intéresse ... a+ Gégé
-
Salut Lili, tu peux développer ? je suis très intéressé, car quand on a une réponse classe A et qu'on doit faire du marquage/piquetage, comment le faire à partir d'un pdf ? a+, gégé
-
Recherche guide de personalisation d'Autocad 2005 (ou 2004 , 2003 ...)
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2005
Salut Vincent, Merci, tu as mieux cherché que moi ! il me semble qu'il y a qq exemple en + dans la 2005, et au moins je suis sur d'avoir les dernières infos sur le format MNU a+ Gégé -
Recherche guide de personalisation d'Autocad 2005 (ou 2004 , 2003 ...)
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2005
@Maximilien Salut, tu me confirme bien que sur un Autocad récent (> 2013) ces lignes ne s'affichent plus ? -
Recherche guide de personalisation d'Autocad 2005 (ou 2004 , 2003 ...)
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2005
Merci Olivier et Maximilien, @Olivier Eckmann J'avais encore les docs papier, j'ai fini par les jeter (manque de place) persuadé de les avoir en pdf et non, je ne les ai pas trouvée. La 2000 doit être suffisante, et j'ai déjà trouvé des trucs dont j'avais besoins, à savoir des détails de syntaxe qui peuvent m'aider: comme les "Special label character" a+ Gégé -
Recherche guide de personalisation d'Autocad 2005 (ou 2004 , 2003 ...)
GEGEMATIC a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2005
Salut, le sujet n'est pas là, je suis bien entendu capable de personnaliser des CUI, puisque c'est le système depuis la 2006 ça reste une usine à gaz, on a régulièrement des espaces de travail qui "sautent", du coup, on double toujours nos espaces de travail... Le sujet, c'est que depuis 2000, j'ai créé un système de documentation des lisp, MAN, directement inspiré de la célèbre commande MAN de linux. Ce système de documentation qui d’appui sur une liste de projets lisp, permet de la consultation en ligne de commande, l'export de doc en html, au format excel, et de générer des menus pop, à 3 niveau en cascade. Mais j'ai un problème, depuis quelques versions Autocad, l'aide des commandes pop, qui s'affichait sur la barre d'état a disparu. je ne retrouve pas la doc de la syntaxe des fichiers .mnu Il y a longtemps, j'avais fourni les sources de man, ça n’avait pas intéressé grand monde, mais je vais le refaire, car il a beaucoup évolué depuis, et l'usage généralisé de lisps provenant de beaucoup d'auteurs différents le rend très très pertinent. a+ Gégé -
Recherche guide de personalisation d'Autocad 2005 (ou 2004 , 2003 ...)
GEGEMATIC a posté un sujet dans AutoCAD 2005
Salut à tous et à toutes, je cherche ce guide car il s'agit de la dernière version avec les menu .MNU/.MNS, qui sont bien plus simple que les CUI et qui fonctionnent encore en 2024. je recherche la version la plus récente, 2005, pour avoir l'info la plus précise sur ce sujet. Je pensais avoir un bible 2000 en pdf, mais je ne la retouve plus d'avance merci, a+ gégé