Aller au contenu

Passage de symbole d\'AutoCAD vers Lisp


Messages recommandés

Posté(e)

Bonsoir à tous,

 

Voilà, j'ai fais une petite routine qui écrit un texte dans le dessin...Mais ça ne fonctionne pas...

 

La phrase dans mon menu :

 (phtexte "Bonjour" "2.5")

J'ai essayé 2.5 et "2.5"

 

Ma routine :

(defun c:_PhTexte  ( Text Haut / )
 (if (= (setq Ech (vlax-ldata-get "Phalene" "Ech1")) nil) (PhEch))
 (setq p1 (getpoint "\nPoint d'insertion du text : "))
 (setq p2 (getpoint "\nOrientation du texte : "))
 (command "-texte" "j" "mc" p1 (/ (* Haut Ech) 1000.0) p2 Text)
)

 

Pour le cas ou cela serve à quelqu'un...( Grand merci à (gile) )

(defun PhEch ()
 (setq Ech (vlax-ldata-get "Phalene" "Ech1"))
 (if Ech
   ;; si Ech est déjà défini
   (progn
     (if (setq Ech (getreal (strcat "Ancienne échelle (1/" (fix (rtos Ech)) ") - Nouvelle échelle: 1/")))
       ;; Si Ech est re-défini
       (vlax-ldata-put "Phalene" "Ech1" Ech)
       ) ;_ Fin de if
     (princ
       (strcat "\nEchelle = 1/" (rtos (vlax-ldata-get "Phalene" "Ech1")))
       )
     ) ;_ Fin de progn
   ;; si Ech n'est pas encore défini
   (progn
     (setq Ech (getreal "Échelle du dessin 1/"))
     (vlax-ldata-put "Phalene" "Ech1" Ech)
     (princ
       (strcat "\nEchelle = 1/" (rtos (vlax-ldata-get "Phalene" "Ech1")))
       )
     )
   )
 (princ)
 )

Merci pour votre aide...

 

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)

Donc,

 (phtexte "Bonjour" "2.5") 

est bon, et je n'ai qu'à ajouter dans la routine :

(setq Haut (atof Haut))

 

Merci Patrick_35, je cours modifier ...

 

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)

Bon, je n'y arrive toujours pas...

 

Ma phrase dans le menu reste la même, Mais j'ai changé la routine comme suit :

 

(defun c:_PhTexte  (Text Haut / )
 (setq Haut (atof Haut))
 (if (= (setq Ech (vlax-ldata-get "Phalene" "Ech1")) nil) (PhEch))
 (setq p1 (getpoint "\nPoint d'insertion du text : "))
 (setq p2 (getpoint p1 "\nOrientation du texte : "))
 (command "-texte" "j" "mc" p1 (/ (* Haut Ech) 1000.0) p2 Text)
)

 

 

Mais AutoCAD me répond :

Commande: (phtexte "Bonjour" "2.5")
; erreur: no function definition: PHTEXTE

 

J'utilise mal atof ?

 

Merci,

 

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)

(phtexte "Bonjour" "2.5")

Quand tu fais ceci en ligne de commande, cela veut dire que tu appeles une fonction définie comme suit:

(defun phtexte ( arg1 arg2 / var1 var2......) ........)

 

Etant donné que tu as défini ta fonction comme suit (pour qu'elle soit identique à une commande, c'est à dire que son appel peut se faire sans paranthèse en ligne de commande: PHTEXTE)

(defun c:phtexte (arg1 arg2 / var1 var2 .....) ......)

 

Tu dois dans ce cas (comme tu soumet des arguments faire l'appel comme suit:

 

(c:phtexte "Bonjour" "2.5"), tu peut faire aussi ce genre d'appel sans argument, si la fonction n'en possède pas.

 

En résumé une fonction défini avec C: peut s'appeler directement avec le nom de la commande ou entre paranthèse (C:mafonction)

 

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Waow...

 

Merci à tous... C'est parfait ! !

 

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)

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é