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. Pour trouver le fichier des surfaces, il est au même endroit que le Dwg. Pour l'option par défaut, je regarde ça...
  2. Voici le code qui écrit, dans un fichier du même nom que le DWG avec l’extension ".surf" Tu peux l'ouvrir avec le blocnote. Voici le code : ;;; *********************************************************** ;;; Dessine un contour, puis place un texte incrémenté et la ;;; surface dans un multitexte Pour Hydro8 de CadXP.com ;;; *********************************************************** (defun c:Hydro8 (/ old_osmd PrefixIncrement ValIncrement Option1 Option2 Surf Pt_Ins MText) (princ "\nDéveloppé par Denis H.") ;;; Active le début de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) ;;; (setq NbDec (getvar "luprec")) (setq PrefixIncrement (vlax-ldata-get "DenisH" "PrefixIncrement" "13B")) (if (= PrefixIncrement nil) (vlax-ldata-put "DenisH" "PrefixIncrement" "13B") ) ;_ Fin de if (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1)) (if (= ValIncrement nil) (vlax-ldata-put "DenisH" "ValIncrement" 1) ) ;_ Fin de if (initget "Préfix Nombre") (setq Option1 (getkword (strcat "\nOptions des textes [Préfix/Nombre] <" PrefixIncrement (itoa ValIncrement) "> : ") ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option1 "Préfix") (setq PrefixIncrement (getstring (strcat "\nSaisir le préfix de l'incrémentation <" PrefixIncrement "> : ")) ;_ Fin de getstring ) ;_ Fin de setq (vlax-ldata-put "DenisH" "PrefixIncrement" PrefixIncrement) ) ((= Option1 "Nombre") (setq ValIncrement (getint (strcat "\nSaisir le prochain numéro de l'incrémentation " (itoa ValIncrement) " : "))) ;_ Fin de getstring (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement) ) ) ;_ Fin de cond (setq old_osmd (getvar "osmode")) (command "calque" "E" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "") (initget 1 "Contour Polyligne") (setq Option2 (getkword "\nOptions des textes [Contour/Polyligne] : ") ;_ Fin de strcat ) ;_ Fin de getkword (cond ((= Option2 "Contour") ;_ Fin de setq (princ "\nChoisir le contour :") (command "-contour" "O" "O" "P" "" pause "") ) ((= Option2 "Polyligne") (princ "\nSaisisser le contour :") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause)) ;_ Fin de while ) ;_ Fin de command ) ) ;_ Fin de command (setq Surf (getpropertyvalue (entlast) "Area")) (setq Pt_Ins (getpoint "Cliquer l'emplacement du texte :")) (setq MText (strcat PrefixIncrement (itoa ValIncrement) "\\P" (rtos Surf 2 2))) (vlax-ldata-put "DenisH" "ValIncrement" (+ 1 ValIncrement)) (command "_.-MTEXT" Pt_Ins "R" 0 "J" "MC" "H" 1.75 Pt_Ins MText "") (setq Fichier (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))) (setq Fichier (strcat (getvar "dwgprefix") Fichier ".Surf")) (setq FichierEcrit (open Fichier "a")) (write-line (strcat PrefixIncrement (itoa ValIncrement) " = " (rtos Surf 2 2)) FichierEcrit) (close FichierEcrit) (getvar "osmode" old_osmd) (setvar "plinewid" 0) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun
  3. Content que ça fonctionne. Oui, on peut écrire les textes incrémentés et leur surface dans un fichier texte. Je regarde ça...
  4. Ca fonctionne chez moi, retélécharge le code...
  5. J'ai modifier la routine, elle demande maintenant si tu veux créer un contour ou si tu veux créer une polyligne... ;;; *********************************************************** ;;; Dessine un contour, puis place un texte incrémenté et la ;;; surface dans un multitexte Pour Hydro8 de CadXP.com ;;; *********************************************************** (defun c:Hydro8 (/ old_osmd PrefixIncrement ValIncrement Option1 Option2 Surf Pt_Ins MText) (princ "\nDéveloppé par Denis H.") ;;; Active le début de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) ;;; (setq NbDec (getvar "luprec")) (setq PrefixIncrement (vlax-ldata-get "DenisH" "PrefixIncrement" "13B")) (if (= PrefixIncrement nil) (vlax-ldata-put "DenisH" "PrefixIncrement" "13B") ) ;_ Fin de if (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1)) (if (= ValIncrement nil) (vlax-ldata-put "DenisH" "ValIncrement" 1) ) ;_ Fin de if (initget "Préfix Nombre") (setq Option1 (getkword (strcat "\nOptions des textes [Préfix/Nombre] <" PrefixIncrement (itoa ValIncrement) "> : ") ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option1 "Préfix") (setq PrefixIncrement (getstring (strcat "\nSaisir le préfix de l'incrémentation <" PrefixIncrement "> : ")) ;_ Fin de getstring ) ;_ Fin de setq (vlax-ldata-put "DenisH" "PrefixIncrement" PrefixIncrement) ) ((= Option1 "Nombre") (setq ValIncrement (getint (strcat "\nSaisir le prochain numéro de l'incrémentation " (itoa ValIncrement) " : "))) ;_ Fin de getstring (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement) ) ) ;_ Fin de cond (setq old_osmd (getvar "osmode")) (command "calque" "E" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "") (initget 1 "Contour Polyligne") (setq Option2 (getkword "\nOptions des textes [Contour/Polyligne] : ") ;_ Fin de strcat ) ;_ Fin de getkword (cond ((= Option2 "Contour") ;_ Fin de setq (princ "\nChoisir le contour :") (command "-contour" "O" "O" "P" "" pause "") ) ((= Option2 "Polyligne") (princ "\nSaisisser le contour :") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause)) ;_ Fin de while ) ;_ Fin de command ) ) ;_ Fin de command (setq Surf (getpropertyvalue (entlast) "Area")) (setq Pt_Ins (getpoint "Cliquer l'emplacement du texte :")) (setq MText (strcat PrefixIncrement (itoa ValIncrement) "\\P" (rtos Surf 2 2))) (vlax-ldata-put "DenisH" "ValIncrement" (+ 1 ValIncrement)) (command "_.-MTEXT" Pt_Ins "R" 0 "J" "MC" "H" 1.75 Pt_Ins MText "") (getvar "osmode" old_osmd) (setvar "plinewid" 0) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun Cette routine aurait besoin d'être "retouchée" pour être plus conviviale, mais elle fonctionne comme ça... PS 1 : j'ai un peu retouché le lisp pour qu'il pose deux questions, les texte/incrémentation puis, Contour/Polyligne. PS 2 : Correction d'une erreur de parenthèses...
  6. Pour changer le nombre de décimales, il suffit de remplacer NbDec dans cette ligne par 1 : (setq MText (strcat PrefixIncrement (itoa ValIncrement) "\\P" (rtos Surf 2 NbDec))) Donnera (setq MText (strcat PrefixIncrement (itoa ValIncrement) "\\P" (rtos Surf 2 1))) Pour le reste, faut-il créer une polyligne du contour ? Je regarde, mais ça ne devrait pas être trop compliqué... Je reviens...
  7. Salut Hydro8. Je viens de te faire un code qui devrait te convenir : ;;; *********************************************************** ;;; Dessine un contour, puis place un texte incrémenté et la ;;; surface dans un multitexte Pour Hydro8 de CadXP.com ;;; *********************************************************** (defun c:Hydro8 (/ old_osmd PrefixIncrement ValIncrement Option Surf Pt_Ins MText) (princ "\nDéveloppé par Denis H.") ;;; Active le début de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq NbDec (getvar "luprec")) (setq PrefixIncrement (vlax-ldata-get "DenisH" "PrefixIncrement" "13B")) (if (= PrefixIncrement nil) (vlax-ldata-put "DenisH" "PrefixIncrement" "13B") ) ;_ Fin de if (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1)) (if (= ValIncrement nil) (vlax-ldata-put "DenisH" "ValIncrement" 1) ) ;_ Fin de if (initget "Préfix Nombre") (setq Option (getkword (strcat "\nOptions des textes [Préfix/Nombre] <" PrefixIncrement (itoa ValIncrement) "> : ") ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option "Préfix") (setq PrefixIncrement (getstring (strcat "\nSaisir le préfix de l'incrémentation <" PrefixIncrement "> : ")) ;_ Fin de getstring ) ;_ Fin de setq (vlax-ldata-put "DenisH" "PrefixIncrement" PrefixIncrement) ) ((= Option "Nombre") (setq ValIncrement (getint (strcat "\nSaisir le prochain numéro de l'incrémentation " (itoa ValIncrement) " : "))) ;_ Fin de getstring (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement) ) ) ;_ Fin de cond (princ "\nSaisisser le contour :") (setq old_osmd (getvar "osmode")) (command "calque" "E" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause)) ;_ Fin de while ) ;_ Fin de command (setq Surf (getpropertyvalue (entlast) "Area")) (setq Pt_Ins (getpoint "Cliquer l'emplacement du texte :")) (setq MText (strcat PrefixIncrement (itoa ValIncrement) "\\P" (rtos Surf 2 NbDec))) (vlax-ldata-put "DenisH" "ValIncrement" (+ 1 ValIncrement)) (command "_.-MTEXT" Pt_Ins "R" 0 "J" "MC" "H" 1.75 Pt_Ins MText "") (getvar "osmode" old_osmd) (setvar "plinewid" 0) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun
  8. Salut Vincent... Et que dire... Mille mercis pour cet astuce que je n'aurais JAMAIS trouvé seul... Trop pointu pour moi... ;) Encore merci...
  9. Salut didier, et merci pour cette réponse. Je ne veux pas donner "d'ordre"... ;) J'ai couru sur ton site, mais je n'ai pas trouvé Tcase, donc, l'aide AutoCAD m'a donné un lien vers un ExpressTools, mais cette commande changera mon texte, d'après ce que j'ai compris, et je n'y tiens pas.
  10. Bonjour à tous. Voilà, j'avais une routine qui fonctionnait super bien avec les levés d'un collègue topo. Toutes les voies étaient nommées en majuscule (RUE PATATI, AVENUE PATATA...). Mon problème est que maintenant, j'ai plusieurs collègues qui me font des levés et ils ont tous leur méthode, donc, je me retrouve avec des textes soit tout en majuscule, soit tout en minuscule, soit les deux (Rue PATATI...). J'avais écris ça qui fonctionnait très bien : (setq Select (ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 1 "RUE*,PLACE*,ALLEE*,BVD*,BOULEVARD*,IMP*,IMPASSE*,QUAI*,RUELLE*,AVENUE*,ROUTE*,CARREFOUR*,ROND*") ) ;_ Fin de list ) ;_ Fin de ssget ) ;_ Fin de setq Comment faire pour tout passer en majuscule (ou en minuscule) juste pour le ssget, j'aimerais ne pas toucher au texte ? Si quelqu'un a une astuce, un conseil... Je suis preneur...
  11. DenisHen

    liaison de données

    Salut. As-tu fais ce qu'il est décrit dans ce message sur Excel (Fichier\Options\...] ? Ton fichier Excel, c'est un XLS, XLSX, XLSM,... ? Et tu es sur quel AutoCAD ? Pas contre, je ne saisi pas ce qu'ils veulent dire par "paramètre de stratégie du registre" ???
  12. Bonjour à tous... Restauration terminée, tout fonctionne correctement... :D Encore merci à tous... ;)
  13. Salut à tous. Merci pour vos réponses, je vais transférer ma licence, c'est plus "sûr"... Encore merci à vous...
  14. Salut (gile), et merci de me répondre... Dans mon "point de restauration", j'ai déjà AutoCAD d'installé. Ma question aurait pu être : "Dois-je exporter ma licence AutoCAD avec le logiciel idoine et l'importer après l'opération ?"
  15. Merci pour cette réponse. Mais je ne fais la manip que demain, j'ai encore un peu de temps devant moi...
  16. Bonjour à tous. J'ai quelques petits soucis avec mon Windows 10, je dois faire une restauration du système. Mais qu'en est-il de ma licence AutoCAD ? Comment la "sauvegarder" ?
  17. Salut VDH-Bruno, et merci pour ton aide. Je n'aurais jamais pensé à ça...
  18. Ok, j'ai trouvé, il fallait placer un (or : ;;; Sélectionner uniquement le bloc "PTTOPO" (defun c:testSelectText () (while (not (and (setq Txt_Prof (car (entsel "\nSélectionnez le texte ou la profondeur :"))) (or (= (cdr (assoc 0 (entget Txt_Prof))) "MTEXT") (= (cdr (assoc 0 (entget Txt_Prof))) "TEXT")) ) ;_ Fin de and ) ;_ Fin de not ) ;_ Fin de while ;(setq Txt_Alti (car Txt_Alti)) (setq Prof (cdr (assoc 1 (entget Txt_Prof)))) (princ "\nProf : ") (princ Prof) (setq Coord (cdr (assoc 10 (entget Txt_Prof)))) (princ "\nCoord : ") (princ Coord) (princ) ) ;_ Fin de defun
  19. Encore une petite question, si je mets dans la condition "TEXT,MTEXT", celà fonctionnerait-il ? Car je boucle avec ça : ;;; Sélectionner uniquement le bloc "PTTOPO" (defun c:testSelectText () (while (not (and (setq Txt_Prof (car (entsel "\nSélectionnez le texte ou la profondeur :"))) (= (cdr (assoc 0 (entget Txt_Prof))) "MTEXT") ) ;_ Fin de and ) ;_ Fin de not ) ;_ Fin de while ;(setq Txt_Alti (car Txt_Alti)) (setq Prof (cdr (assoc 1 (entget Txt_Prof)))) (princ "\nProf : ") (princ Prof) (setq Coord (cdr (assoc 10 (entget Txt_Prof)))) (princ "\nCoord : ") (princ Coord) (princ) ) ;_ Fin de defun
  20. Salut (gile) et merci pour cette réponse. C'est exactement ça. C'est vrai que, vu comme ça, c'est bien plus clair et efficace... Merci encore...
  21. Bonjour à tous, et excellente année à vous. Voilà, je cherche à faire une petite routine qui a besoin que l'utilisateur sélectionne un bloc nommé "PTTOPO". J'aimerais faire une boucle qui attend la bonne sélection de ce bloc. J'ai déjà écris ça mais je tourne en rond... ;;; Sélectionner uniquement le bloc "PTTOPO" (defun c:testSelectPTTOPO () (while ((/= (cdr (assoc 2 (entget (car (setq Txt_Alti (entsel "\nSélectionnez le bloc contenant l'altitude :"))))) ) ;_ Fin de cdr "PTTOPO" ) ;_ Fin de /= ) ) ;_ Fin de while (setq Txt_Alti (car Txt_Alti)) (setq Alti (getpropertyvalue Txt_Alti "ALT")) (princ "\nAlti : ") (princ Alti) (setq Coord (cdr (assoc 10 (entget Txt_Alti)))) (princ "\nCoord : ") (princ Coord) (princ) ) ;_ Fin de defun AutoCAD me répond toujours la même chose, que je sélectionne le bon bloc ou une autre entité : Si quelqu'un a une astuce, un conseil... je suis preneur...
  22. Curiaux cette "erreur" de la part d'AutoDask...
  23. Bonjour à tous, et merci pour vos réponses. C'était bien la variable LAYERDLGMODE qui étai à 0... Bravo Steven... ;) Encore merci à vous...
  24. Bonjour à tous. Voilà, pendant mes vacances, un petit malin (mon chef) s'est installé sur mon poste. Depuis, j'ai un gestionnaire de calques disons... Classique. Comment faire, ou plutôt quelle variable, me permettrais de revenir à mon gestionnaire de calques qui "s'accroche" au bord de l'écran comme la fenêtre des propriétés ou autre ? J'espère avoir été clair, car je ne suis pas sûr du nom "classique". Je n'ai rien trouvé dans l'aide ni sur CadXP... J'ai cherché avec "Calque classique" mais n'ai rien trouvé... Si quelqu'un a une astuce, un conseil... Je suis preneur...
  25. Salut et bienvenu... Ce qui serait bête serait de ne pas poser de question... ;)
×
×
  • 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é