Les fonctions: GET-SCALE.LSP

;************************************************************************
;* [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))
;---------------------------------------------------------------------------