Aller au contenu

DenisHen

Membres
  • Compteur de contenus

    4 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    21

Tout ce qui a été posté par DenisHen

  1. Bonjour à tous... Que dire... Merci Lilian, ça fonctionne nikel... Merci encore... Denis...
  2. Bonjour à tous. Voilà, je ne connais rien aux blocs dynamiques, mais je vais devoir m'y mettre... Je dois créer un bloc "arbre" et je pense que seul un bloc dynamique me permettra de m'en sortir. En effet, il faut, pour un futur plan topo, faire un bloc "arbre" avec deux variables : la taille du tronc et la taille du feuillage. Si quelqu'un a des conseils voir des remarques, je suis preneur... Denis...
  3. Bonjour laud69, et merci pour l'aide... Le problème, c'est que AutoCAD.cuix est déjà chargé... J'ai donc recréé un AutoCAD(DH).cuix et transporter les menus depuis AutoCAD.cuix vers ce nouveau fichier, que j'ai chargé ensuite... Denis...
  4. Bonjour à tous, Je viens d'installer un AutoCAD MAP 2014 chez moi. Mais je n'ai pas de barre de menus... En mettant MENUBAR à 1, je n'ai que le menu "Express". "Fichier", "Edition".... n'apparaissent pas... Si quelqu'un a une astuce ou un conseil... Je suis preneur. Denis...
  5. Bonjour à tous, et merci... (gile) : Effectivement, je savais qu'il fallait un (foreach, mais je ne sais pas trop l'utiliser. vincentp010 : Zut ! ! Je n'avais pas fait gaffe à ça ! ! Honte à moi... Patrick_35 : il y avait aussi (while, que je comprend mieux que (foreach... Je me suis permis de rajouter une ligne, au cas où un des calques à supprimer n'existe pas... : (princ (strcat "\nCalque " calque " introuvable")) Voici en fichier joint, et grace à vous, mon code en entier, si quelqu'un de la communauté en a besoin, il est là... Il me permet de rapidement modifier un DXF du Cadastre tel que je l'utilise dans mes projets... Encore merci à vous... Tout ceci m'aide énormément ! ! ! Denis...
  6. Bonjour à la communauté... Voilà, j'ai fais (seul avec mes petits doigt) une petite boucle LiSP pour supprimer des calques. Mes dessins proviennent du Cadastre et il y a plein d'informations dans ces documents qui ne me servent à rien, j'efface dont le calque et son contenu... J'ai donc une liste (LstCalqSup) avec tout les calques à supprimer. J'ai ensuite une boucle qui supprime ces calques un par un suivant la liste... Problème : mon LiSP ne supprime que le premier calque... (defun c:TESTCAD (/) (princ "\nVersion 1.9") (setq LstCalqSup '("1FLECHEFL" "1PARCELLENFP" "1SUBDFISC" "1TROUPARCELLE" "1TROUSUBDFISC" "3BORNE" "3FOSSEMI" "3HAIENONMI" "3MURMI" "3MURNONMI" "3SUBDFISCTEX" ) ) ;_ Fin de setq (if (/= "" (car LstCalqSup)) (if (tblsearch "layer" (car LstCalqSup)) (progn (command "-SUPCALQUE" "n" (car LstCalqSup) "" "o") (setq LstCalqSup (cdr LstCalqSup)) ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de if (princ) ) ;_ Fin de defun Je me doute bien qu'il y a des solutions plus "propre" et/ou plus efficaces, mais ce code là est de moi... ;-) Si quelqu'un a une astuce ou un conseil pour supprimer tout les calques de ma liste, je suis preneur... Denis...
  7. Bonjour à tous... Bon, j'ai amélioré mon fichier Excel avec : - choix de la catégorie à exporter dans AutoCAD (ce qui évite de traiter systématiquement la totalité des calques). - gestion de l'ajout "assisté" d'une catégorie. J'espère que vos chartes fonctionnent depuis nos échanges... Denis...
  8. Salut à tous, Bon, j'ai suivi le conseil de Patrick_35... J'ai créé des variables LiSP et inséré des champs dans mon cartouche. C'est vrai que c'est très pratique d'avoir un cartouche qui se rempli "automatiquement" lors de l'enregistrement ou de l'impression... Mais après plusieurs tests, le cartouche ne se met pas bien à jour et je n'ai plus aucune données après le deuxième "_qsave"... Comprend pas. Faut-il déclarer les variables en "général" et non en "local" ? Ou un truc dans ce genre ? ? J'ai joint mon cartouche DWG et mon LiSP, au cas... Denis
  9. Salut Patrick_35 : Parce que les renseignements du cartouche sont connus dès le début de l'étude, mais les présentations se succèdent à mesure que le dessin évolu... Ce qui m'éviterait de lancer le LiSP avant chaque impression ou chaque eTransmit, ce sont des champs, car ils se mettent tout seul à jour avant ce type d'opération... Mais ce n'est pas une mauvaise idée... Maintenant, reste à savoir s'il faudra le lancer dans chaque présentation... Je vais me pencher là-dessus... BonusCAD : ton LiSP m'interresse beaucoup... Je le testerais dès que j'aurais un peu de temps... Et le modifirais le cas échéant à mes besoin... Si tu n'en vois pas d'inconvénients bien sur... Merci à tous... Denis...
  10. Bonjour, En fait, j'ai un LiSP qui rempli des valeurs incluses dans mon DWG... Ensuite, je pensais récupérer ces valeur dans différents champs de mon cartouche... Pour mieux comprendre, voicu mon bout de LiSP. (defun c:DHDossERDF (/ donnee) (princ "\nDéveloppé par Denis H.") ;;; Saisie d'objet de l'étude (setq donnee (vlax-ldata-get "ERDF" "DesigneEtude")) ; Numéro du dossier (if donnee ; si donnee est déjà défini (progn (if (setq donnee (getstring T (strcat "\nNuméro du dossier ERDF (" donnee ") - Nouveau numéro : ") ;_ Fin:strcat ) ;_ Fin:getstring ) ;_ Fin:setq ; Si donnee est re-défini (if (/= donnee "") (vlax-ldata-put "ERDF" "DesigneEtude" donnee) ) ;_ Fin:if ) ;_ Fin:if ) ;_ Fin:progn ; si donnee n'est pas encore défini (progn (setq donnee (getstring T "\nNuméro du dossier ERDF: ")) (vlax-ldata-put "ERDF" "DesigneEtude" donnee) ) ;_ Fin:progn ) ;_ Fin:if (princ) ) ;_ Fin:defun Denis...
  11. Je viens de comprendre... En fait, je me suis mal exprimé dès le début... Je ne cherche pas à récupérer une variable LiSP mais la chaine enregistrée dans mon DWG avec vlax-ldata-put Car mon LiSP ne se lance pas à chaque chargement du DWG. Désolé pour cette erreur de ma part... Je m'étais mal exprimé...
  12. Salut Patrick_35. Merci pour ta réponse. Mon LiSP est lancé à la demande, mais je "rempli" toutes mes variables dès le début de l'étude. Ainsi, je serais tranquille ensuite pour mes cartouches... J'essai tout de suite, mais quelle est la bonne variable ? "ERDF" ou "NumDossierERDF" ? AutoCAD me propose de continuer son expression ? Qui est "%<\AcVar.17.0 Lisp.#acet-pljoin-fuzz \f "%lu6">%" Je pensais plus à une "expression diesel" à placer dans le champs, car là, je n'ai pas ma donnée dans la liste de chois... Denis...
  13. Bonjour à tous, Voilà, j'ai un petit souci avec les "champs" d'AutoCAD. J'au un LiSP qui enregistre des données dans le DWG qui sont remplies avec une fonction VLiSP : "vlax-ldata-put" Pour aller chercher ces information, il y a "vlax-ldata-get". Mais je ne sais pas comment faire pour que mon champs AutoCAD cherche cette valeur dans le DWG. J'ai plusieurs valeurs de ce type, mais la première est dans "(vlax-ldata-get "ERDF" "NumDossierERDF")". Une fois que je saurais le faire avec une, le reste en découlera... Mon client est ErDF et cette variable représente leur numéro d'étude. J'en ai pris une au pif... J'aimerais savoir comment intéroger cette variable pour la mettre dans un des champs de mon cartouche... C'est un peu compliqué mais je pense être assez clair... Enfin je pense... J'ai posté dans ce groupe car il me semble que ça relève plus de la macro que du LiSP pur... Si quelqu'un a une astuce ou une remarque, elle sera la bienvenue... Denis...
  14. Bonjour à tous, Merci lovecraft, mais je ne me suis pas encore familiarisé avec les blocs dynamiques... J'ai amélioré ma routine pour la rendre plus "paramétrable"... Longueur de la flèche, largeur, épaisseur de sa queue et hauteur du texte... Voici le nouveau code : ;;;Trace une flèche puis écrit les X, Y et Z (s'il y en a un) (defun c:DHXY (/) (princ "\nDéveloppé par Denis H.") (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") old_aunits (getvar "aunits") VarSnapAng (getvar "snapang") ) ;_ Fin de setq (setvar "osmode" 1) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) (setvar "aunits" 0) (setq Long (vlax-ldata-get "DenisH" "FlXYLong" 0.75)) (setq Larg (vlax-ldata-get "DenisH" "FlXYLarg" 0.4)) (setq Epais (vlax-ldata-get "DenisH" "FlXYEpais" 0.01)) (setq Haut (vlax-ldata-get "DenisH" "FlXYHaut" 0.5)) (prompt (strcat "\tLongueur : " (rtos Long 2 3) ", lArgeur : " (rtos Larg 2 3) ", Epaisseur : " (rtos Epais 2 3) ", Hauteur : " (rtos Haut 2 3) ) ;_ Fin de strcat ) ;_ Fin de prompt (while (/= (type pt_ins) 'LIST) (initget 1 "Longueur lArgeur Epaisseur Hauteur") (setq pt_ins (getpoint "\nPointe de la petite flèche ou [Longueur/lArgeur/Epaisseur/Hauteur] <Longueur> : " ) ;_ Fin de getpoint ) ;_ Fin de setq (cond ((= pt_ins "Longueur") (initget 7) (setq Long (getdist "\nLongueur de la flèche : ")) ) ((= pt_ins "lArgeur") (initget 7) (setq Larg (getdist "\nlArgeur de la flèche : ")) ) ((= pt_ins "Epaisseur") (initget 7) (setq Epais (getdist "\nEpaisseur de la queue de la flèche : ")) ) ((= pt_ins "Hauteur") (initget 7) (setq Haut (getdist "\nHauteur du texte : ")) ) ) ;_ Fin de cond ) ;_ Fin de while (initget 1) (vlax-ldata-put "DenisH" "FlXYLong" Long) (vlax-ldata-put "DenisH" "FlXYLarg" Larg) (vlax-ldata-put "DenisH" "FlXYEpais" Epais) (vlax-ldata-put "DenisH" "FlXYHaut" Haut) (setq pt_ins (getpoint "\nPointe de la flèche : ")) (setq X (rtos (car pt_ins) 2 2)) (setq Y (rtos (cadr pt_ins) 2 2)) (setq Z (rtos (caddr pt_ins) 2 2)) (initget 1) (setq pt_ins_Txt (getpoint pt_ins "\nPied de la flèche : ")) (setq p3 (polar pt_ins (angle pt_ins pt_ins_Txt) Long)) (command "_.pline" "_non" pt_ins "_w" 0 Larg "_non" p3 "_w" 0 0 "_non" pt_ins_Txt "" ) ;_ Fin de command ;_ Fin de command (setq angl_Txt (/ (* VarSnapAng 180) pi)) (setq angl_Txt (- angl_Txt 90)) (if (= Z "0.00") (setq Text (strcat "X=" X "\\PY=" Y)) (setq Text (strcat "X=" X "\\PY=" Y "\\PZ=" Z)) ) ;_ Fin de if (initget 1 "BG HG BD HD") ;_ Fin de initget (setq OptionIns (getkword "Entrez le point d'insertion du texte multiligne [bG/HG/BD/HD] :" ) ;_ Fin de getkword ) ;_ Fin de setq ;;InsTxt (cond ((= OptionIns "BG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BG" "H" Haut pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HG" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ((= OptionIns "BD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ) ) ;_ Fin de cond (setq Text (strcat "X=" X "\\PY=" Y)) ;_ Fin de setq (princ "\nEtiquette Ok") ;Réaffectation des variables AutoCAD (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) (setvar "aunits" old_aunits) (princ) ) ;_ Fin de defun
  15. Bonsoir à tous, pierrevigneux : Et si ton style de texte comporte déja, dans ses paramètres, une hauteur ? lovecraft : ton lien est périmé... Et j'aimerais bien l'avoir... La Lozère : j'ai déjà eu ce problère... Il faut un accrochage 3D et ne plus rien bouger... Faut être précis dès le début... C'est vrai, c'est super chi*nt... Mais je vais bosser dans les jours prochains sur une version plus "paramétrable", taille du texte, de la flèche... Denis...
  16. GRRRR ! ! ! Je viens d'utiliser ma routine sur deux plans, tout deux avec une rotation de la vue mais toujours en SCU général. Et bien si mon SNAPANG=46.6294, ça ne fonctionne pas, il faut que sa valeur soit 346.6294... Par contre, avec ça, je ne sais pas trop quoi faire... Denis...
  17. Bonjour à tous, Voilà, pour une fois que je peux partager une routine de ma création... Voici un petit LiSP qui dessine une flèche avec les coordonnées XY du point. Tout se fait dans le calque courant et dans le style de texte courant et l'oriantation du texte multiligne se fait parallèle à la direction du réticule... Voici mon code, toutes remarques seront les bienvenues : (defun c:DHXY (/) (princ "\nDéveloppé par Denis H.") (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") old_aunits (getvar "aunits") VarSnapAng (getvar "snapang") ) ;_ Fin de setq (setvar "osmode" 1) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) (setvar "aunits" 0) (initget 1) (setq pt_ins (getpoint "\nPointe de la flèche : ")) (setq X (rtos (car pt_ins) 2 2)) (setq Y (rtos (cadr pt_ins) 2 2)) (initget 1) (setq pt_ins_Txt (getpoint pt_ins "\nPied de la flèche : ")) (setq p3 (polar pt_ins (angle pt_ins pt_ins_Txt) 1)) (command "_.pline" "_non" pt_ins "_w" 0 0.5 "_non" p3 "_w" 0 0 "_non" pt_ins_Txt "") ;_ Fin de command (setq angl_Txt (/ (* VarSnapAng 180) pi)) (setq angl_Txt (- angl_Txt 90)) (setq Text (strcat "X=" X "\\PY=" Y)) (initget 1 "BG HG BD HD") ;_ Fin de initget (setq OptionIns (getkword "Entrez le point d'insertion du texte multiligne [bG/HG/BD/HD] :" ) ;_ Fin de getkword ) ;_ Fin de setq ;;InsTxt (cond ((= OptionIns "BG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BG" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HG") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HG" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ((= OptionIns "BD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "BD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ((= OptionIns "HD") (command "_.-MTEXT" pt_ins_Txt "R" angl_Txt "J" "HD" pt_ins_Txt Text "" ) ;_ Fin de command ;_ Fin de command ;_ Fin de command ) ) ;_ Fin de cond (setq Text (strcat "X=" X "\\PY=" Y)) ;_ Fin de setq (princ "\nEtiquette Ok") ;Réaffectation des variables AutoCAD (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) (setvar "aunits" old_aunits) (princ) ) ;_ Fin de defun
  18. Mille mercis lovecraft... C'est exactement ça... J'oublie souvent le menu Express... Denis...
  19. Merci de ta réponse. J'ai un fichier, pas de problème... En gros, si je décompose le Mtext, le résultat "visuel" est bon, mais si je change la hauteur ou le contenu du Texte ainsi "créé" (par décomposition du Mtext), plus rien n'est "au milieu" des cases... Denis...
  20. Bonjour à tous, Voilà, j'ai récupéré des tonnes de tableaux de mon client, le problème est que les données de ces tableaux sont des MText d'une seule ligne. Je les décompose donc tous, mais problème... Le point d'insertion des MText ne sont pas conservés dans le Texte... Donc, plus aucune donnée n'est au centre de sa case... Il me semble avoir croisé un jour une méthode qui garde ce point d'insertion... Mais je ne le trouve plus. Si quelqu'un l'avait dans ses grimoires, je suis preneur... Denis...
  21. Bonjous à tous, Voilà, j'ai un petit souci avec les lignes de repères, j'ai une macro (je ne sais plus qui en est l'auteur) qui créé une ligne de repère et qui place, dans le texte multiligne, l'X et l'Y du point... Mon problème est que ma vue est "orientée" pour être parallèle au carroyage afin d'orienté les textes selon l'"orientation papier". C'est donc orientés que j'aimerais mes multi-textes selon l'"orientation" de ma vue, sachant que l'angle d'orientation est le même que la variable SNAPANG. Je pense avoir été clair... Si non, je suis à l'écoute... Denis...
  22. Salut, Mille mercis La Lozère, c'est exactement ce dont j'avais besoin... Mais je pensais pourvoir m'en sortir avec un bout de LiSP ou un ensemble de macros... En tous cas, merci encore... Denis...
  23. Bonjour à tous, Voilà, j'ai plein de petits fichiers avec une multitude de calques. J'ai, dans mon premier fichier, créé plusieurs filtres (pas un état) de calques... Et voilà la question : comment peut-on sauvegarder ou "transporter" facillement ces filtres d'un fichier à l'autre...? Ou s'il y a une astuce, même en LiSP, quelle est-elle ? Merci d'avance... Denis...
  24. Bonsoir à tous... Petite demande au Décapode... Quels sont tes fameux sites préférés ? Qu'on en profite un peu... Denis...
  25. Bonjour, Voici un petit LiSP (je ne sais plus de qui il est) qui aligne un Texte ou un MTexte selon une ligne ou le segment d'une polyligne et qui fonctionne dans n'importe quel SCU... C'est tout ce que j'ai... Denis...
×
×
  • 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é