Aller au contenu

CAMERAS facile


Invité ingoenius

Messages recommandés

Invité ingoenius
Posté(e)

grace au precieux aide de ce forum ici la routine complete pour creer e visualiser une vue camera en perspective , d'une facon un peu plus simple de la commande standard autocad (selon moi)

 

il faut etre en vue du haut et selectionnere seulement 2 points et repondre aux question pour ce retrouver dans une nouvelle vue camera

qui au passage est sauvegarde avec le nom vue_camera

 

 

 

 
(defun C:cams ()
(setq Cam1 (getpoint "\nPosition camera? "))
(setq CamZ (getreal "\nHauteur du sol? "))
(setq Lens (getreal "\nTaille Optique mm? "))


(setq Camx (car Cam1))
(setq Camy (cadr Cam1))
(setq CAM_pos(list Camx Camy CamZ))  


(setq Cible1 (getpoint "\nPosition cible? "))
(setq CibZ (getreal "\nHauteur du sol? "))
(setq Cibx (car Cible1))
(setq Ciby (cadr Cible1))

(setq Cible_pos(list Cibx Ciby CibZ))  

(command "iconescu" "IN" "" )
(command "_.dview" "_all" "" "_points" cible_pos CAM_pos "_distance" ""  "Z" Lens "" )

(command "_view" "sa" "vue_camera");salva la vista col nome   

)


 

 

 

Posté(e)

Dans le même ésprit je me suis amusé à mettre au point un "voltigeur 3D", pilotable avec une barre de boutons (10 boutons pour tous les mouvements de déplacement et de rotation).

On donne des valeurs pour les déplacements et l'angle de rotation et le zoom, puis chaque clic sur un bouton déplace la vue caméra... j'ai fait ca pour "visiter virtuellement" mon appart que je viens d'acheter et que je suis entrain de rénover, mais après avoir chargé toutes les Xrefs 3D texturés de mobilier et autres mon vieux PC pédale dans la semoule, il lui faut des dizaines de secondes pour recalculer la vue, du coup ca me sert pas beaucoup.... mais c'est rigolo :)

 

Posté(e)

Sympa, mais comme nous sommes dans le bon forum, tu pourrais publier ton menu :cool:

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)
Sympa, mais comme nous sommes dans le bon forum, tu pourrais [surligneur] publier ton menu[/surligneur]

 

Ah oui ca pourrait etre bien ca :D

 

[Edité le 14/4/2006 par boris]

Posté(e)

no problémo, le voilà !

 

profitez en pour me faire part de vos commentaires, car il est probable que ce soit simplifiable...

pour la barre à boutons associée elle est incluse dans les lignes du LISP y a qu'a copier-coller dans un menu, par contre pour les BMP correspondants faudra vous amuser un peu à les dessiner !

 

 



