Invité ingoenius Posté(e) le 10 avril 2006 Posté(e) le 10 avril 2006 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 )
Dubloc Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 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 :)
Tramber Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 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 ./__\. (.°=°.)
mikL44 Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 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]
Dubloc Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 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]
Dubloc Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 hé, comment vous faites pour avoir du "papier-peint" sous vos lignes de code ???
(gile) Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 Toutes les explications dans Menu principal (en haut à gauche) -> Support -> CADxp, le site, il y a un chapitre sur l'utilisation du BBCode. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 Patrick propose aussi un utilitaire pour Firefox ici Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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