DenisHen Posté(e) le 13 juin 2006 Posté(e) le 13 juin 2006 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)
bonuscad Posté(e) le 13 juin 2006 Posté(e) le 13 juin 2006 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
DenisHen Posté(e) le 13 juin 2006 Auteur Posté(e) le 13 juin 2006 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)
DenisHen Posté(e) le 13 juin 2006 Auteur Posté(e) le 13 juin 2006 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)
DenisHen Posté(e) le 13 juin 2006 Auteur Posté(e) le 13 juin 2006 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)
bonuscad Posté(e) le 13 juin 2006 Posté(e) le 13 juin 2006 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
DenisHen Posté(e) le 13 juin 2006 Auteur Posté(e) le 13 juin 2006 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)
(gile) Posté(e) le 14 juin 2006 Posté(e) le 14 juin 2006 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
bonuscad Posté(e) le 14 juin 2006 Posté(e) le 14 juin 2006 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
DenisHen Posté(e) le 14 juin 2006 Auteur Posté(e) le 14 juin 2006 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)
CabinetD Posté(e) le 16 juin 2006 Posté(e) le 16 juin 2006 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..)
DenisHen Posté(e) le 16 juin 2006 Auteur Posté(e) le 16 juin 2006 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)
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