;  V3D.lsp
;
;     _________________________________________
;     VOLTIGEUR 3D  -  Fred SUTTER © avril 2006
;     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; S'utilise avec la barre à boutons ci dessous, flottante et sur 2 lignes :
;
; **TB_VOLTIGEUR_3D
; [_Toolbar("Voltigeur 3D", _Floating, _Show, 1089, 812, 2)]
; [_Button("Monte", "V3D_DH.bmp", "ICON_24_BLANK")]^C^CV3D DH 
; [_Button("Gauche", "V3D_DG.bmp", "ICON_24_BLANK")]^C^CV3D DG 
; [_Button("Avance", "V3D_DA.bmp", "ICON_24_BLANK")]^C^CV3D DA 
; [_Button("Droite", "V3D_DD.bmp", "ICON_24_BLANK")]^C^CV3D DD 
; [_Button("Tourne Haut", "V3D_RH.bmp", "ICON_16_BLANK")]^C^CV3D RH 
; [_Button("V3D Config", "V3D_.bmp", "ICON_24_BLANK")]^C^C^P(load "V3D") V3D;;
; [_Button("Descend", "V3D_DB.bmp", "ICON_24_BLANK")]^C^CV3D DB 
; [_Button("Tourne Gauche", "V3D_RG.bmp", "ICON_24_BLANK")]^C^CV3D RG 
; [_Button("Recule", "V3D_DR.bmp", "ICON_24_BLANK")]^C^CV3D DR 
; [_Button("Tourne Droite", "V3D_RD.bmp", "ICON_24_BLANK")]^C^CV3D RD 
; [_Button("Tourne Bas", "V3D_RB.bmp", "ICON_16_BLANK")]^C^CV3D RB 
;
;   Description des variables
;   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; commande  = commande utilisateur transmise par un bouton
; cam  = position actuelle camera
; Ncam  = nouvelle position
; cib  = position actuelle cible
; Ncib  = nouvelle position
; dsar/dsgd/dshb  = distances pour les déplacements
; ang  = direction de visée (angle dans le plan XY)
; rotdeg/rot  = angle de rotation en ° / en Radians
; zhb  = delta Z équivalent à l'angle pour les rotation haut/bas
; visee  = coordonnée Z pour la cible
; zoom  = distance focale
; entree  = entrée utilisateur
;
;
(defun c:V3D ()
(princ "\n ===  VOLTIGEUR 3D  =  © Fred SUTTER avril 2006  ===")
(setvar "osmode" 0)
(initget "DA DR DH DB DG DD RH RB RG RD")
(princ "\nCommande (DA DR DH DB DG DD RH RB RG RD ou Entrée pour configurer) ? : ")
(if (null (setq commande (getkword))) (V3D_INI))
(if (null cam) (V3D_INI))
(cond ( (= "DA" commande) (setq Ncam (polar cam ang dsar)) )
     ( (= "DR" commande) (setq Ncam (polar cam ang (* -1 dsar))) )
     ( (= "DH" commande) (setq Ncam (list (nth 0 cam) (nth 1 cam) (+ (nth 2 cam) dshb))) )
     ( (= "DB" commande) (setq Ncam (list (nth 0 cam) (nth 1 cam) (- (nth 2 cam) dshb))) )
     ( (= "DG" commande) (setq Ncam (polar cam (+ ang (/ pi 2)) dsgd)) )
     ( (= "DD" commande) (setq Ncam (polar cam (- ang (/ pi 2)) dsgd)) )
     (t (setq Ncam cam)) )
(cond ( (= "RG" commande) (setq ang (+ ang rot)) )
     ( (= "RD" commande) (setq ang (- ang rot)) )
     ( (= "RH" commande) (setq visee (+ visee zhb)) )
     ( (= "RB" commande) (setq visee (- visee zhb))) )
(setq Ncib (polar (list (nth 0 Ncam) (nth 1 Ncam) (+ (nth 2 Ncam) visee)) ang dsar))
(V3D_VOIR)
(setq commande nil
     Ncam nil
     Ncib nil)
(princ) ) ; fin ;
;
;
;
;  init
(defun V3D_INI ()
;  création des valeurs par défaut si non définies
(if (null cam)
 (setq cam (list 0 0 1500)
       dsar 500
       dshb 200
       dsgd 300
       rotdeg 30
       zoom 35
       visee 0
       ang 0) )
;  entrées utilisateur
(princ "\n ===  CONFIG DU VOLTIGEUR  ===")
(prompt (strcat "\n\tPoint de base caméra <" (rtos (nth 0 cam)) "," (rtos (nth 1 cam)) "," (rtos (nth 2 cam)) "> : "))
(if (setq entree (getpoint)) (setq cam entree))
(prompt (strcat "\n\tDéplacement Avant/Arrière <" (rtos dsar) "> : "))
(if (setq entree (getreal)) (setq dsar entree))
(prompt (strcat "\n\tDéplacement Gauche/Droite <" (rtos dsgd) "> : "))
(if (setq entree (getreal)) (setq dsgd entree))
(prompt (strcat "\n\tDéplacement Haut/Bas <" (rtos dshb) "> : "))
(if (setq entree (getreal)) (setq dshb entree))
(prompt (strcat "\n\tRotation en degrés <" (rtos rotdeg) "> : "))
(if (setq entree (getreal)) (setq rotdeg entree))
(prompt (strcat "\n\tDistance focale <" (rtos zoom) "> : "))
(if (setq entree (getreal)) (setq zoom entree))
;  calcul des variables dépendantes
(setq   cib (polar cam ang dsar)
       rot (/ (* rotdeg pi) 180)
       zhb (* dsar (sin rot))
       commande nil)
(princ "\n")
(V3D_VOIR)
(princ) ) ; fin init
;
;
;
;  affichage
(defun V3D_VOIR ()
;(if (/= cam Ncam) (command "ligne" cam Ncam ""))  ; traceur d'itinéraire
(if Ncib (setq cib Ncib))
(if Ncam (setq cam Ncam))
(command "vuedyn" "tout" "" "po" cib cam "di" "" "z" zoom "")
(princ) );;;


 

 

Ah ouais, c'est cool ! :)

 

 

 

[Edité le 15/4/2006 par Dubloc]

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é