-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
Chemin d'un Lisp selon la commande lancée
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Vincent. Oui, je parle bien d'un Lisp (qui peut comporter plusieurs commandes) qui est chargé au démarrage d'AutoCAD depuis un répertoire déclaré dans les chemins de recherche d'AutoCAD. Mais j'ai, dans un sous-répertoire contenant ce Lisp, des centaines de blocs, que je ne voudrais pas mélanger avec les .lsp ou mes .ini dans ce même chemin, j'aurais donc sur un PC : "D:\MonAutoCAD\MesLisp" => Avec mon (mes) lisp contenant la(les) commande(s). Et j'aurais dans "D:\MonAutoCAD\MesLisp\Blocs" les blocs (par exemple). Mais sur un autre PC (parmi d'autres), j'aurais aussi : "H:\Société\MesLisp" ou même "S:\AutoCAD\Lisp" et il y aura systématiquement mes blocs (par exemple) dans un de ses sous-répertoire "...\Blocs" dans chacun de tous les PC. En bref, j'aurais, hypothétiquement, un PC avec les Lisp dans : "D:\MonAutoCAD\MesLisp" et les blocs (ou autres divers fichiers annexes) dans "D:\MonAutoCAD\MesLisp\Blocs". Mais sur un autre PC, ce serait : "H:\Société\MesLisp" et les blocs (ou autres divers fichiers annexes) dans "H:\Société\MesLisp\Blocs". Et ce sera des répertoires différents sur la totalité différents PC/Portables. J'aimerais donc développer des Lisp "communs", chargé depuis différents répertoires connus d'AutoCAD, mais avec la structure des sous-répertoire identique. En gros, ne faire qu'un seul Lisp qui servira en même temps à plusieurs PC (structures). Ne pas faire plusieurs Lisp, comportant plusieurs commandes, pour chacun des PC/Portables, mais bien un seul Lisp qui fonctionnerais sur tous les PC... J'ai pensé à la base de registre ou à un .ini, mais parfois, les clefs ou DD USB changent de lettre, et c'est l'impasse. Je ne sais pas si je me suis bien faire comprendre... -
Chemin d'un Lisp selon la commande lancée
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Fraid, et merci pour ta réponse... Un Lisp d'installation ? Qu'entend-tu par là ? Aurais-tu un exemple de code ? -
Bonjour à la communauté. Voilà, j'intègre un nouveau bureau d'étude le mois prochain, et je connais déjà la structure informatique "AutoCADienne". Il n'y a ni serveur, ni stockage commun, en fait, rien de commun à part la table traçante et les imprimantes. Donc, je développe des Lisp chez moi (télétravail) sur deux PC (un portable sur clef USB et un fixe sur mon serveur DNS), au bureau, les droits d'accès à C: sont interdits. Certains ont des seconds disques durs, d'autres travaillent sur Clef ou DD USB. Avec toutes ces données, je rame pour faire un et un seul LISP (par exemple) sans les réécrire à chaque fois pour les différents PC. En bref, pour pouvoir développer des Lisp pour tout le monde, j'aimerais connaître le répertoire du Lisp qui comporte la commande qui est lancée. J'ai cherché vers "FindFile", mais je n'ai rien trouvé... Quelqu'un aurait une solution, une astuce, un conseil... Si oui, je suis preneur... Bonne journée à la communauté. Denis...
-
Drafsight Commande Congé
DenisHen a répondu à un(e) sujet de bobaskis dans IntelliPlus, IntelliCAD, CadIdesk
Salut Bob. Pour la commande "Congé", j'aurais posé la question au DRH... :(rires forts): Pardon, ok, je sors... Denis... -
affichage carte aérienne avec GEOPOSITION
DenisHen a répondu à un(e) sujet de rebcao dans AutoCAD LT 2020-2023
Salut Christian. Peut-être aussi par ordre décroissant d'âge proportionnellement à la taille selon l'origine ! ! ! :(rires forts): Voir même par approximations successives par développement limité ! ! ! :D Ou pourquoi pas, selon la troisième lettre du nom du créateur... Denis... -
affichage carte aérienne avec GEOPOSITION
DenisHen a répondu à un(e) sujet de rebcao dans AutoCAD LT 2020-2023
Salut Reb. J'ai aussi été curieux de connaître cette "logique" d'ordre (Code, Description, référencement, Code EPSG...) mais rien. Je n'ai rien trouvé, je me suis donc dis que c'était peut-être dans l'ordre alphanumérique en anglais... Bonne journée à toute la communauté. Denis... -
Triage des blocs incrémentés depuis MicroStation Atlas V3
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2019
Salut Fraid, et merci pour ta remarque, qui souligne un oubli de ma part pour ne pas l'avoir supprimé de mon code. Cette commande (CtrlSvGrd) effectue une sauvegarde (ou enregistrement) toutes les X commandes de mes différents LISP qui y font appel. Si cela intéresse quelqu'un, voici la description des deux commandes et leur code : CtrlSvGrd : fait appel au control (Ctrl) des sauvegardes (SvGrd ou enregistrement) du fichier dessin. Il sauvegarde ou pas le fichier toutes les X commandes LISP qui y font appel (définies par CtrlSvGrdParam). CtrlSvGrdParam : défini le nombre d'appel à CtrlSvGrd qui lance la commande sauvegarde (ou enregistrement) du fichier dessin. ;;;***************************************** ;;; Sauvegarde toutes les n opérations LiSP ;;;***************************************** (defun c:CtrlSvGrd (/ SvGrd) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq SvGrdParam (vlax-ldata-get "DenisH" "SauveGardeParam" 0)) (if (= SvGrdParam 0) (progn (setq SvGrdParam 20) (vlax-ldata-put "DenisH" "SauveGardeParam" SvGrdParam)) ;_ Fin de progn ) ;_ Fin de if (setq SvGrd (vlax-ldata-get "DenisH" "SauveGarde" 0)) (if (>= SvGrd SvGrdParam) (progn (princ "\nSauvegarde incrémentielle...\tCompteur à zéro.") (command "_qsave") (vlax-ldata-put "DenisH" "SauveGarde" 0) ) ;_ Fin de progn (progn (setq SvGrd (+ SvGrd 1)) (vlax-ldata-put "DenisH" "SauveGarde" SvGrd) (princ (strcat "\nIncrémentation sauvegarde = " (itoa SvGrd) "/" (itoa SvGrdParam))) ) ;_ Fin de progn ) ;_ Fin de if (vla-endundomark doc) (princ) ) ;_ Fin de defun ;;;*************************** ;;; Paramètre des sauvegardes ;;;*************************** (defun c:CtrlSvGrdParam (/) (princ "\n\tDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq SvGrd (getstring "\nTapez le nombre d'opérations entre les sauvegardes :" "")) (vlax-ldata-put "DenisH" "SauveGardeParam" (atoi SvGrd)) (vla-endundomark doc) (princ) ) ;_ Fin de defun Bonne journée à tous. Denis... -
Triage des blocs incrémentés depuis MicroStation Atlas V3
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2019
Salut Gégé. Effectivement, j'ai eu trop souvent ce problème, et vu que je l'ai, en partie "résolue", j'ai préféré partager cette petite routine. A+ Denis... -
Triage des blocs incrémentés depuis MicroStation Atlas V3
DenisHen a posté un sujet dans AutoCAD 2019
Bonjour à la communauté. Voilà, j'ai trié les Lisps que j'ai créés et je suis tombé sur celui-là. Il pourrait être très utile à certains. Je m'explique : Lors d'un import ou d'une lecture d'un DWG issus de MicroStation Atlas V3, souvent, les mêmes blocs sont incrémentés, par exemple, le bloc "égout", s'il est utilisé 3 fois dans MicroStation Atlas V3, le DWG qu'il créera aura 3 noms de bloc différents pour le même bloc utilisé, "égout", "égout_01" et "égout_02", cette routine sert à supprimer ces extension incrémentés ("*_xx") pour ne retrouver que 3 blocs nommés "égout". ;;; *********************************************************** ;;; Routine de traitement des blocs incrémentés issus d'une V3 ;;; Version sans liste de blocs ;;; *********************************************************** (defun c:RemplBlkV3 (/ ss i ent elst BlkNom Resultat index NouvBlkNom) (princ "\n\tDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (princ "\nRemplacement des blocs incrémentés...") (setq ss nil i 0 ) ;_ Fin de setq (if (setq ss (ssget "_X" '((0 . "INSERT")))) (progn (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) BlkNom (cdr (assoc 2 elst)) ) ;_ Fin de setq (setq Resultat (vl-string->list BlkNom)) (if (/= (vl-string-search "_" (vl-list->string (reverse Resultat))) nil) (progn (setq index (- (length Resultat) (vl-string-search "_" (vl-list->string (reverse Resultat))))) (setq NouvBlkNom (if (eq (type (read (substr BlkNom (1+ index)))) 'INT) (substr BlkNom 1 (1- index)) BlkNom ) ;_ Fin de if ) ;_ Fin de setq (princ (strcat "\nAncien bloc: " BlkNom " -> Nouveau bloc: " NouvBlkNom)) (if (/= NouvBlkNom BlkNom) (progn (setq elst (subst (cons 2 NouvBlkNom) (assoc 2 elst) elst)) ; (entmod elst) ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if (if (eval 'c:CtrlSvGrd) (c:CtrlSvGrd) (princ "La commande c:CtrlSvGrd n'est pas disponible") ) ;_ Fin de if (vla-endundomark doc) (princ) ) ;_ Fin de defun J'ai écris ce code avec l'aide de plusieurs membres de CadXP... Un grand merci à eux... Denis... -
Salut à la communauté... Je ne suis pas très sur d'avoir compris, mais j'ai ça : ;;; ***************************************** ;;; Dessine une croix dans un quadrilatère ;;; ***************************************** (defun c:CroixDsQuadri (/ ent ent-liste n liste-sommets) (princ "\n\tDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (while (= "LWPOLYLINE" (cdr (assoc 0 (entget (setq ent (car (entsel "\nChoix de la polyligne\n"))))))) (setvar "clayer" (cdr (assoc 8 (entget ent)))) (setq ent-liste (entget ent) n 0 ent 0 liste-sommets nil ) ;_ Fin de setq (repeat (length ent-liste) (if (= 10 (car (nth n ent-liste))) (setq liste-sommets (cons (cdr (nth n ent-liste)) liste-sommets)) ) ;_ Fin de if (setq n (+ 1 n)) ) ;_ Fin de repeat (setq liste-sommets (reverse liste-sommets)) (command "_.line" (nth 0 Liste-sommets) (nth 2 Liste-sommets) "") (command "_.line" (nth 1 Liste-sommets) (nth 3 Liste-sommets) "") ) ;_ Fin de while (vla-endundomark doc) (princ) ) ;_ Fin de defun
-
Salut à tous, et surtout aux plus grands... J'avais fais un truc, dans ce sens, je répertoriais les entités, en fonction de leurs couleurs... Mais je ne m'étais jamais penché sur les couleurs RVB... Bien que j'y ai été souvent confronté... Je suis sur que j'avais un truc de tri dans ce sens... placé des entité dans des calques selon leur couleur... Je vais cherché, je pense avoir déjà fais un truc... Il créé un calque de la couleur de l'objet et il le met dans la couleur "DuCalque" et le place dans un calque de la couleur de l'objet... Denis...
-
Presentations multiples : Automatisation
DenisHen a répondu à un(e) sujet de ACAD666 dans Pour aller plus loin en LISP
Salut à tous... J'ai longtemps chercher à passer outre le bloc "cadre" pour passer à la polyligne... Qui est beaucoup plus souple, pour l'utilisateur, mais incroyablement plus complexe pour le développeur. J'avais essayé un truc, dont Maître Gilles m'avait donné un début de code que je n'ai jamais réussi à approfondir... Je ne suis peut-être pas à la hauteur... Ca parlait de "x-data", il m'a semblé, liées avec cette entité... Je n'ai jamais réussi à faire un truc avec ça, et je ne voulais plus le déranger, car il m'avait déjà bien aidé et bien orienté, et ce, depuis des années... Car il n'est pas nouveau le bougre... Mais je suis sûr qu'avec plus de données et plus d'expérience, on pourrait se débarrasser du bloc "A3" ou "A4", horizontal ou vertical, et se permettre de le faire avec une simple polyligne... J'ai cherché longtemps à le faire, mais mes capacités intellectuelles ont peut-être été dépassées... Seul Maître (gile), Je pense, car on est tous d'accord, il est SUPERBALÈSE ! ! ! ! !. (ou un crustacé, Je sais, d'autres auraient pu, mais qu'ils se présentent...) pourrait nous aider, car leurs connaissances, et on le sait tous, sont démesurées... (gile), si tu nous regardes... Reçois déjà toute notre sympathie et notre admiration... Mais si on pouvait passer d'une polyligne en espace objet vers une présentation dans un espace papier... Wouaouw ! ! ! On fera tous un grand pas dans ce domaine... Bon, gros bisous à toutes, et PDM à tous les mecs... Denis... -
Salut Ruts, merci pour ta réponse, je vais voir ça de plus près, je suis très intéressé... Mais il est payant (pas beaucoup, c'est vrai) et aussi en anglais... Bon week-end... Denis...
-
commande en diesel - rotation vue
DenisHen a répondu à un(e) sujet de philsogood dans AutoCAD LT 2020-2023
Comment il est fort ce Christian... ;) -
Recopier plusieurs calques (avec le contenu) en ajoutant un préfixe
DenisHen a répondu à un(e) sujet de Nos dans AutoCAD 2020-2024
Salut, j'ai retrouvé un vieux truc que j'avais écris il y a des années. On se place dans le calque "cible" et on sélectionne un élément d'un calque source pour copier l'intégralité du calque source vers le calque cible (courant). ;;; ************************************************************ ;;; Copie du contenu d'un calque dans le caque courant ;;; ************************************************************ (defun c:CopyCalquesCourant (/) (princ "\n\tDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq CalqCib (getvar "clayer")) (while (not (setq EntSrc (car (entsel "\nSélectionner une entité du calque à copier : "))) ;_ Fin de and ) ;_ Fin de not ) ;_ Fin de while (setq CalqSrc (cdr (assoc 8 (entget EntSrc)))) (if (= CalqSrc CalqCib) (progn (princ "\nAttention, calque source et calque cible identiques") (exit)) ) ;_ Fin de if (setq ss nil) (setq ss (ssget "_X" (list (cons 8 CalqSrc)))) (if ss (progn (setq i 0) (while (< i (sslength ss)) (setq etx (entget (ssname ss i))) (setq Ent (ssname ss i)) (command "copier" Ent "" (list 0 0 0) (list 0 0 0)) (command "chprop" (entlast) "" "ca" CalqCib "") (setq i (+ i 1)) ) ;_ Fin:while ) ;_ Fin:progn ) ;_ Fin:if ;; Active la fin de l'undo (vla-EndUndoMark doc) (princ) ) -
Salut Ruts... Je ne connaissais pas NanoCAD... Je m'en vais de ce pas chercher des précisions, je suis très intéressé... Sauf s'il ne prends pas le LISP...
-
Salut Ô didier, salut Ô décapode... Juste une petite question, vos antivirus fonctionnent avec Tor ? Denis, qui vous souhaite la santé... ;)
-
Salut à tous... Et à toi Gégématic. Qu'entends-tu par "accéder à leur réseau" ? Tu as une AIPR ? Tu veux juste "observer" ou localiser ? Si c'est pour une intervention physique "travaux..." tu peux toujours leur demander (s'il ne répondent pas au demandes de DT/DICT sous 9 ou 10 jours) une implantation à la surface de leur réseau souterrains, mais vu que c'est très souvent en classe B voir C, je doute qu'ils interviennent. En outre, il y a des méthodes et des sociétés qui détectent (via géoradar par exemple) les réseaux souterrains et les restituent sur plans topo (généralement en classe A). Voilà, si tu as des questions, je suis là, car ça a été mon boulot pendant 7 ans (le report de détection de réseaux souterrains sur plans topo)... Bon week-end à tous...
-
Salut. Je te souhaite aussi, et à toute la communauté, une excellente année 2021, la santé et le bonheur... Et oui, 64 est plus rapide, si tout ce qui tourne dessus est aussi en 64... ;) Denis...
-
Salut. Il y a aussi l'option de passer par un DXF et de l'éditer tel un fichier ASCII, pour renommer CONTINU par CONTINUOUS...
-
Salut CurlyGoth. J'ai réussi depuis longtemps à faire ce que je voulais, en VBA ET en Lisp... Merci quand-même... Denis...
-
Salut Tramber et mille mercis pour cette phrase de code que je n'aurais jamais, même soupçonnée. Bonne journée. Denis...
-
Bonjour à tous. Me voilà de retour. J'ai une curieuse demande aujourd'hui. Je cherche à faire la somme des codes ASCII des lettres d'un mot pour me retrouvé avec un seul nombre au final. Je ne sais absolument pas par quoi commencer. Si quelqu'un a une astuce, un conseil, je suis preneur. Bonne journée à tous. Denis.
-
Accrochage plates formes
DenisHen a répondu à un(e) sujet de Ingénieur Géomètre Radhoue dans Mensura
Salut. As-tu essayé F2 et F3 ? Denis. -
Bonjour à tous, et merci pour votre aide. Ma liste de fichiers, je l'ai construite ainsi : (setq Prefix "Arr") .... .... (setq RepBLK "E:\\DenCad\\Bloc\\Blocs_Charte\\") (setq ListFich (vl-directory-files RepBLK (strcat Prefix "*.dwg"))) Il y avait donc toutes les extensions. Et merci encore.
