Aller au contenu

Messages recommandés

Posté(e)

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...

Posté(e)

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 ??

Posté(e)

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

Posté(e)

Re,

-0.0174524 equivaut à -1degré en radians

(-1/180)*pi

Merci !.... 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...

Posté(e)

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

Posté(e)

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...

Posté(e)

(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

 

./__\.
(.°=°.)
Posté(e)

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...

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

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...

Posté(e)

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...

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é