N° | Fonction | Catégorie | Version |
---|---|---|---|
BIG 03 | BiG_DeltaXYZ | Fonction Géométrique | 1.0 - Janvier 2007 |
But | Modifie les valeurs en X , Y et Z des coordonnées d'un point 3D |
Prototype | (BiG_DeltaXY Coord_Point Delta_enX Delta_enY Delta_enZ) |
Argument | Coord_Point - Coordonnées actuelles du point en X, Y (et Z) - Liste - Delta_enX - Distance à ajouter ou à retrancher en X - réel - Delta_enY - Distance à ajouter ou à retrancher en Y - réel - Delta_enZ - Distance à ajouter ou à retrancher en Z - réel - |
Retours | Les nouvelles coordonnées du point. - liste - |
Var. globales | Néant |
Description | Ajoute ou retranche une valeur aux 3 coordonnées d'un point 3D. |
Notes | Si la coordonnée en Z n'existe pas, elle est considérée égale à 0.0 Utiliser la fonction BiG_DeltaXY pour modifier des points uniquement en 2 dimensions. |
Exemples | Command:(setq Pt1 (Getpoint)) ; Cliquer un 1er point à l'écran (170.0 110.0 0.0) ; Coordonnées XYZ du point. (BiG_DeltaXYZ Pt1 -50 15 10) retourne (120.0 125.5 10.0) Autre exemple Command: (setq Pt2 '(200.0 100.0)) (200.0 100.0) ; Coordonnées XY Il n'y a pas de coordonnées en Z - (BiG_DeltaXYZ Pt2 20 -50 30) retourne (220.0 50.0 30.0) En cas d'erreur : (BiG_DeltaXYZ Pt3 20 -50 30) retourne nil Pt3 est nil (BiG_DeltaXYZ 100 20 -50 30) retourne nil Le 1er argument doit être une liste. (BiG_DeltaXYZ Pt2 aa -50 30) retourne nil. aa n'est pas défini |
1- (defun BiG_DeltaXYZ (*Pt1 *DeltaX *DeltaY *DeltaZ) 2- (if (and *Pt1 *DeltaX *DeltaY *DeltaZ 3- (listp *Pt1) 4- ) 5- (if (caddr *Pt1) 6- (list 7- (+ (car *Pt1) *DeltaX) 8- (+ (cadr *Pt1) *DeltaY) 9- (+ (caddr *Pt1) *DeltaZ) 10- ) 11- (list 12- (+ (car *Pt1) *DeltaX) 13- (+ (cadr *Pt1) *DeltaY) 14- (+ *DeltaZ) 15- ) 16- ) 17- ) 18- )
Ligne 2 : Si les arguments *Pt1, *DeltaX, *DeltaY et *DeltaZ ne sont pas nuls, Ligne 3 : et si *Pt1 est bien une liste, Ligne 5 : Alors si la coordonnée en Z existe, Ligne 6 : Regroupe dans une liste, Ligne 7 : l'addition de *DeltaX avec le 1er élément de Pt1 Ligne 8 : l'addition de *DeltaY avec le 2ème élément de Pt1 Ligne 9 : l'addition de *DeltaZ avec le 3ème élément de Pt1. Ligne 10 : sinon (s'il n'y a pas de coordonnée en Z) Ligne 11 : Regroupe dans une liste, Ligne 12 : l'addition de *DeltaX avec le 1er élément de Pt1 Ligne 13 : l'addition de *DeltaY avec le 2ème élément de Pt1; Ligne 14 : *DeltaZ