Aller au contenu

Messages recommandés

Posté(e)

Point de vue 3d avec concervation de l'echelle du dernier zoom .

Après RP2 de Didier

http:// http://www.cadxp.com/sujetXForum-20020.htm

j'ai eu envie d'appliquer ce principe de concervation du zoom au lisp PDV de (gile)

http://www.cadxp.com/sujetXForum-16919.htm

Hormis le fait que je n'ai pas su reprendre le style de (gile) , je me suis rendu compte que

les points de vue non iso ne permettent pas de concerver le point central de la vue ( la cible),

et que si on était éloigné du point d'origine du SCU , la vue se décalait vers celui-ci.

Pour contourner le problème j'ai pris pour cible une sélection d'objet(s) et j'utilise le zoom objet pour faire un recadrage avant de rétablir l'echelle de zoom.

Croyant que l'affaire était dans le sac car en style visuel 2D tout marché bien , voila que je m'aperçois qu'en style visuel 3D mon lisp "perturbe" le fonctionnement de PDV de (gile).

J'ai fini par comprendre (autocad2008) qu'en style visuel 3D la commande point de vue se cale sur le dernier zoom objet s'il y en a eu un. Et je n'ai pas trouvé de solution !

Cette propriété me permettrait toutefois de ne pas répéter inutilement le zoom objet sauf que je n'ai pas trouvé non plus comment savoir dans quel style visuel est ma vue.

En espérant avoir des infos pour l'améliorer voici le lisp en question.

 

 
Code obsolète supprimé  voir plus bas

 

 

[Edité le 13/8/2008 par usegomme]

Posté(e)

Recoucou

Merci pour le petit mot , tu as bien mérité les paroles de cette chanson de Brassens

http://www.paroles.net/chanson/12642.1

mais je ne m'en fais pas , peut être bien que mon bricolage n'apporte rien ou pas grand chose .

