;************************************************************************
;* [CMFAO] AME 6602 ACQUISITION DES DONNÉES SPATIALES*
;* [GRCAO] Claude Parisel*
;* Mars 1999*
;************************************************************************
;------------------------------------------------------------------------
;GET-SCALE
; matrice de changement d'échelle
;------------------------------------------------------------------------
; SChoix de l'usager
; R1Indice de boucle
; GChangement d'échelle Globale
; RXRéponse sur le changement d'échelle en X
; SXChangement d'échelle en X
; RYRéponse sur le changement d'échelle en Y
; SYChangement d'échelle en Y
; RZRéponse sur le changement d'échelle en Z
; SZChangement d'échelle en Z
;------------------------------------------------------------------------
; RETOUR:
; MATSCALEMatrice de changement d'échelle
;------------------------------------------------------------------------
(defun get-scale ( / s r1 g rx ry rz sx sy sz)
(setq r1 1)
(while
(= r1 1)
(setq s
(strcase
(getstring "\nVoulez
vous un changement d'échelle [Global][Local]<G>: ")
)
)
(cond
(
(= s "G")
(setq r1 0)
(setq g (getreal "Valeur
du changement d'échelle: "))
(setq matscale (make-scale
s g))
)
(
(= s "L")
(setq rx (getreal "Valeur
en X <1>: "))
(if (/= rx nil)(setq sx rx)(setq
sx 1.0))
(setq ry (getreal (strcat
"Valeur en Y <" (rtos sx 2 1) ">: ")))
(if (/= ry nil)(setq sy ry)(setq
sy sx))
(setq rz (getreal (strcat
"Valeur en Z <" (rtos sy 2 1) ">: ")))
(if (/= rz nil)(setq sz rz)(setq
sz sy))
(setq r1 0)
(setq matscale (make-scale
s (list sx sy sz)))
)
)
)
;Retour
matscale
)
;--------------------------------------------------------------------------
;
Exemple:
; Command: (get-scale)
; Voulez vous
un changement d'échelle [Global][Local]<G>: L
;
Valeur en X <1>: 2
;
Valeur en Y <2.0>: 3
;
Valeur en Z <3.0>:
1
;
((2.0 0.0 0.0 0.0) (0.0 3.0 0.0 0.0) (0.0 0.0 1.0 0.0) (0.0 0.0 0.0
1.0))
;---------------------------------------------------------------------------
|