arnaudalp Posté(e) le 5 août 2016 Posté(e) le 5 août 2016 Bonjour à tous.Je souhaite insérer un flèche dans un texte (droite ou gauche).Dans Autocad, lorsque je fais mon texte, je tape Alt+26 ou Alt+27.Ces flèches correspondent aux unicodes U+2190 et U+2192.Lorsque je mets dans mon lisp (chr 2190)Or, (chr 2190) me retourne "Ž" et (chr 2192) "".Quel serait le code ?Merci
zebulon_ Posté(e) le 10 août 2016 Posté(e) le 10 août 2016 Bonjour à tous.Je souhaite insérer un flèche dans un texte (droite ou gauche).Dans Autocad, lorsque je fais mon texte, je tape Alt+26 ou Alt+27.Ces flèches correspondent aux unicodes U+2190 et U+2192.Lorsque je mets dans mon lisp (chr 2190)Or, (chr 2190) me retourne "Ž" et (chr 2192) "".Quel serait le code ?Merci Bonjour, le paramètre de la fonction chr doit être compris entre 1 et 255. S'il est au delà, la valeur retournée est aléatoire. A string containing the ASCII character code for integer. If the integer is not in the range of 1-255, the return value is unpredictable. Pourquoi utiliser l'unicode et pas directement le caractère "→" ou "←" ? AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
zebulon_ Posté(e) le 10 août 2016 Posté(e) le 10 août 2016 Pourquoi utiliser l'unicode et pas directement le caractère "→" ou "←" ?Parce que l'éditeur de texte ne les accepte pas, forcément ça marche moins bien... :( Question idiote de ma part, désolé Sinon, pour coder avec l'unicode du caractère, on peut imaginer d'utiliser la fonction strcat Commande: (strcat "\u+2190")"←" Commande: (strcat "\u+2191")"↑" Commande: (strcat "\u+2192")"→" Commande: (strcat "\u+2190 toto \u+2192")"← toto →" AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
arnaudalp Posté(e) le 11 août 2016 Auteur Posté(e) le 11 août 2016 Merci pour les infos et la réponse.Je ne savais pas qu'au delà de 255 la réponse était aléatoire... A noter dans un coin de ma tête!
zebulon_ Posté(e) le 11 août 2016 Posté(e) le 11 août 2016 Merci pour les infos et la réponse.Je ne savais pas qu'au delà de 255 la réponse était aléatoire... A noter dans un coin de ma tête! Je pense que c'est dû au fait que la fonction chr date d'une époque où l'unicode n'existait pas. De ce fait, cette fonction ne sait gérer que les codes ASCII standard (jusqu'à 127) et les autres codes étendus, mais dans la limite de 256 caractères. On peut remarquer que la réciproque est vraie également et que la fonction ascii ne renvoie le code ascii que des 256 premiers caractères. Si on demande le code ascii d'un caractère qui se situe au delà de cette limite on obtient toujours le code 92 qui correspond au "\" Commande: (ascii "←")92 De toute façon, on n'arrive pas à écrire (ascii "←") dans un fichier ANSI (qui est le standard de notepad ou de l'éditeur de texte de lisp), donc le problème ne peut même pas se poser.Mais le resultat 92 s'explique par le fait que ascii retourne la conversion du premier caractère de la chaine en son code ASCII.(ascii "←") doit être synonyme de (ascii "\u+2190"), donc de (ascii "\\"), donc de 92 Sinon, tu as pu faire fonctionner ton lisp avec (strcat "\u+2190") et (strcat "\u+2192") ? AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
arnaudalp Posté(e) le 12 août 2016 Auteur Posté(e) le 12 août 2016 Oui, je viens de l'intégrer, ça marche très bien, merci !
zebulon_ Posté(e) le 12 août 2016 Posté(e) le 12 août 2016 Super ! Finalement, strcat n'est pas forcément nécessaire si on donne à la commande mtext tout de suite le bon index, comme par exemple (setq AcDoc (vla-get-activeDocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (vla-addmtext space (vlax-3d-point '(0 0)) 0 "\u+2190 essai \u+2192") AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
arnaudalp Posté(e) le 12 août 2016 Auteur Posté(e) le 12 août 2016 eurf, c'est bien trop pour moi ! ;) (command "texte" "j" "mc" pt_txt_pente "100" (strcat (rtos pente 2 2) "%" "\u+2192")) Ce que tu m'as donné me suffit largement !
zebulon_ Posté(e) le 12 août 2016 Posté(e) le 12 août 2016 (command "texte" "j" "mc" pt_txt_pente "100" (strcat (rtos pente 2 2) "%" "\u+2192")) Dans cette ligne de code le strcat est nécessaire du fait de la présence de la fonction rtos. Mais, si tu ne voulais passer à la commande "texte" qu'une constante, par exemple "5%\u+2192", on n'aurait plus besoin du strcat. (command "texte" "j" "mc" pt_txt_pente "100" "5%\u+2192")Ce qui revient au même, sur le principe, que ce que j'ai écrit en vlisp. D'ailleurs, dans ta ligne de code, tu pourrais écrire "%\u+2192" à la place de "%" "\u+2192", mais c'est un détail. J'ai souhaité préciser compte tenu que ma deuxième réponse laissait entendre qu'il fallait absolument utiliser strcat, ce qui n'est pas le cas. Désolé si mon manque de précision, à cause duquel je me suis déjà fait taper sur les doigts par le passé, t'a conduit à le penser. C'est tout un art d'être clair et précis dans ce qu'on raconte :D AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
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