bonuscad Posté(e) le 27 janvier 2005 Posté(e) le 27 janvier 2005 Je vous propose 3 routines pour créer des figure 2D simple (avec polyligne) . Si ces figures sont simples le programme l'a été un peut moins. J'ai voulu sophistiquer le mode dynamique avec la fonction (grread) qui n'accepte pas le mode des ACCROBJ la fonction (gr-osmode) ma permis de re-simuler ces mode d'accrochage. Tout commentaire sur ce code est le bienvenu. 1er (reprise de rectangle par centre) (defun gr-osmode (pt-i str-md / n pt md rap pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt56 pt67 pt78 pt85 one_o) (setq n (/ (cadr (getvar "screensize")) 5.0)) (setq pt (osnap pt-i str-md)) (while (and (eq (strlen (setq md (substr str-md 1 4))) 4) (not one_o)) (repeat 3 (setq rap (/ (getvar "viewsize") n) pt1 (list (- (car pt) rap) (- (cadr pt) rap) (caddr pt)) pt2 (list (+ (car pt) rap) (- (cadr pt) rap) (caddr pt)) pt3 (list (+ (car pt) rap) (+ (cadr pt) rap) (caddr pt)) pt4 (list (- (car pt) rap) (+ (cadr pt) rap) (caddr pt)) pt5 (list (car pt) (- (cadr pt) rap) (caddr pt)) pt6 (list (+ (car pt) rap) (cadr pt) (caddr pt)) pt7 (list (car pt) (+ (cadr pt) rap) (caddr pt)) pt8 (list (- (car pt) rap) (cadr pt) (caddr pt)) pt56 (polar pt (- (/ pi 4.0)) rap) pt67 (polar pt (/ pi 4.0) rap) pt78 (polar pt (- pi (/ pi 4.0)) rap) pt85 (polar pt (+ pi (/ pi 4.0)) rap) n (- n 16) ) (if (equal (osnap pt-i md) pt) (setq one_o T)) (cond ((and (eq "_end" md) one_o) (grdraw pt1 pt2 1) (grdraw pt2 pt3 1) (grdraw pt3 pt4 1) (grdraw pt4 pt1 1) ) ((and (eq "_mid" md) one_o) (grdraw pt1 pt2 1) (grdraw pt2 pt7 1) (grdraw pt7 pt1 1) ) ((and (eq "_cen" md) one_o) (grdraw pt5 pt56 1) (grdraw pt56 pt6 1) (grdraw pt6 pt67 1) (grdraw pt67 pt7 1) (grdraw pt7 pt78 1) (grdraw pt78 pt8 1) (grdraw pt8 pt85 1) (grdraw pt85 pt5 1) (grdraw pt5 pt7 7) (grdraw pt6 pt8 7) ) ((and (eq "_nod" md) one_o) (grdraw pt5 pt56 1) (grdraw pt56 pt6 1) (grdraw pt6 pt67 1) (grdraw pt67 pt7 1) (grdraw pt7 pt78 1) (grdraw pt78 pt8 1) (grdraw pt8 pt85 1) (grdraw pt85 pt5 1) (grdraw pt1 pt3 1) (grdraw pt2 pt4 1) ) ((and (eq "_qua" md) one_o) (grdraw pt5 pt6 1) (grdraw pt6 pt7 1) (grdraw pt7 pt8 1) (grdraw pt8 pt5 1) ) ((and (eq "_int" md) one_o) (grdraw pt1 pt3 1) (grdraw pt2 pt4 1) ) ((and (eq "_ins" md) one_o) (grdraw pt5 pt2 1) (grdraw pt2 pt6 1) (grdraw pt6 pt8 1) (grdraw pt8 pt4 1) (grdraw pt4 pt7 1) (grdraw pt7 pt5 1) ) ((and (eq "_per" md) one_o) (grdraw pt1 pt2 1) (grdraw pt1 pt4 1) (grdraw pt8 pt 1) (grdraw pt pt5 1) ) ((and (eq "_tan" md) one_o) (grdraw pt5 pt56 1) (grdraw pt56 pt6 1) (grdraw pt6 pt67 1) (grdraw pt67 pt7 1) (grdraw pt7 pt78 1) (grdraw pt78 pt8 1) (grdraw pt8 pt85 1) (grdraw pt85 pt5 1) (grdraw pt3 pt4 1) ) ((and (eq "_nea" md) one_o) (grdraw pt1 pt2 1) (grdraw pt2 pt4 1) (grdraw pt4 pt3 1) (grdraw pt3 pt1 1) ) ) ) (setq str-md (substr str-md 6) n (/ (cadr (getvar "screensize")) 5.0)) ) ) (defun c:rectang_cen ( / o mod ptx key pt_sup pt_inf l h f f2 e th w) (setq o (getvar "osmode")) (if (or (zerop o) (eq (boole 1 o 16384) 16384)) (setq mod "_none") (progn (setq mod "") (mapcar '(lambda (xi xs) (if (not (zerop (boole 1 o xi))) (if (zerop (strlen mod)) (setq mod (strcat mod xs)) (setq mod (strcat mod "," xs)) ) ) ) '(1 2 4 8 16 32 64 128 256 512) '("_end" "_mid" "_cen" "_nod" "_qua" "_int" "_ins" "_per" "_tan" "_nea") ) ) ) (initget 1 "COtes CHanfrein Elévation Raccord Hauteur Largeur _Dimensions Chamfer Elevation Fillet Thickness Width") (while (not (listp (setq ptx (getpoint "\nSpécifiez le point central ou [COtes/CHanfrein/Elévation/Raccord/Hauteur/Largeur]: ")))) (cond ((eq ptx "Dimensions") (setq l (getdist (strcat "\nSpécifiez la longueur des rectangles <" (rtos (getvar "USERR1")) ">:"))) (if l (setvar "USERR1" l) (setq l (getvar "USERR1"))) (setq h (getdist (strcat "\nSpécifiez la largeur des rectangles <" (rtos (getvar "USERR2")) ">:"))) (if h (setvar "USERR2" h) (setq h (getvar "USERR2"))) ) ((eq ptx "Chamfer") (setq f (getdist (strcat "\nSpécifiez l'écart du premier chanfrein des rectangles <" (rtos (getvar "CHAMFERA")) ">: "))) (if f (setvar "CHAMFERA" f)) (setq f2 (getdist (strcat "\nSpécifiez l'écart du deuxième chanfrein des rectangles <" (rtos (getvar "CHAMFERB")) ">: "))) (if f2 (setvar "CHAMFERB" f2)) (setvar "USERS1" "#CHAMFER") ) ((eq ptx "Elevation") (setq e (getdist (strcat "\nSpécifiez l'élévation des rectangles <" (rtos (getvar "ELEVATION")) ">: "))) (if e (setvar "ELEVATION" e)) ) ((eq ptx "Fillet") (setq f (getdist (strcat "\nSpécifiez le rayon du raccord des rectangles <" (rtos (getvar "FILLETRAD")) ">: ")) f2 nil) (if f (setvar "FILLETRAD" f)) (setvar "USERS1" "") ) ((eq ptx "Thickness") (setq th (getdist (strcat "\nSpécifiez la hauteur des rectangles <" (rtos (getvar "THICKNESS")) ">: "))) (if th (setvar "THICKNESS" th)) ) ((eq ptx "Width") (setq w (getdist (strcat "\nSpécifiez la largeur de ligne des rectangles <" (rtos (getvar "PLINEWID")) ">: "))) (if w (setvar "PLINEWID" w)) ) ) (initget 1 "COtes CHanfrein Elévation Raccord Hauteur Largeur _Dimensions Chamfer Elevation Fillet Thickness Width") ) (if (and (not l) (not h)) (progn (princ "\nSpécifiez un coin: \n") (while (and (not (member (setq key (grread T 4 0)) '((2 13) (2 32)))) (/= (car key) 3)) (cond ((eq (car key) 5) (setq pt_sup (cadr key) pt_inf (polar ptx (+ (angle ptx pt_sup) pi) (distance ptx pt_sup)) ) (redraw) (if (and (/= mod "_none") (osnap pt_sup mod)) (gr-osmode pt_sup mod) ) (grvecs (list 7 ptx pt_sup 7 pt_inf (list (car pt_sup) (cadr pt_inf)) 7 (list (car pt_sup) (cadr pt_inf)) pt_sup 7 pt_sup (list (car pt_inf) (cadr pt_sup)) 7 (list (car pt_inf) (cadr pt_sup)) pt_inf ) ) ) (T (setq pt_inf nil pt_sup nil)) ) ) (redraw) ) (setq pt_inf (list (- (car ptx) (/ l 2.0)) (- (cadr ptx) (/ h 2.0)) (caddr ptx)) pt_sup (list (+ (car ptx) (/ l 2.0)) (+ (cadr ptx) (/ h 2.0)) (caddr ptx)) ) ) (setq e (getvar "ELEVATION") th (getvar "THICKNESS") w (getvar "PLINEWID")) (if (eq (getvar "USERS1") "#CHAMFER") (setq f (getvar "CHAMFERA") f2 (getvar "CHAMFERB")) (setq f (getvar "FILLETRAD") f2 nil)) (cond ((and pt_inf pt_sup) (if (osnap pt_sup mod) (setq pt_sup (osnap pt_sup mod) pt_inf (polar ptx (+ (angle ptx pt_sup) pi) (distance ptx pt_sup)) ) ) (setvar "USERR1" (distance pt_inf (list (car pt_sup) (cadr pt_inf) (caddr pt_inf)))) (setvar "USERR2" (distance (list (car pt_sup) (cadr pt_inf) (caddr pt_sup)) pt_sup)) (setvar "osmode" 0) (setvar "cmdecho" 0) (command "_.rectangle") (cond ((and f f2) (command "_chamfer" f f2) ) ((and f (not f2)) (command "_fillet" f) ) ) (if e (command "_elevation" e)) (if th (command "_thickness" th)) (if w (command "_width" w)) (command pt_inf pt_sup) (setvar "osmode" o) (setvar "cmdecho" 1) (command "_.rotate" (entlast) "" "_none" ptx) ) ) (prin1) ) 2eme LOSANGE (defun gr-osmode (pt-i str-md / n pt md rap pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt56 pt67 pt78 pt85 one_o) (setq n (/ (cadr (getvar "screensize")) 5.0)) (setq pt (osnap pt-i str-md)) (while (and (eq (strlen (setq md (substr str-md 1 4))) 4) (not one_o)) (repeat 3 (setq rap (/ (getvar "viewsize") n) pt1 (list (- (car pt) rap) (- (cadr pt) rap) (caddr pt)) pt2 (list (+ (car pt) rap) (- (cadr pt) rap) (caddr pt)) pt3 (list (+ (car pt) rap) (+ (cadr pt) rap) (caddr pt)) pt4 (list (- (car pt) rap) (+ (cadr pt) rap) (caddr pt)) pt5 (list (car pt) (- (cadr pt) rap) (caddr pt)) pt6 (list (+ (car pt) rap) (cadr pt) (caddr pt)) pt7 (list (car pt) (+ (cadr pt) rap) (caddr pt)) pt8 (list (- (car pt) rap) (cadr pt) (caddr pt)) pt56 (polar pt (- (/ pi 4.0)) rap) pt67 (polar pt (/ pi 4.0) rap) pt78 (polar pt (- pi (/ pi 4.0)) rap) pt85 (polar pt (+ pi (/ pi 4.0)) rap) n (- n 16) ) (if (equal (osnap pt-i md) pt) (setq one_o T)) (cond ((and (eq "_end" md) one_o) (grdraw pt1 pt2 1) (grdraw pt2 pt3 1) (grdraw pt3 pt4 1) (grdraw pt4 pt1 1) ) ((and (eq "_mid" md) one_o) (grdraw pt1 pt2 1) (grdraw pt2 pt7 1) (grdraw pt7 pt1 1) ) ((and (eq "_cen" md) one_o) (grdraw pt5 pt56 1) (grdraw pt56 pt6 1) (grdraw pt6 pt67 1) (grdraw pt67 pt7 1) (grdraw pt7 pt78 1) (grdraw pt78 pt8 1) (grdraw pt8 pt85 1) (grdraw pt85 pt5 1) (grdraw pt5 pt7 7) (grdraw pt6 pt8 7) ) ((and (eq "_nod" md) one_o) (grdraw pt5 pt56 1) (grdraw pt56 pt6 1) (grdraw pt6 pt67 1) (grdraw pt67 pt7 1) (grdraw pt7 pt78 1) (grdraw pt78 pt8 1) (grdraw pt8 pt85 1) (grdraw pt85 pt5 1) (grdraw pt1 pt3 1) (grdraw pt2 pt4 1) ) ((and (eq "_qua" md) one_o) (grdraw pt5 pt6 1) (grdraw pt6 pt7 1) (grdraw pt7 pt8 1) (grdraw pt8 pt5 1) ) ((and (eq "_int" md) one_o) (grdraw pt1 pt3 1) (grdraw pt2 pt4 1) ) ((and (eq "_ins" md) one_o) (grdraw pt5 pt2 1) (grdraw pt2 pt6 1) (grdraw pt6 pt8 1) (grdraw pt8 pt4 1) (grdraw pt4 pt7 1) (grdraw pt7 pt5 1) ) ((and (eq "_per" md) one_o) (grdraw pt1 pt2 1) (grdraw pt1 pt4 1) (grdraw pt8 pt 1) (grdraw pt pt5 1) ) ((and (eq "_tan" md) one_o) (grdraw pt5 pt56 1) (grdraw pt56 pt6 1) (grdraw pt6 pt67 1) (grdraw pt67 pt7 1) (grdraw pt7 pt78 1) (grdraw pt78 pt8 1) (grdraw pt8 pt85 1) (grdraw pt85 pt5 1) (grdraw pt3 pt4 1) ) ((and (eq "_nea" md) one_o) (grdraw pt1 pt2 1) (grdraw pt2 pt4 1) (grdraw pt4 pt3 1) (grdraw pt3 pt1 1) ) ) ) (setq str-md (substr str-md 6) n (/ (cadr (getvar "screensize")) 5.0)) ) ) (defun c:losange_dyn ( / o mod ptx key loop value pt_sup pt1 pt2 pt_ext pt3 a_dir l h f f2 e th w) (setq o (getvar "osmode")) (if (or (zerop o) (eq (boole 1 o 16384) 16384)) (setq mod "_none") (progn (setq mod "") (mapcar '(lambda (xi xs) (if (not (zerop (boole 1 o xi))) (if (zerop (strlen mod)) (setq mod (strcat mod xs)) (setq mod (strcat mod "," xs)) ) ) ) '(1 2 4 8 16 32 64 128 256 512) '("_end" "_mid" "_cen" "_nod" "_qua" "_int" "_ins" "_per" "_tan" "_nea") ) ) ) (initget 1 "COtes CHanfrein Elévation Raccord Hauteur Largeur _Dimensions Chamfer Elevation Fillet Thickness Width") (while (not (listp (setq ptx (getpoint "\nSpécifiez le point central du losange ou [COtes/CHanfrein/Elévation/Raccord/Hauteur/Largeur]: ")))) (cond ((eq ptx "Dimensions") (setq l (getdist (strcat "\nLongueur de la 1ère diagonale <" (rtos (getvar "USERR1")) ">:"))) (if l (setvar "USERR1" l) (setq l (getvar "USERR1"))) (setq h (getdist (strcat "\nLongueur de la 2ème diagonale <" (rtos (getvar "USERR2")) ">:"))) (if h (setvar "USERR2" h) (setq h (getvar "USERR2"))) ) ((eq ptx "Chamfer") (setq f (getdist (strcat "\nSpécifiez l'écart du premier chanfrein des losanges <" (rtos (getvar "CHAMFERA")) ">: "))) (if f (setvar "CHAMFERA" f)) (setq f2 (getdist (strcat "\nSpécifiez l'écart du deuxième chanfrein des losanges <" (rtos (getvar "CHAMFERB")) ">: "))) (if f2 (setvar "CHAMFERB" f2)) (setvar "USERS1" "#CHAMFER") ) ((eq ptx "Elevation") (setq e (getdist (strcat "\nSpécifiez l'élévation des losanges <" (rtos (getvar "ELEVATION")) ">: "))) (if e (setvar "ELEVATION" e)) ) ((eq ptx "Fillet") (setq f (getdist (strcat "\nSpécifiez le rayon du raccord des losanges <" (rtos (getvar "FILLETRAD")) ">: ")) f2 nil) (if f (setvar "FILLETRAD" f)) (setvar "USERS1" "") ) ((eq ptx "Thickness") (setq th (getdist (strcat "\nSpécifiez la hauteur des losanges <" (rtos (getvar "THICKNESS")) ">: "))) (if th (setvar "THICKNESS" th)) ) ((eq ptx "Width") (setq w (getdist (strcat "\nSpécifiez la largeur de ligne des losanges <" (rtos (getvar "PLINEWID")) ">: "))) (if w (setvar "PLINEWID" w)) ) ) (initget 1 "COtes CHanfrein Elévation Raccord Hauteur Largeur _Dimensions Chamfer Elevation Fillet Thickness Width") ) (if (and (not l) (not h)) (progn (setq pt_ext (getpoint ptx (strcat "\nSpécifiez l'extrémité de la 1ère diagonale <" (rtos (/ (getvar "USERR1") 2.0)) ">:"))) (if (null pt_ext) (progn (setq pt_ext (osnap (cadr (grread T)) mod)) (if pt_ext (setq pt_ext (polar ptx (angle ptx pt_ext) (/ (getvar "USERR1") 2.0)) l (distance ptx pt_ext) a_dir (angle ptx pt_ext) ) (setq a_dir (angle ptx (cadr (grread T))) pt_ext (polar ptx a_dir (/ (getvar "USERR1") 2.0)) ) ) ) (setq l (distance ptx pt_ext) a_dir (angle ptx pt_ext) ) ) (if l (setvar "USERR1" (* l 2.0)) (setq l (/ (getvar "USERR1") 2.0))) (setq pt1 (polar ptx (angle pt_ext ptx) l) loop T value "") (princ (strcat "\nSpécifiez l'extrémité de la 2ème diagonale <" (rtos (/ (getvar "USERR2") 2.0)) ">: ")) (while (and (setq key (grread T 4 0)) (/= (car key) 3) loop) (cond ((eq (car key) 5) (setq pt_sup (cadr key) pt2 (polar ptx (+ (angle ptx pt_ext) (/ pi 2.0)) (distance ptx pt_sup)) pt3 (polar ptx (- (angle ptx pt_ext) (/ pi 2.0)) (distance ptx pt_sup)) ) (redraw) (if (and (/= mod "_none") (osnap pt_sup mod)) (gr-osmode pt_sup mod) ) (grvecs (list 7 ptx pt_sup 7 pt1 pt2 7 pt2 pt_ext 7 pt_ext pt3 7 pt3 pt1 ) ) ) ((or (member key '((2 13) (2 32))) (eq (car key) 25)) (if (and (not (zerop (strlen value))) (or (eq (type (read value)) 'INT) (eq (type (read value)) 'REAL))) (setvar "USERR2" (* (read value) 2.0)) ) (setq pt2 (polar ptx (+ (angle ptx pt_ext) (/ pi 2.0)) (/ (getvar "USERR2") 2.0)) pt3 (polar ptx (- (angle ptx pt_ext) (/ pi 2.0)) (/ (getvar "USERR2") 2.0)) loop nil pt_sup nil ) (princ "\n") ) (T (if (eq (cadr key) 8) (progn (setq value (substr value 1 (1- (strlen value)))) (princ (chr 8)) (princ (chr 32)) ) (setq value (strcat value (chr (cadr key)))) ) (princ (chr (cadr key))) ) ) ) (redraw) ) (setq pt1 (list (- (car ptx) (/ l 2.0)) (cadr ptx) (caddr ptx)) pt2 (list (car ptx) (+ (cadr ptx) (/ h 2.0)) (caddr ptx)) pt_ext (list (+ (car ptx) (/ l 2.0)) (cadr ptx) (caddr ptx)) pt3 (list (car ptx) (- (cadr ptx) (/ h 2.0)) (caddr ptx)) ) ) (setq e (getvar "ELEVATION") th (getvar "THICKNESS") w (getvar "PLINEWID")) (if (eq (getvar "USERS1") "#CHAMFER") (setq f (getvar "CHAMFERA") f2 (getvar "CHAMFERB")) (setq f (getvar "FILLETRAD") f2 nil)) (cond ((and pt1 pt2 pt_ext pt3) (if (and pt_sup (osnap pt_sup mod)) (setq pt_sup (osnap pt_sup mod) pt2 (polar ptx (+ (angle ptx pt_ext) (/ pi 2.0)) (distance ptx pt_sup)) pt3 (polar ptx (- (angle ptx pt_ext) (/ pi 2.0)) (distance ptx pt_sup)) ) ) (setvar "USERR1" (distance pt1 pt_ext)) (setvar "USERR2" (distance pt2 pt3)) (setvar "cmdecho" 0) (command "_.undo" "_group") (setvar "osmode" 0) (command "_.pline" pt1 "_width" w w pt2 pt_ext pt3 "_close") (cond ((and f f2) (setvar "trimmode" 1) (command "_.chamfer" "_polyline" (entlast)) ) ((and f (not f2)) (setvar "trimmode" 1) (command "_.fillet" "_polyline" (entlast)) ) ) (if e (command "_.change" (entlast) "" "_properties" "_elevation" e "")) (if th (command "_.change" (entlast) "" "_properties" "_thickness" th "")) (setvar "osmode" o) (command "_.undo" "_end") (setvar "cmdecho" 1) (if (not a_dir) (command "_.rotate" (entlast) "" "_none" ptx)) ) ) (prin1) ) 3eme OVALE (defun c:ovale ( / o ptx lw el th pt_def cc1 cc2 pt1 pt2 pt3 pt4) (setq o (getvar "osmode")) (initget 1 "Largeur ELevation EPaisseur _Width Elevation Thickness") (while (not (listp (setq ptx (getpoint "\nSpécifiez le point central de l'ovale ou [Largeur/ELévation/EPaisseur]: ")))) (cond ((eq ptx "Width") (initget 4) (setq lw (getdist (strcat "\nSpécifiez la largeur de la polyligne <" (rtos (getvar "PLINEWID")) ">: "))) (if lw (setvar "PLINEWID" lw)) ) ((eq ptx "Elevation") (setq el (getdist (strcat "\nSpécifiez l'élévation de l'ovale <" (rtos (getvar "ELEVATION")) ">: "))) (if el (setvar "ELEVATION" el)) ) ((eq ptx "Thickness") (setq th (getdist (strcat "\nSpécifiez l'épaisseur de l'ovale <" (rtos (getvar "THICKNESS")) ">: "))) (if th (setvar "THICKNESS" th)) ) ) (initget 1 "Largeur ELevation EPaisseur _Width Elevation Thickness") ) (initget 1) (setq pt_def (getpoint ptx "\nSpécifiez l'extrémité de la Demi-Longueur de l'ovale: ")) (setq lg (/ (* (distance (list (car ptx) (cadr ptx)) (list (car pt_def) (cadr pt_def))) 2.0) 3.0)) (setq cc1 (polar (list (car ptx) (cadr ptx)) (angle ptx pt_def) (/ lg 2.0))) (setq cc2 (polar (list (car ptx) (cadr ptx)) (angle pt_def ptx) (/ lg 2.0))) (setq pt1 (polar cc1 (- (angle ptx pt_def) (/ pi 3.0)) lg)) (setq pt2 (polar cc1 (+ (angle ptx pt_def) (/ pi 3.0)) lg)) (setq pt3 (polar cc2 (- (angle pt_def ptx) (/ pi 3.0)) lg)) (setq pt4 (polar cc2 (+ (angle pt_def ptx) (/ pi 3.0)) lg)) (setvar "osmode" 0) (setvar "cmdecho" 0) (command "_.pline" pt1 "_arc" "_ce" cc1 pt2 pt3 pt4 "_close") (setvar "osmode" o) (setvar "cmdecho" 1) (prin1) ) [Edité le 31/1/2005 par bonuscad] [Edité le 31/1/2005 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Tramber Posté(e) le 27 janvier 2005 Posté(e) le 27 janvier 2005 C'est de l'émulation d'ACCROBJ ?... J'avoue que j'ai du mal à comprendre,..le but....ce qui m'étonne aussi c'est que mes accrobj ont changé de couleurs, attends voir, je vais regarder comment ca se passe..... Sinon, big applause, c'est du top, comme d'habitude. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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