Mais ton RP2 est bien sympa (ainsi que PDV d'ailleurs), plutôt que se tordre le cou mieux vaut redresser la vue.

Amicalement

 

 

Posté(e)

Oui, tout à fait ,sauf bien sûr la qualité d'écriture que je suis incapable de reproduire.

J' ai doublé la frappe c'est à dire 77 au lieu de 7 par ex. pour ne pas empêcher le lisp de (gile) de fonctionner , mais quand j'ai commencé je ne savais pas qu'en mode d'affichage 3d , si un zoom objet a été fait dans la cession , la cde point de vue et donc par conséquent le lisp de (gile) fait un cadrage serré sur l'objet en question , chose qui ne se produit pas si on est en filaire 2d même si on est en vue 3D en tout cas sur la 2008 , à moins qu'il y ait un paramètre quelque part mais que j'ignore.

Posté(e)

Malgré le peu de succés de mon bricolage je persiste à essayer de vendre mon point de vue.

Voici deux nouvelles versions qui ont un petit intérêt me semble-t-il, dans le fait que l'origine du scu n'est pas perdue lors d'un pt de vue non iso contrairement à la cde autocad.

PDVZO.lsp avec centrage sur objet(s)

PDVZS.LSP avec centrage sur origine scu.

 

POINT DE VUE SUR OBJET

 ; usegomme 13-08-08
; point de vue 3 D avec conservation du zoom par présélectionner objet(s)
; pour définir ou redéfinir la cible 
; et concervation de l'origine de SCU.
; nota: quand l'origine semble perdue, elle est en fait hors zone ecran.
; dix nouvelles commandes sont créées taper :   
; 00 puis Enter -> bas
; 11 puis Enter -> isométrique sud ouest
; 22 puis Enter -> avant
; 33 puis Enter -> isométrique sud est
; 44 puis Enter -> gauche
; 55 puis Enter -> haut
; 66 puis Enter -> droite
; 77 puis Enter -> isométrique nord ouest
; 88 puis Enter -> arrière
; 99 puis Enter -> isométrique nord est

(defun pointdevue-z (v / or h ce)
; permet de définir ou redéfinir la cible par 
;;présélection (objet/action)
(if  (ssget  "_i")(setq obj-cibl (ssget)))
; si pas de cible définie 
(if (not obj-cibl)(setq obj-cibl (ssget))) 
(setvar "cmdecho" 0)
(setq or (getvar "ucsorg"))
(setq h (getvar "viewsize"))
;;nouveau point de vue
(command "_.view" v)
;; les points de vue non iso modifient le SCU ,
;; les lignes ci-dessous permettent de recupérer
;; l'origine du SCU précédent
(if 
(or (= v "_left")(= v "_front")(= v "_right")
(= v "_back")(= v "_bottom")(= v "_top")
)
(command "_ucs" "_o" "_none" (trans or 0 1))
)
;;restoration du zoom 
(command "_zoom" "_o" obj-cibl "")
(setq ce (trans (getvar "viewctr") 1 0))
(command "_zoom" "_c" (trans ce 0 1) h)
(setvar "cmdecho" 1)
(princ)
)

(defun c:00 () (pointdevue-z "_bottom"))
(defun c:11 () (pointdevue-z "_swiso"))
(defun c:22 () (pointdevue-z "_front"))
(defun c:33 () (pointdevue-z "_seiso"))
(defun c:44 () (pointdevue-z "_left"))
(defun c:55 () (pointdevue-z "_top"))
(defun c:66 () (pointdevue-z "_right"))
(defun c:77 () (pointdevue-z "_nwiso"))
(defun c:88 () (pointdevue-z "_back"))
(defun c:99 () (pointdevue-z "_neiso"))

 

POINT DE VUE ORIGINE SCU

 ; usegomme 13-08-08
; point de vue 3 D avec conservation du zoom  
; et concervation de l'origine de SCU qui est la cible
; dix nouvelles commandes sont créées taper :   
; 0+ puis Enter -> bas
; 1+ puis Enter -> isométrique sud ouest
; 2+ puis Enter -> avant
; 3+ puis Enter -> isométrique sud est
; 4+ puis Enter -> gauche
; 5+ puis Enter -> haut
; 6+ puis Enter -> droite
; 7+ puis Enter -> isométrique nord ouest
; 8+ puis Enter -> arrière
; 9+ puis Enter -> isométrique nord est

(defun pointdevue-zs (v / or h ce)
(setq ce '(0.0 0.0 0.0))
(if (equal ce (getvar "ucsorg"))
(progn
(prompt "\n Définir le SCU")
(command "_ucs")
(while (not (zerop (getvar "cmdactive")))(command pause))
)
)
(setvar "cmdecho" 0)
(setq or (getvar "ucsorg"))
(setq h (getvar "viewsize"))
;;nouveau point de vue
(command "_.view" v)
;; les points de vue non iso modifient le SCU ,
;; les lignes ci-dessous permettent de recupérer
;; l'origine du SCU précédent
(if 
(or (= v "_left")(= v "_front")(= v "_right")
(= v "_back")(= v "_bottom")(= v "_top")
)
(command "_ucs" "_o" "_none" (trans or 0 1))
)
;;restoration du zoom 
(command "_zoom" "_c" ce h)
(setvar "cmdecho" 1)
(princ)
)

(defun c:0+ () (pointdevue-zs "_bottom"))
(defun c:1+ () (pointdevue-zs "_swiso"))
(defun c:2+ () (pointdevue-zs "_front"))
(defun c:3+ () (pointdevue-zs "_seiso"))
(defun c:4+ () (pointdevue-zs "_left"))
(defun c:5+ () (pointdevue-zs "_top"))
(defun c:6+ () (pointdevue-zs "_right"))
(defun c:7+ () (pointdevue-zs "_nwiso"))
(defun c:8+ () (pointdevue-zs "_back"))
(defun c:9+ () (pointdevue-zs "_neiso"))

 

 

[Edité le 25/8/2008 par usegomme]

  • 2 semaines après...
Posté(e)

Retour au grand classique pas si mal , mais en conservant l'origine du SCU et possibilité de pré-sélection pour faire un zoom objet .(bon j'espère que je ne pollue pas trop le site avec mes tergiversations.

; point de vue 3 D  
; avec conservation de l'origine de SCU 
; + zoom objet si présélection
; dix nouvelles commandes sont créées taper :   
; 0 puis Enter -> bas
; 1 puis Enter -> isométrique sud ouest
; 2 puis Enter -> avant
; 3 puis Enter -> isométrique sud est
; 4 puis Enter -> gauche
; 5 puis Enter -> haut
; 6 puis Enter -> droite
; 7 puis Enter -> isométrique nord ouest
; 8 puis Enter -> arrière
; 9 puis Enter -> isométrique nord est

(defun pointdevue (v / or obj)
 (setvar "cmdecho" 0)
 (setq or (getvar "ucsorg"))
 ;; obj-cibl est pour accord avec PDVO.lsp
 (if  (ssget  "_i")(setq obj-cibl (setq obj (ssget))))
 ;;nouveau point de vue
 (command "_.view" v)
 ;; les points de vue non iso modifient le SCU ,
 ;; les lignes ci-dessous permettent de recupérer
 ;; l'origine du SCU précédent sans empêcher le pivotement.
 (if 
   (or (= v "_left")(= v "_front")(= v "_right")
     (= v "_back")(= v "_bottom")(= v "_top")
   )
   (command "_ucs" "_o" "_none" (trans or 0 1))
 )
 (if obj (command  "_zoom" "_o" obj ""))
 ;;(if obj-cibl (command  "_zoom" "_o" obj-cibl ""))
 (setvar "cmdecho" 1)
 (princ)
)

(defun c:0 () (pointdevue "_bottom"))
(defun c:1 () (pointdevue "_swiso"))
(defun c:2 () (pointdevue "_front"))
(defun c:3 () (pointdevue "_seiso"))
(defun c:4 () (pointdevue "_left"))
(defun c:5 () (pointdevue "_top"))
(defun c:6 () (pointdevue "_right"))
(defun c:7 () (pointdevue "_nwiso"))
(defun c:8 () (pointdevue "_back"))
(defun c:9 () (pointdevue "_neiso"))

 

 

 

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é