-
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
-
Pour trouver le fichier des surfaces, il est au même endroit que le Dwg. Pour l'option par défaut, je regarde ça...
-
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
-
Content que ça fonctionne. Oui, on peut écrire les textes incrémentés et leur surface dans un fichier texte. Je regarde ça...
-
Ca fonctionne chez moi, retélécharge le code...
-
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...
-
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...
-
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
-
[Résolu] Problème de majuscule dans un ssget
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Vincent... Et que dire... Mille mercis pour cet astuce que je n'aurais JAMAIS trouvé seul... Trop pointu pour moi... ;) Encore merci... -
[Résolu] Problème de majuscule dans un ssget
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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. -
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...
-
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" ???
-
Restauration système, quid des licences ?
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2018
Bonjour à tous... Restauration terminée, tout fonctionne correctement... :D Encore merci à tous... ;) -
Restauration système, quid des licences ?
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2018
Salut à tous. Merci pour vos réponses, je vais transférer ma licence, c'est plus "sûr"... Encore merci à vous... -
Restauration système, quid des licences ?
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2018
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 ?" -
Restauration système, quid des licences ?
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2018
Merci pour cette réponse. Mais je ne fais la manip que demain, j'ai encore un peu de temps devant moi... -
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" ?
-
[Résolu] Sélectionner uniquement un bloc
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut VDH-Bruno, et merci pour ton aide. Je n'aurais jamais pensé à ça... -
[Résolu] Sélectionner uniquement un bloc
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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 -
[Résolu] Sélectionner uniquement un bloc
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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 -
[Résolu] Sélectionner uniquement un bloc
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
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... -
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...
-
AutoCAD ce qui reste à faire, à inventer, les BUGS à corriger
DenisHen a répondu à un(e) sujet de rebcao dans AutoCAD 2018
Curiaux cette "erreur" de la part d'AutoDask... -
Bonjour à tous, et merci pour vos réponses. C'était bien la variable LAYERDLGMODE qui étai à 0... Bravo Steven... ;) Encore merci à vous...
-
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...
-
Salut et bienvenu... Ce qui serait bête serait de ne pas poser de question... ;)
