DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 J'ai testé sur un nouveau dessin, la commande me créer le calque "MARTY-SURFACES_FRACTIONS" qui est pas défaut. Il est ni vérouillé, ni gelé.Pourtant, le "e" créé le calque s'il n'existe pas et le rend courant, qu'il existe ou pas... Essaye ça (avec le "-" devant calque") :(command "-calque" "e" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "")Pour le ², le symbole apparaît bien mais il y avait juste  devant alors que dans le code j'ai juste m².Je n'ai aucune idée sur ce problème... 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 5 février 2018 Auteur Posté(e) le 5 février 2018 Non même avec cette commande, même erreur. J'ai essayé dans un autre dessin ou carément enlever la ligne pour établir le calque mais toujours pareil :angry:
DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 GRRRR ! ! ! Je déteste quand ce que je fais ne fonctionne pas ! ! ! Supprime le 1 dans :(setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1)) On va bien voir, chez moi, ça fonctionne dans un nouveau dessin... 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 5 février 2018 Auteur Posté(e) le 5 février 2018 À priori ça fonctionne !! À quoi servait ce 1 ? Juste si quelqu'un passe par là et qu'il saurait pour le ², voici le résultat en arial chez moi : Je sais pas si c'est lié mais par exemple dans la commande, le é de Préfix ne s'affiche pas correctement.
DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 À priori ça fonctionne !!Cool, on y est arrivé... Ravi d'avoir aider... À quoi servait ce 1 ?Je pensais, apparemment à tord, que ça fixait cette valeur si (vlax-ldata-get "DenisH" "ValIncrement") était vide...Je sais pas si c'est lié mais par exemple dans la commande, le é de Préfix ne s'affiche pas correctement.Je n'ai aucun renseignement là-dessus. Peut-être que c'est la police d'affichage, chez moi, tout va bien... :huh: 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 5 février 2018 Posté(e) le 5 février 2018 Regarde dans Options\Affichage\Polices, il y a peut-être une "mauvaise" police...? 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 5 février 2018 Auteur Posté(e) le 5 février 2018 J'ai essayé \S2 ou \S^2 mais toujours sans succès, dommage :( Bon désolsé d'abuser et peut-être que cela demande trop de travail / est trop compliqué par rapport au fonctionnement actuelle : Est-il possible de réécrire le fichier de surface à chaque fois ? Le problème c'est que si on a des surfaces qu'on a ensuite supprimé ou autre, elles apparaissent quand même dans le fichier. Cela peut paraître bizarre mais je commence à connaître les personnes avec qui je travaille <_< J'ai peur que cela ne fonctionne pas car j'imagine que une fois insérer on ne peut pas retrouver la totalité des textes précédemment ajoutés. Edit : pour la police je suis en Consolas.
DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 Au sujet du Â, si tu édite le texte, tu peux l'effacer ? 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 5 février 2018 Auteur Posté(e) le 5 février 2018 Oui je peux effectivement le supprimer.
DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 C'est curieux comme comportement, peut-être qu'un autre membre de CadXP aura la solution... Peut-être en ouvrant un nouveau fil... 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 5 février 2018 Auteur Posté(e) le 5 février 2018 Du coup désolé d'être insistant, d'après toi est ce possible de réécrire le fichier avec toutes les surfaces existantes à la création d'une surface ?
DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 Oui, c'est possible avec les "xdata", mais il me faudra plusieurs jours pour me renseigner dessus, les assimilés et réécrire la totalité du lisp que je t'ai écris. Et je t'avoue que je n'aurais pas le temps nécessaire pour faire tous ça... Mais ça peut être très intéressant de le faire... Désolé... 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 5 février 2018 Auteur Posté(e) le 5 février 2018 Non t'inquiètes pas je comprends :) Merci pour ton temps et ton aide en tout cas !
DenisHen Posté(e) le 5 février 2018 Posté(e) le 5 février 2018 De rien... C'était avec plaisir... 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 5 février 2018 Auteur Posté(e) le 5 février 2018 Petite question qui me trôte dans la tête (même avec la commante contour classique), c'est possible de créer le contour automatiquement sans qu'il fasse un rectangle autour du texte ?
DenisHen Posté(e) le 6 février 2018 Posté(e) le 6 février 2018 Salut. Je ne comprend pas, une polyligne se créée autour d'un texte ? Et quel 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 6 février 2018 Auteur Posté(e) le 6 février 2018 Imaginons j'ai un rectangle avec un mtext dedans. Avec la fonction contour, je clique dans le rectangle (peu importe l'endroit) ça va me faire la polyligne du contour mais aussi un rectangle autour du mtext j'imagine pour le détourer. Est il possible de lui dire de ne pas prendre en compte le mtext à part le mettre dans un autre calque.
DenisHen Posté(e) le 6 février 2018 Posté(e) le 6 février 2018 Je ne comprend pas pourquoi, chez moi, il n'y a qu'une seule polyligne par contour. Si je place un texte à l'intérieur, ça fait la même chose, une seule polyligne... 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)
Olivier Eckmann Posté(e) le 6 février 2018 Posté(e) le 6 février 2018 Bonjour, mettre la variable HPISLANDDETECTIONMODE à 0 avant de lancer la commande contour, puis la remettre à son ancienne valeur ensuite. C'est la case à cocher "Détection d'ilot" qui détecte le contour des textes multilignes comme des ilots à détourer. Olivier
DenisHen Posté(e) le 6 février 2018 Posté(e) le 6 février 2018 Salut Hydro8.Est-il possible de réécrire le fichier de surface à chaque fois ? Le problème c'est que si on a des surfaces qu'on a ensuite supprimé ou autre, elles apparaissent quand même dans le fichier. Le fichier texte ne sera pas réécrit en totalité lors de l'ajout d'un contour. Mais j'ai une solution que je peux gérer. Je t'ai fais deux codes :Hydro8_Poly : pour créer les polylignes avec les textes multiligne tels que je t'avais écris au-dessus avec export dans un fichier texte .surf. Il créé des xdata liés aux polylignes (j'ai résolu un petit problème d'incrémentation).Hydro8_List : l'exportation des données faite par le nouveau code suivant dans un fichier texte .surf. Cet export se fait sur toutes les polylignes contenant des xdata, donc, il ne tiendra pas compte des contour supprimés. Mais attention, les contours ne doivent pas être modifiés, ils doivent impérativement être recréés par la première commande. Voici le code :;;; *********************************************************** ;;; 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:Hydro8_Poly (/ old_osmd PrefixIncrement ValIncrement Option1 Option2 MText EcritText) (princ "\nDéveloppé par Denis H. (v:1.7)") (defun EcritText (/ xSurf xMatri Pt_Ins) ;; (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))) ;; (setq Pt_Ins (getpoint "\nCliquer l'emplacement du texte :")) ;_ Fin de setq (setq MText (strcat "\\H1.2" PrefixIncrement (itoa ValIncrement) "\\P\\H1S=" xSurf "m²\\PING")) (command "_.-MTEXT" Pt_Ins "J" "MC" "H" 1.0 Pt_Ins MText "") ;;Écriture dans un fichier. (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) " = " xSurf) FichierEcrit) (close FichierEcrit) (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") ) ;_ Fin de setq (command "-calque" "e" "MARTY-SURFACES_FRACTIONS" "co" "u" "255,0,255" "MARTY-SURFACES_FRACTIONS" "") (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" 0)) (if (or (= ValIncrement "") (= ValIncrement nil)) (progn (vlax-ldata-put "DenisH" "ValIncrement" 0) (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 "Préfix Nombre Suivant") (setq Option1 (getkword (strcat "\nOptions des textes [Préfix/Nombre/Suivant] <" 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 "\nSaisir le prochain numéro de l'incrémentation : ")) ;_ Fin de getstring (if (or (= ValIncrement "") (= ValIncrement nil)) (vlax-ldata-put "DenisH" "ValIncrement" 0) (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement) ) ;_ Fin de if ) ((= Option1 "Suivant") (initget "Contour Polyligne") (setq Option2 (getkword "\nOptions des textes [Contour/Polyligne] <Contour> : ") ;_ Fin de strcat ) ;_ Fin de getkword (cond ((or (= Option2 "Contour") (= Option2 nil)) ;_ Fin de or (while (princ "\nChoisir le contour :") (command "-contour" "O" "O" "P" "" pause "") (EcritText)) ) ((= Option2 "Polyligne") (while (princ "\nSaisisser le contour :") (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause)) ;_ Fin de while ) ;_ Fin de command (EcritText) ) ;_ Fin de while ) ) ;_ Fin de cond ) ) ;_ Fin de cond ) ;_ Fin de while (setvar "osmode" old_osmode) (setvar "cmdecho" old_cmdecho) (setvar "plinewid" 0) ;;; Fin de l'undo (vla-endundomark doc) (princ) ) ;_ Fin de defun ;;; *********************************************************** ;;; Exporte les Xdata (Matri et Surf) des entités d'un dessin ;;; vers un fichier texte Pour Hydro8 de CadXP.com ;;; *********************************************************** (defun c:Hydro8_List (/) (princ "\nDéveloppé par Denis H. (v:1.0)") (setq Fichier (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))) (setq Fichier (strcat (getvar "dwgprefix") Fichier ".Surf")) (setq FichierEcrit (open Fichier "a")) (if (setq ss (ssget "_X" '((0 . "LWPOLYLINE") (8 . "MARTY-SURFACES_FRACTIONS")))) (progn (setq i 0) (while (setq ssObj (ssname ss i)) (setq i (1+ i)) (setq xMatri (cdr (assoc 1000 (GetXdataForApplication ssObj "Matri")))) (setq xSurf (cdr (assoc 1000 (GetXdataForApplication ssObj "Surf")))) (if (and (/= xMatri "") (/= xMatri nil)) (write-line (strcat xMatri " = " xSurf) FichierEcrit) ) ;_ Fin de if ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if (close FichierEcrit) (princ) ) ;_ Fin de defun En espérant t'avoir été utile... Tiens moi au courant, si ça fonctionne bien comme tu le désirais... Denis... 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 7 février 2018 Auteur Posté(e) le 7 février 2018 Bonjour,mettre la variable HPISLANDDETECTIONMODE à 0 avant de lancer la commande contour, puis la remettre à son ancienne valeur ensuite. C'est la case à cocher "Détection d'ilot" qui détecte le contour des textes multilignes comme des ilots à détourer.Olivier Merci ça fonctionne bien ! Salut Hydro8.Le fichier texte ne sera pas réécrit en totalité lors de l'ajout d'un contour. Mais j'ai une solution que je peux gérer.Je t'ai fais deux codes :Hydro8_Poly : pour créer les polylignes avec les textes multiligne tels que je t'avais écris au-dessus avec export dans un fichier texte .surf. Il créé des xdata liés aux polylignes (j'ai résolu un petit problème d'incrémentation).Hydro8_List : l'exportation des données faite par le nouveau code suivant dans un fichier texte .surf. Cet export se fait sur toutes les polylignes contenant des xdata, donc, il ne tiendra pas compte des contour supprimés.Mais attention, les contours ne doivent pas être modifiés, ils doivent impérativement être recréés par la première commande.Voici le code :... Merci d'avoir pris la peine de coder quelque chose ! Malheureusement j'ai toujours le problème de variable clayer rejeté quand je clique sur l'emplacement du texte. J'ai essayé d'enlever le 0 de la ligne (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 0)) Mais ça ne règle pas le problème. Merci encore de vos réponses :)
DenisHen Posté(e) le 7 février 2018 Posté(e) le 7 février 2018 J'ai essayé d'enlever le 0 de la ligne (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 0))Mais ça ne règle pas le problème.Je ne pense pas que le problème vienne de là. As-tu essayé avec le calque déjà créé ? Copie/colle cette ligne dans la ligne de commande d'AutoCAD et tape [ENTRÉE]. Que ce passe t'il ? 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 7 février 2018 Auteur Posté(e) le 7 février 2018 Alors même avec le calque déjà créé, j'ai le même message d'erreur. Cette ligne me donne 0 si je la lance dans AutoCad.
DenisHen Posté(e) le 7 février 2018 Posté(e) le 7 février 2018 C'est vraiment curieux comme comportement. Bien-sur, ce calque n'est pas verrouillé... Juste pour être sûr... Sinon, peut-tu m'envoyer ce fichier ? Si c'est possible... 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 7 février 2018 Auteur Posté(e) le 7 février 2018 C'est seulement un dessin1 vide dans lequel j'ai créé le calque (non gelé, non vérouillé) et testé le lisp.
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