Bred Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Salut, Sous Autocad, lorsque l'on fait une "vue du bas", Acad propose la vue avec une rotation de 180 sur les Y...Cette vue donne la direction (0.0 0.0 -1.0) .... Perso, je préférerais, pour la vue du bas, avoir la vue qui tourne de 180 sur les X. Et là où je n'arrives pas, c'est pour déterminer cette direction "juste"... En tatonant, j'ai réussis à m'en approcher, mais je ne comprends pas le pourquoi de cette valeur.... Je trouve en direction : (0.0 -0.0174524 -1.0) Merci d'avance si vous avez une explication simple (et le moyen de trouver cette valeur juste par le calcul). Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
LrDb Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Bonjour,je passais par làje ne suis pas autocadien mais-0.0174524 equivaut à -1degré en radians(-1/180)*pi Write a book about what ??
(gile) Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Salut, La vue que tu cherches à obtenir a une direction (VIEWDIR) 0,0,-1 mais aussi une rotation (VIEWTWIST) de 180°. En LISP, je vois mal comment faire autrement que de passer par un command : avec AutoLISP viewport ne supporte pas entmod et avec Visual LISP l'objet Viewport n'a pas de propriété TwistAngle (PViewport l'a). (defun c:bottom () (command "_.ucs" "x" (angtos pi) "_.plan" "_current" "_.ucs" "_previous" ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 6 avril 2010 Auteur Posté(e) le 6 avril 2010 Re,-0.0174524 equivaut à -1degré en radians(-1/180)*piMerci !.... je cherchais dans ce sens et je ne trouvais pas.... mais je ne vois pas ce que viens faire "-1 degré" la dedans... avec Visual LISP l'objet Viewport n'a pas de propriété TwistAngle (PViewport l'a).Oui, merci.Mais j'ai la propriété direction, et je lui applique (0.0 -0.0174524 -1.0) pour faire basculer ma vue.Fais tourner ta vue en orbite libre afin d'avoir une rotation de 180 sur les X.Tu verras que tu trouves la valeur de la direction que je donne. J'ai tenté de retrouvé cette valeur grâce aux formules de calcul de normal à un plan que tu nous à donné, mais je n'y arrive pas.Je ne comprends pas pourquoi Autocad décide de tourner autour des Y (il doit y avoir une explication géométrique, mais là je suis limité...) Merci encore pour vos réponses. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Mais j'ai la propriété direction, et je lui applique (0.0 -0.0174524 -1.0) pour faire basculer ma vue.Fais tourner ta vue en orbite libre afin d'avoir une rotation de 180 sur les X.Tu verras que tu trouves la valeur de la direction que je donne. Essaye la routine/macro que j'ai donné et interroge VIEWDIR et VIEWTWIST... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 7 avril 2010 Auteur Posté(e) le 7 avril 2010 Re,Essaye la routine/macro que j'ai donné et interroge VIEWDIR et VIEWTWIST...Ah oui... je viens de le faire, mais je ne comprends pas le résultat : (trans '(0 0 1) 2 0 T) = (0.0 -1.22461e-016 -1.0) ... ou alors c'est qu'Acad ne paut pas faire une vraie rotation de vue sur la X ? Car c'est vrais que mon (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-put (vla-get-ActiveViewport AcDoc) 'Direction (list 0.0 (/ pi -180) -1.0)) (vla-put-ActiveViewport AcDoc (vla-get-ActiveViewport AcDoc)) (vla-ZoomAll (vlax-get-acad-object))Ne fait pas une rotation complète... il reste 1° à rattraper... (je viens de le comprendre) ... mais par contre, si je fais cela, ça me fait une rotation sur les Y comme avant :(vlax-put (vla-get-ActiveViewport AcDoc) 'Direction '(0.0 -1.22461e-016 -1.0)) ... alors que le résultat est identique à ta routine .....(trans '(0 0 1) 2 0 T) = (0.0 -1.22461e-016 -1.0) .... m'énerve ..... [Edité le 7/4/2010 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Tramber Posté(e) le 7 avril 2010 Posté(e) le 7 avril 2010 (defun killzero (ki ze / ans ans2) (setq ans 1) (if ( (repeat ze (/ 1.0 (setq ans (* 10 ans))))) 0.0 ans2 )) (defun killzeropt (pti n / ) (cond((= (length pti) 2) (list (killzero (car pti) n) (killzero (cadr pti) n))) ((= (length pti) 3) (list (killzero (car pti) n) (killzero (cadr pti) n) (killzero (caddr pti) n))) )) Voici 2 fonctions qui me servent à "tuer" les zéro pas tout à fait à zéro.(killzero reel "nombre de chiffres significatifs")killzeropt fait la même chose pour les points. (killzero 0.00012 2) donne 0(killzero 0.00012 8) donne 0.00012(killzeropt '(0.0 -1.22461e-016 -1.0) 4) donne (0.0 0.0 -1.0) (killzeropt '(0.0 -1.22461e-016 -1.0) 18) donne (0.0 -1.22461e-016 -1.0) C'est une peut usine à gaz car il doit y avoir plus simple mais ca marche. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Bred Posté(e) le 7 avril 2010 Auteur Posté(e) le 7 avril 2010 Salut,merci, mais il ne faut justement pas remettre à 0.Si tu remet à 0, tu te retrouves avec une vue bas en rotation que les Y : (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-put (vla-get-ActiveViewport AcDoc) 'Direction '[b](0.0 0.0 -1.0)[/b]) (vla-put-ActiveViewport AcDoc (vla-get-ActiveViewport AcDoc)) Donne une vue bas d'Acad. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Tramber Posté(e) le 7 avril 2010 Posté(e) le 7 avril 2010 Excuse-moi Bred, je ne suis pas rentré dans le sujet.Je voulais juste t'aider à écraser les valeurs très proches de zéro comme -1.22461e-016 Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Bred Posté(e) le 8 avril 2010 Auteur Posté(e) le 8 avril 2010 Salut,Oui, j'avais bien compris, pas de problème, au contraire. ... il n'empêche que ça me prends bien le choux ce truc. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 8 avril 2010 Posté(e) le 8 avril 2010 Salut, Une autre méthode (toujours avec les commandes AutoCAD) (command "_.view" "_bottom" "_.dview" "_all" "" "_twist" (angtos pi) "") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 8 avril 2010 Posté(e) le 8 avril 2010 Ou encore sans zoom étendu : (command "_.dview" "" "_camera" "-90" "" "_twist" "180" "") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 8 avril 2010 Auteur Posté(e) le 8 avril 2010 Merci (gile).... passer ça en autolisp me fait franchement mal au coeur.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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