Aller au contenu

Contour avec texte surface


Messages recommandés

Posté(e)

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)

  • Réponses 206
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

Posté(e)

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:

Posté(e)

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)

Posté(e)

À 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 :

 

1PVv8jP.png

 

Je sais pas si c'est lié mais par exemple dans la commande, le é de Préfix ne s'affiche pas correctement.

Posté(e)

À 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)

Posté(e)

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)

Posté(e)

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.

Posté(e)

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)

Posté(e)

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)

Posté(e)

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 ?

Posté(e)

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)

Posté(e)

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)

Posté(e)

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 ?

Posté(e)

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)

Posté(e)

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.

Posté(e)

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)

Posté(e)

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

Posté(e)

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 :

  1. 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).
  2. 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)

Posté(e)

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 :

  1. 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).
  2. 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 :)

Posté(e)

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)

Posté(e)

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)

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant



×
×
  • 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é