Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Ca fonctionne bien pour selectionner le texte mais du coup je reviens à l'erreur clayer de tout à l'heure :unsure:
DenisHen Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Je n'arrive pas à expliquer cette erreur qui se pose toujours là où on ne l'attend pas... Comprend pô... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 ALors si je test : (defun c:EncadreMText () ;;;D?fini les quatre coins du MText de (gile) (princ "\nDéfini les quatre coins du MText de (gile2)") (setq elst (car (entsel "\nSelectionner le texte :"))) (if (= "MTEXT" (cdr (assoc 0 (entget (entlast))))) (setq nor "1") ) ) (princ "...Fin") Cela fonctionne, du coup j'ai une première erreur sur (cdr (assoc 210 elst) on dirait.
DenisHen Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Ou alors, peut-être juste ça :(setq elst (entget (car (entsel "\nChoisis le texte :")))) Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Non plus, dès que j'ajoutes une nouvelle ligne je retrouve cette erreur :(
DenisHen Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 D'après-moi, c'est bien cette ligne qui devrait fonctionner : (setq elst (car (entsel "\nSelectionner le texte :"))) Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Voici le lisp complet de (gile) adapté à tes besoins :;;; ************************************ ;;; Encadrement d'un texte ou Mtexte ;;; ************************************ (defun c:GC_EncadreMText () ;;;Défini les quatre coins du MText de (gile) (princ "\nDéfini les quatre coins du MText de (gile)") (defun mxv (m v) (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m)) (setq elst (entget (car (entsel "\nChoisir le texte :")))) (if (= "MTEXT" (cdr (assoc 0 elst))) (setq nor (cdr (assoc 210 elst)) ref (trans (cdr (assoc 10 elst)) 0 nor) rot (angle '(0 0 0) (trans (cdr (assoc 11 elst)) 0 nor)) wid (cdr (assoc 42 elst)) hgt (cdr (assoc 43 elst)) jus (cdr (assoc 71 elst)) org (list (cond ((member jus '(2 5 8)) (/ wid -2)) ((member jus '(3 6 9)) (- wid)) (T 0.0) ) ;_ Fin de cond (cond ((member jus '(1 2 3)) (- hgt)) ((member jus '(4 5 6)) (/ hgt -2)) (T 0.0) ) ;_ Fin de cond ) ;_ Fin de list plst (mapcar (function (lambda (p) (mapcar '+ org p))) (list (list (- 0.1) (- 0.1)) (list (+ wid 0.1) (- 0.1)) (list (+ wid 0.1) (+ hgt 0.1)) (list (- 0.1) (+ hgt 0.1)) ) ;_ Fin de list ) ;_ Fin de mapcar ) ;_ Fin de setq (setq box (textbox elst) ref (cdr (assoc 10 elst)) rot (cdr (assoc 50 elst)) plst (list (list (- (caar box) 0.1) (- (cadar box) 0.1)) (list (+ (caadr box) 0.1) (- (cadar box) 0.1)) (list (+ (caadr box) 0.1) (+ (cadadr box) 0.1)) (list (- (caar box) 0.1) (+ (cadadr box) 0.1)) ) ;_ Fin de list ) ;_ Fin de setq ) ;_ Fin de if (setq mat (list (list (cos rot) (- (sin rot)) 0) (list (sin rot) (cos rot) 0) '(0 0 1)) ;_ Fin de list plst (mapcar (function (lambda (p) (mapcar '+ (mxv mat p) (list (car ref) (cadr ref)))) ;_ Fin de lambda ) ;_ Fin de function plst ) ;_ Fin de mapcar ) ;_ Fin de setq (setq Pt1 (list (car (nth 0 plst)) (cadr (nth 0 plst)))) (setq Pt2 (list (car (nth 1 plst)) (cadr (nth 1 plst)))) (setq Pt3 (list (car (nth 2 plst)) (cadr (nth 2 plst)))) (setq Pt4 (list (car (nth 3 plst)) (cadr (nth 3 plst)))) (command "_.pline" Pt1 Pt2 Pt3 Pt4 Pt1 "") ;; (princ "...Fin") (princ) ) ;_ Fin de defun Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Alors alors... J'ai réinitialiser autocad, du coup je n'ai plus les vieux lisp. Maintenant cela fonctionne bien. Du coup je dois charger les anciens lisp un par un avec appload pour voir lequel fait bug le tout ?
DenisHen Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Exactement... Regarder aussi ceux qui se chargent avec le lancement d'AutoCAD : "_appload" puis, le bouton "Contenu..." Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Est-il possible d'inverser le sens de saisie de la flèche ? Commencer par le point prêt du texte et finir par la pointe de la flèche ? J'ai essayé d'inverser la commande ou les variables sans succès.
DenisHen Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Pas de problème : ;;; ******************** ;;; Dessine une flèche ;;; ******************** (defun c:DH_Fleche () (princ "\nDébut calcul flèche") (setq Long 2 ;; Longueur de la tête de la flèche Larg 1 ;; Largeur de du pied de la flèche Pt_Fin_Fle (getpoint "\nPied de la flèche : ") Pt_Deb_Fle (getpoint Pt_Fin_Fle "\nPointe de la flèche : ") Pt_Pied_Fle (polar Pt_Deb_Fle (angle Pt_Deb_Fle Pt_Fin_Fle) Long) ) ;_ Fin de setq (command "_.pline" Pt_Deb_Fle "_w" 0 Larg Pt_Pied_Fle "_w" 0 0 Pt_Fin_Fle "") ) ;_ Fin de defun Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Au top, du coup j'ai un bouton pour les contours + textes et un bouton pour souligné + flèche que je peux utiliser sur n'importe quel mtext. Alors j'ai essayé de modifier la création du texte sans succès : - est-il possible d'ajouter une altitude haute et une altitude basse pour le choix altitude ? (avec toujours la même contrainte : XXX.XX au début puis la dernière valeur) - est-il possible d'ajouter une altitude pour sans profondeur et sans hauteur ? Bon après l'altitude basse de altitude correspond à l'altitude basse de sans profondeur et pareil pour altitude haute avec sans hauteur.
(gile) Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Salut, Je n'ai suivi de près cette conversation mais 188 réponses, je suis impressionné. D'après-moi, c'est bien cette ligne qui devrait fonctionner : (setq elst (car (entsel "\nSelectionner le texte :"))) Chacun a ses habitudes de nommage des variables, mais en général elst c'est une liste DXF telle que retournée par (entget ...), pour (car (entsel ...) on utilise plutôt ent.En tout cas, c'est ce que je fais. Quoi qu'il en soit, pour trouver ce qui provoque une erreur, je rappelle la procédure : ouvrir la routine dans l'éditeur Visual LISP (VLIDE)cocher "Arrêt sur erreur" dans le menu Déboguer de l'éditeurcharger la routine menu Outils > "Charger le texte dans l'éditeur" (Ctrl+Alt+E)dans AutoCAD lancer la routine pour provoquer l'erreur, et basculer automatiquement dans l'éditeur Visual LISPdans le menu Déboguer cliquer sur "Source de la dernière interruption" (Ctrl+F9)L'exécution est interrompue et la source de l'erreur devrait être sélectionnée (surbrillance dans le fenêtre du code).On peut interroger les valeurs de variables dans la console. Ne pas oublier de réinitialiser (Ctrl+Q) pour sortir de l'interruption. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Merci ça va être utile pour trouver l'erreur ! J'ai remis mon profil et mes anciens lisp, je n'ai pas l'erreur pour le moment du coup je ne sais pas de quoi ça venait :o
didier Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Coucou Je me demandais quand allait intervenir l'ami (gile), j'ai la réponseMoi aussi je suis impressionné par le nombre de messagesÇa doit être la génération TEXTO qui fait ça, on "pense" quelque chose paf on appuie sur un bouton...En même temps, le nombre de ligne du "programme" est proportionnel au nombre de messagesJe ne sais plus exactement ce qu'il faut faire et j'ai pas envie de TOUT relireN'empêche que j'aimerais m'y coller, ça doit pas être sorcier, si ?Un petit rappel Hydro8, s'il te plaît (avec un joli dwg qui explique l'attente) Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Souvent, ce genre d'erreur est dû à une variable pas déclarée (globale) qui est ou n'est pas initialisée ailleurs que dans le code ce qui fait que le code marche ou ne marche pas. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Coucou Oui, je suis bien d'accord avec toi, Une BONNE vérification et tout rentrera dans l'ordre. Il y a plein de trucs que je ne comprends pas et du coup je ne sais pas trop ce qui est fait et encore moins pour quoi faire, du coup comment aider ? C'est pour ça que je me suis permis de redemander une clarification à Hydro8 des fois que je trouve une heure ou deux pour m'y coller Sachant que je ne détiens pas LA vérité mais je pourrais proposer quelque chose, ce qui n'est pas possible dans l'état actuel. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 12 février 2018 Posté(e) le 12 février 2018 Coucou DenisHEN :Je remarque qu'il est fait appel à une des mes vieilles anciennes routines "gisement"(on balbutiait tous en AutoLISP à cette époque, il faut assumer car elle est pas terrible)Mais il y a une faute de frappe dans le nom de la commande, ça marche quand même ? Éternel débutant… Mon site perso : Programmer dans AutoCAD
Hydro8 Posté(e) le 12 février 2018 Auteur Posté(e) le 12 février 2018 Personnellement j'ai du modifier le nom appelé pour que ça fonctionne :) Alors le premier Lisp : - on indique le préfixe de l'incrementation. - on indique le numéro d'incrementation. - on choisit si on veut un contour par détection ou en le définissant point par point. - une fois le contour ok, on indique si c'est une polyligne sans altitude / avec altitudes. - on indique l'altitude si besoin. - on indique la place du texte. - cela insert un mtext avec le numéro indiqué au début, la surface et l'altitude (ou sans). Par exemple, au final j'ai un texte : 1a1 / S = 123.00m² / NGF : 102.23 - 104.56 Celui d'après ça sera automatiquement : 1a2 / S = 124.0/m² / NGF : sans limite La deuxième partie du Lisp permet un export automatique des textes créé au format csv avec la surface. Le deuxième lisp permet de sélectionner un mtext, cela va créé une polyligne entre les deux points du bas puis lancer la création d'une flèche. Voilà voilà, merci encore à Denis pour toute son aide ! C'est plus que les fignolage maintenant.
DenisHen Posté(e) le 13 février 2018 Posté(e) le 13 février 2018 En même temps, le nombre de ligne du "programme" est proportionnel au nombre de messagesExact... ;) La première routine faisait une vingtaine de ligne, on en est maintenant à plus de 300... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Hydro8 Posté(e) le 14 février 2018 Auteur Posté(e) le 14 février 2018 Tu sais comment faire pour avoir des options d'altitudes hautes et basses ? J'ai essayé déjà de rajouter l'option sur les autres choix mais sans succès : (cond ((= Opt3 "Altitude") (progn (setq NouvAlti (getstring (strcat "\nSpécifiez l'altitude basse <" Alti "> : "))) (if (or (= NouvAlti nil) (= NouvAlti "")) (progn (setq Opt3 (strcat Opt3 ":" Alti))) (progn (setq NouvAlti (rtos (atof NouvAlti) 2 2)) (vlax-ldata-put "DenisH" "Alti" NouvAlti) (setq Opt3 NouvAlti) ) ;_ Fin de progn ) ;_ Fin de if ));_ Fin de progn ((= Opt3 "sansProfondeur") (progn (setq NouvAlti (getstring (strcat "\nSpécifiez l'altitude haute <" Alti "> : "))) (if (or (= NouvAlti nil) (= NouvAlti "")) (progn (setq Opt3 (strcat Opt3 ":" Alti))) (progn (setq NouvAlti (rtos (atof NouvAlti) 2 2)) (vlax-ldata-put "DenisH" "Alti" NouvAlti) (setq Opt3 NouvAlti) ) ;_ Fin de progn ) ;_ Fin de if ));_ Fin de progn ) ;_ Fin de cond
Hydro8 Posté(e) le 14 février 2018 Auteur Posté(e) le 14 février 2018 Mince ma condition est pas bonne :( Je continue de tester :)
Hydro8 Posté(e) le 14 février 2018 Auteur Posté(e) le 14 février 2018 Du coup j'ai réussi à ajouter les altitudes hautes et basses pour chaque type d'altitude (si besoin). Cependant, j'ai le bon texte quand je laisse la valeur par défaut mais pas quand je note une nouvelle valeur. Je n'arrive pas à gérer les deux cas. Voici mon bout de code : ((= Opt3 "sans profondeur") (progn (setq NouvAltiH (getstring (strcat "\nSpécifiez l'altitude haute <" AltiH "> : " ) ) ) (if (or (= NouvAltiH nil) (= NouvAltiH "")) (progn (setq Opt3 (strcat "sans limitation\\Pen profondeur et " AltiH "m") ) ) (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2)) (vlax-ldata-put "DenisH" "AltiH" NouvAltiH) (setq Opt3 NouvAltiH) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse "----") (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute AltiH) (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn
Hydro8 Posté(e) le 14 février 2018 Auteur Posté(e) le 14 février 2018 Bon ba j'ai trouvé j'avais cas lire :D
Hydro8 Posté(e) le 16 février 2018 Auteur Posté(e) le 16 février 2018 Voilà mon lisp final avec la possibilité de mettre une altitude haute et basse : ;;; *********************************************************** ;;; Dessine un contour, puis place un texte incr?ment? et la ;;; surface dans un multitexte et dans des Xdata ;;; Pour Hydro8 de CadXP.com ;;; *********************************************************** (defun c:msurfacefraction (/ old_osmd PrefixIncrement ValIncrement Option1 Option2 MText EcritText) (princ "\nDéveloppé par Denis H. (v:3.0)") (defun mxv (m v) (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m ) ) ;_ Fin de defun (defun EcritText (/ xSurf xMatri xBasse xHaute Pt_Deb_Fle Pt_Fin_Fle Pt_Pied_Fle ) ;; (setq xMatri (strcat PrefixIncrement (itoa ValIncrement))) (SetXdataForApplication (entlast) "Matri" (list (cons 1000 xMatri)) ) (setq xSurf (rtos (getpropertyvalue (entlast) "Area") 2 1)) (SetXdataForApplication (entlast) "Surf" (list (cons 1000 xSurf)) ) (initget "Altitude sansProfondeur sansHauteur sansLimite") (setq Option3 (getkword (strcat "\nType de fraction [Altitude/sansProfondeur/sansHauteur/sansLimite] <Altitude> : " ) ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option3 "Altitude") (setq Opt3 "Altitude")) ((= Option3 "sansProfondeur") (setq Opt3 "sans profondeur") ) ((= Option3 "sansHauteur") (setq Opt3 "sans hauteur")) ((= Option3 "sansLimite") (setq xBasse "----") (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute "----") (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) (setq Opt3 "sans limitation en\\Pprofondeur et en hauteur") ) (T (setq Opt3 "Altitude")) ) ;_ Fin de cond (setq AltiB (vlax-ldata-get "DenisH" "AltiB" "XXXX.XX")) (if (or (= AltiB nil) (= AltiB "")) (setq AltiB "XXXX.XX") ) ;_ Fin de if (setq AltiH (vlax-ldata-get "DenisH" "AltiH" "XXXX.XX")) (if (or (= AltiH nil) (= AltiH "")) (setq AltiH "XXXX.XX") ) ;_ Fin de if (cond ((= Opt3 "Altitude") (progn (setq NouvAltiB (getstring (strcat "\nSpécifiez l'altitude basse <" AltiB "> : " ) ) ) (if (or (= NouvAltiB nil) (= NouvAltiB "")) (progn (setq Opt3 (strcat AltiB "m"))) (progn (setq NouvAltiB (rtos (atof NouvAltiB) 2 2)) (vlax-ldata-put "DenisH" "AltiB" NouvAltiB) (setq Opt3 (strcat NouvAltiB "m")) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse AltiB) (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) ) (progn (setq NouvAltiH (getstring (strcat "\nSpécifiez l'altitude haute <" AltiH "> : " ) ) ) (if (or (= NouvAltiH nil) (= NouvAltiH "")) (progn (setq Opt3 (strcat Opt3 " et " AltiH "m"))) (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2)) (vlax-ldata-put "DenisH" "AltiH" NouvAltiH) (setq Opt3 (strcat Opt3 " et " NouvAltiH "m")) ) ;_ Fin de progn ) ;_ Fin de if (setq xHaute AltiH) (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn ((= Opt3 "sans profondeur") (progn (setq NouvAltiH (getstring (strcat "\nSpécifiez l'altitude haute <" AltiH "> : ") ) ) (if (or (= NouvAltiH nil) (= NouvAltiH "")) (progn (setq Opt3 (strcat "sans limitation\\Pen profondeur et " AltiH "m" ) ) ) (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2)) (vlax-ldata-put "DenisH" "AltiH" NouvAltiH) (setq Opt3 (strcat "sans limitation\\Pen profondeur et " NouvAltiH "m" ) ) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse "----") (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute AltiH) (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn ((= Opt3 "sans hauteur") (progn (setq NouvAltiB (getstring (strcat "\nSpécifiez l'altitude basse <" AltiB "> : " ) ) ) (if (or (= NouvAltiB nil) (= NouvAltiB "")) (progn (setq Opt3 (strcat AltiB "m et sans\\Plimitation en hauteur") ) ) (progn (setq NouvAltiB (rtos (atof NouvAltiB) 2 2)) (vlax-ldata-put "DenisH" "AltiB" NouvAltiB) (setq Opt3 (strcat NouvAltiB "m et sans\\Plimitation en hauteur" ) ) ) ;_ Fin de progn ) ;_ Fin de if (setq xBasse AltiB) (SetXdataForApplication (entlast) "Basse" (list (cons 1000 xBasse)) ) (setq xHaute "----") (SetXdataForApplication (entlast) "Haute" (list (cons 1000 xHaute)) ) ) ) ;_ Fin de progn ) ;_ Fin de cond (setq MText (strcat "\\H0.75\\o" PrefixIncrement (itoa ValIncrement) "\\o\\P\\H0.35S = " xSurf "m²\\PNGF : " Opt3 ) ) (setq Pt_Deb_Fle (getpoint "\nSélectionnez le point d'insertion du texte :" ) ) ;_ Fin de setq (command "_.-MTEXT" Pt_Deb_Fle "J" "MC" "H" 1.0 Pt_Deb_Fle MText "") (vlax-ldata-put "DenisH" "ValIncrement" (+ ValIncrement 1)) (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement")) ) ;_ Fin de defun ;;; Active le d?but de l'undo (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq old_cmdecho (getvar "cmdecho") old_osmode (getvar "osmode") old_boundary (getvar "HPISLANDDETECTIONMODE") ) ;_ Fin de setq (setvar "cmdecho" 0) (setvar "HPISLANDDETECTIONMODE" 0) ;;; (if (not (tblsearch "layer" "MARTY-SURFACES_FRACTIONS")) (command "-calque" "e" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "" ) ;_ Fin de command ;;; (command "-calque" "ch" "MARTY-SURFACES_FRACTIONS" "") ;;; ) ;_ Fin de if (setq PrefixIncrement (vlax-ldata-get "DenisH" "PrefixIncrement" "1a") ) (if (= PrefixIncrement nil) (vlax-ldata-put "DenisH" "PrefixIncrement" "1a") ) ;_ Fin de if (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1)) (if (or (= ValIncrement "") (= ValIncrement nil)) (progn (vlax-ldata-put "DenisH" "ValIncrement" 1) (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement")) ) ;_ Fin de progn ) ;_ Fin de if ;;; (if (not (tblsearch "style" "Surface")) ;;; (command "-style" "Surface" "arial.ttf" "" "" "" "" "" "") ;;; ) ;_ Fin de if ;;; (command "textstyle" "Surface") (while (/= (type Option1) 'LIST) (initget "Texte Nombre Contour Polyligne") (setq Option1 (getkword (strcat "\nOptions [Texte/Nombre/Contour/Polyligne] <" PrefixIncrement (itoa ValIncrement) "> : " ) ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (cond ((= Option1 "Texte") (setq PrefixIncrement (getstring (strcat "\nSaisissez le numéro du volume et l'indice du plan <" PrefixIncrement "> : " ) ) ;_ Fin de getstring ) ;_ Fin de setq (vlax-ldata-put "DenisH" "PrefixIncrement" PrefixIncrement) ) ((= Option1 "Nombre") (setq ValIncrement (getint "\nSaisissez le numéro de la fraction : " ) ) ;_ Fin de getstring (if (or (= ValIncrement "") (= ValIncrement nil)) (vlax-ldata-put "DenisH" "ValIncrement" 1) (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement) ) ;_ Fin de if ) ((= Option1 "Contour") (while (princ "\nChoississez un point interne :") (command "-contour" "O" "O" "P" "" pause "") (EcritText) ) ) ((= Option1 "Polyligne") (while (princ "\nSaisissez les points du contour :") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause) ) ;_ Fin de while ) ;_ Fin de command (EcritText) ;_ Fin de command ) ;_ Fin de while ) (T (while (princ "\nChoississez un point interne :") (command "-contour" "O" "O" "P" "" pause "") (EcritText) ) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de while (setvar "osmode" old_osmode) (setvar "cmdecho" old_cmdecho) (setvar "HPISLANDDETECTIONMODE" old_boundary) (setvar "plinewid" 0) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun ) Merci à DenisHen encore une fois !
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant