Aller au contenu

Messages recommandés

Posté(e)

Bonsoir à tous.....

 

Voilà ( encore ) j'ai une routine qui demande le point d'insertion d'in texte puis, elle demande sont orientation ( ou son angle ) Et, si rien n'est répondu... Considère que l'angle est 100.0gr (donc horisontal : // au bas de l'écran )... Mais j'ai la curieuse sensation que je me nois dans une goutte d'eau... Voici ma ligne de commande depuis AutoCAD :

(c:AdrCad "L" "2,5");

Et je vous présente cette routine :

 

(defun c:AdrCad  (Typ Haut / )
 (command "_ucs" "_v")
 (setvar "CMDECHO" 0)
 (setq Haut (atof Haut))
 (if (= (setq Ech (vlax-ldata-get "Phalene" "Ech1")) nil) (PhEch))
[surligneur] PhEch me retourne un réel : Ech=100.00 par exemple [/surligneur] 
 (setq pt1 (getpoint "\nPosition du texte: "))
 (if
     (= (setq Rot (angtof (angtos (getangle pt1 "\nOrientation du texte (Horizontal): ") 2 4) 2)) nil)
     (progn
       (setq Rot 100.0)
       (princ Rot)
       )
     (progn
       (princ Rot)
       (princ "--------")
       (princ Rot)
       )
   )
 (setq TxtSec (getstring S "\nSection : ") TxtNum (getstring N "n° : "))
 (command "_ucs" "_v")  [surligneur]J'aimerai éviter ça[/surligneur] 
 (if (= Typ "C") (command "texte" "j" "mc" pt1 (/ (* Haut Ech) 1000.0) Rot (strcat TxtSec " n°" TxtNum)))
 (if (= Typ "L") (command "texte" "j" "mc" pt1 (/ (* Haut Ech) 1000.0) Rot (strcat "Cadastre : section " TxtSec " numéro " TxtNum)))
 (command "_ucs" "_w")  [surligneur]Donc ça aussi...[/surligneur] 
 )

 

Je crois que je me suis compliqué la vie.... Si "rien" est entré pour le GetAngle... La routine fonctionne bien... Mais si je clique un angle... C'est pas bon... Mais pas bon du tout ! !

 

Je pense que c'est dû au changement de système de coordonnées impliqué par

(command "_ucs" "_v")

 

Bon, la balle est dans votre camp, camarades...

 

Les remarques ( ou encouragements ) de mes professeurs ( ceux qui m'aident depuis le début de ..... de quoi :( ) sur mon code sont toujours les bienvenues...

Ils se reconnaissent, j'en suis sûre...

 

Merci à tous...

( y compris pour le rétablissement du site, qui était en dérrangement depuis cet après-midi, en tous cas pour moi )

 

Bonsoir à tous.....

 

Car il est tard, Monsieur.....

 

DenisH...

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)

Salut,

 

Pour éviter d'avoir a me casser la tête avec les angles, j'utilise l'astuce suivante:

Au lieu de fournir un angle numérique à la commande je fait pointer par la commande texte une direction par un point calculé en lisp par (polar), cela a l'avantage que la commande texte (ou autre) transcrit d'elle même en valeur convenable par rapport au système utilisé.

Le calcul avec polar se fait toujours en radian dans le sens trigo

 

Essayes les quelques lignes suivantes dans n'importe quel système, tu verras, ça baigne.

 

((lambda (/)

(setq pt (getpoint "\nPoint de départ: "))

(setq rot (getorient pt "\nOrientation du texte :"))

(command "_.text" "_none" pt 2.5 "_none" (polar pt rot 10) "C'est toujours dans le bon sens")

))

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

Posté(e)

WAOW ! ! !

 

J'enregistre ce truc tout de suite, et je l'encadre au dessus de ma table de nuit ! ! ! ;)

 

Encore merci Gile......

 

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)

Merde ! ! !

 

Milles excuses ! ! Et à Gile, Et surtout à BonusCad ! !

 

C'est que j'étais en train de lire une autre réponse qui était de Gile.........

 

Je te présente TOUTES mes EXCUSES, BonusCad ! ! !

 

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)

Surtout que je ne sais pas comment utiliser ta routine, BonusCad, car elle autorise un deuxième point, pour capturer l'angle, ou "rien" qui est traduit par "100.0"...

 

C'est là, que j'ai du mal...

 

Merci ç toi...

 

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)

tu copie-colle en ligne de commande (cela ne marche qu'une seule fois vu que c'est une fonction lambda, il faut recoller à chaque fois que tu veux essayer)

 

Pour l'angle, soit tu rentres une valeur, soit tu pointes un point. Je n'ais pas fait de (initget) pour interdir des entrée nulle ou non valide, c'était juste un exemple ;)

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

Posté(e)

Alors tu verrais quoi comme initget, BonusCad .

(initget 1+128) ? 

 

Merci pour ta réponse...

 

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)

Salut,

 

(initget 1+128)

 

Eh non ! 128 autorise toute entrée comme mot-clé (keyword) et interprète "ENTER" comme une chaine vide "", ce 128 prend donc le dessus sur 1 si ces deux bits sont spécifiés ensemble.

 

Pour empécher que l'utilisateur fass "ENTER" c'est juste (initget 1)

 

Sinon pour les histoires de getangle, getorient, aunits, angbase ... tu peux voir ce sujet.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Comme dis Gilles (initget 1)

 

Ou si tu veux pouvoir valider une valeur proposée, n'utilise pas initget mais vérifie si l'entrée est nulle et si oui, affecte lui la valeur par défaut.

 

L'exemple deviendrait

 

((lambda ( / pt rot)

(setq pt (getpoint (strcat "\nPoint de départ <" (rtos (car (getvar "lastpoint"))) "," (rtos (cadr (getvar "lastpoint"))) "," (rtos (caddr (getvar "lastpoint"))) ">: ")))

(if (null pt) (setq pt (getvar "lastpoint")))

(setq rot (getorient pt (strcat "\nOrientation du texte <" (angtos 0) ">: ")))

(if (not rot) (setq rot 0.0)) ; valeur en radian et dans le sens trigo

(command "_.text" "_none" pt 2.5 "_none" (polar pt rot 10) "C'est toujours dans le bon sens")

))

 

Tu verras que si tu te met en grades dans le sens horaire et origine nord (topographique) la valeur proposée pour l'angle sera de 100gr

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

Posté(e)

Alors là, Bravo et Merci à tous ! !

 

C'était exactement ce qui me fallait ! ! !

 

Je suis super content ! !

 

J'insert ça dans ma routine et je reposterai le tout....

 

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)

Bonsoir à tous...

 

Je me permet juste un petit mot, j'utilise maintenant

 

((lambda (/)

(setq pt (getpoint "\nPoint de départ: "))

(setq rot (getorient pt "\nOrientation du texte :"))

(command "_.text" "_none" pt 2.5 "_none" (polar pt rot 10) "C'est toujours dans le bon sens")

))

 

de Bonuscad...

 

Mais modifié, car mon SCU n'est jamais conforme à l'écran... Mais mon curseur l'est...

 

J'ai modifier comme suit :

 

(defun c:lambda ( / pt rot)
(setq pt (getpoint (strcat "\nPoint de départ <" (rtos (car (getvar "lastpoint"))) "," (rtos (cadr (getvar
"lastpoint"))) "," (rtos (caddr (getvar "lastpoint"))) ">: ")))
(if (null pt) (setq pt (getvar "lastpoint")))
(setq rot (getorient pt (strcat "\nOrientation du texte <" (angtos 0) ">: ")))
(if (not rot) (setq rot [surligneur] (getvar "snapang")[/surligneur] )) ; valeur en radian et dans le sens trigo
(command "_.text" "_none" pt 0.5 "_none" (polar pt rot 10) "C'est toujours dans le bon sens")
)

Et c'est toujours horizontal.... Sans aucune rotation du SCU (ce qui ne me plaisait pas...)

 

 

CabinetD... (LogIn du perso : DenisH..)

Posté(e)

Bonsoir à tous...

 

Oui, CabinetD, c'est moi, mais au boulo....

 

Une dernière question... Comment faire pour ne pas faire un "texte" mais un "Mtexte" ? Avec, biensur, le même point d'insertion...

 

Exemple, (je vais tenter le coup en Lisp...)

 

 (if (> (strlen ChaineTXT) 10)
(= MTexte (strcat Cadastre :" CR " section " TxtSec CR "Numéro " TxtNum))
(= Texte (strcat Cadastre :  section " TxtSec  "Numéro " TxtNum))
)

 

CR = retour chariot...

 

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)

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é