Aller au contenu

zebulon_

Membres
  • Compteur de contenus

    1 489
  • Inscription

  • Dernière visite

  • Jours gagnés

    19

Tout ce qui a été posté par zebulon_

  1. zebulon_

    Boite de dialogue PURGER

    Bonjour, version 2014 que j'utilise, ça marche très bien, mais ça tu le sais déjà. Peut-être est-ce dû à un problème de traduction et que le programme soit resté sur un Close au lieu d'un Fermer ? Par ailleurs, ça m'étonnerait que cette boite de dialogue ait été réalisée avec dcl. Vu la difficulté qu'on a à rajouter une image dans une boite dcl, je vois mal comment on aurait pu faire une liste déroulante qui intègre des icônes. Cela doit donc être plus compliqué à corriger que d'aller juste modifier un AutoCAD.dcl quelque part. Amicalement Vincent
  2. Bonjour, (defun c:sensobj (/ e obj L TF NBPAS PAS PK sensobj_fl) (vl-load-com) (defun sensobj_fl (PK / PT PM fder PTDERIV PT1 PT2) (setq PT (vlax-curve-getpointatdist obj PK)) (setq PM (vlax-curve-GetParamAtPoint obj PT)) (setq fder (vlax-curve-getfirstderiv obj PM)) (setq PTDERIV (mapcar '+ PT fder)) (setq PT1 (polar PT (+ (angle PT PTDERIV) (* 3 (/ pi 4))) TF)) (setq PT2 (polar PT (- (angle PT PTDERIV) (* 3 (/ pi 4))) TF)) ;; les points sont à mettre en SCU local pour grvecs (grvecs (mapcar '(lambda (ELEM) (trans ELEM 0 1)) (list PT1 PT PT PT2))) ) (if (setq e (entsel)) (progn (setq obj (vlax-ename->vla-object (car e))) (if (vlax-property-available-p obj 'Length) (progn (setq L (vla-get-length obj)) (setq TF (/ (getvar "VIEWSIZE") 50.0)) (setq NBPAS (+ (fix (/ L TF)) 1)) (setq PAS (/ L NBPAS)) (setq PK 0) (while (< PK L) (sensobj_fl PK) (setq PK (+ PK PAS)) ) (sensobj_fl L) ) (alert "Longueur non disponible") ) ) ) (princ) ) j'ai corrigé une boulette. Cela ne marchait bien qu'en scu général. En effet grvecs dessine ses segments en scu local alors que les fonctions vlax-curve renvoient des coordonnées en scu général. Il y a bien un paramètre [trans] dans grvecs, mais je n'ai pas su comment l'utiliser et je suis passé par une fonction (trans PT 0 1) Amicalement Vincent
  3. Bonjour, Selon moi, il manque une chose importante : si tu veux utiliser des boutons de radio, il faut aussi mettre une clé aux deux radio_row dans lesquelles on pourra récupérer le nom de la clé du bouton choisi par l'utilisateur. Ensuite, je ne suis pas convaincu de la nécessité de mettre des row un peu partout. Il faudrait aussi soigner la présentation du dcl, avec des indentations, pour en faciliter la lecture. Je sais bien que c'est une hérésie de définir un objet graphique de façon littérale, mais c'est comme ça... Je pense aussi que l'utilisation de popup_list seraient une variante intéressante à étudier (voir l'exemple que j'ai fourni ci-dessus), mais bon, restons en aux boutons de radio pour l'instant. projetbis : dialog { label = "Paramètres du tracé routier - Section Courante"; : edit_box{ label = "&Nom de la route :" ; /*edit_width = 6;*/ /*fixed_width = true;*/ key = nom; } spacer_1; : radio_row { label = "&Vitesse :"; key = vitesse; : radio_button { label = "70"; key = soixantedix; } : radio_button { label = "90"; key=quatrevingtdix; } : radio_button { label = "110"; key = centdix; } : radio_button { label = "130"; key = centtrente; } } spacer_1; : radio_row { label = "&Géométrie de la route :"; key = geom; : radio_button { label = "Alignement droit"; key = droit; } : radio_button { label = "Courbe"; key=courbe; } } spacer_1; : edit_box { label = "&Distance entre chaque point d'observation (en m) :" ; /*edit_width = 6;*/ /*fixed_width = true;*/ key = pas; } spacer_1; : edit_box { label = "&Renseigner la largeur de la voie concernée par le programme (en m) :" ; /*edit_width = 6;*/ /*fixed_width = true;*/ key = lar; } spacer_1; ok_cancel; errtile; } (defun C:project (/ dcl_id what_next init_project do_test_project do_accept_project project_main) (defun init_project () (if (not PROJECT_NOM) (setq PROJECT_NOM "") ) (if (not PROJECT_VITESSE) (setq PROJECT_VITESSE "soixantedix") ) (if (not PROJECT_GEOM) (setq PROJECT_GEOM "droit") ) (if (not PROJECT_PAS) (setq PROJECT_PAS "") ) (if (not PROJECT_LAR) (setq PROJECT_LAR "") ) ) (defun do_test_project (MSG VALEUR) (if (not (> (distof VALEUR) 0)) (set_tile "error" MSG) (set_tile "error" "") ) ) (defun do_accept_project () (setq PROJECT_NOM (get_tile "nom")) (setq PROJECT_VITESSE (get_tile "vitesse")) (setq PROJECT_GEOM (get_tile "geom")) (setq PROJECT_PAS (get_tile "pas")) (setq PROJECT_LAR (get_tile "lar")) ;; on peut faire ici des tests sur le contenu des variables si on ne veut pas accepter tout et n'importe quoi avant de faire un done_dialog ;; par exemple pour "pas" et "lar" on ne veut que des réels positifs (if (not (> (distof PROJECT_PAS) 0)) (set_tile "error" "Distance incorrecte") (if (not (> (distof PROJECT_LAR) 0)) (set_tile "error" "Largeur incorrecte") (done_dialog 2) ) ) ) (defun project_main () (alert (strcat "Le nom du projet : " PROJECT_NOM "\nLa vitesse : " PROJECT_VITESSE "\nLa géométrie : " PROJECT_GEOM "\nLa distance : " PROJECT_PAS " m" "\nLa largeur : " PROJECT_LAR " m" ) ) ) (init_project) (setq dcl_id (load_dialog "projetbisdcl.dcl")) (if (not (new_dialog "projetbis" dcl_id)) (exit)) (set_tile "nom" PROJECT_NOM) (set_tile "vitesse" PROJECT_VITESSE) (set_tile "geom" PROJECT_GEOM) (set_tile "pas" PROJECT_PAS) (set_tile "lar" PROJECT_LAR) (action_tile "pas" "(do_test_project \"Distance incorrecte\" $value)") (action_tile "lar" "(do_test_project \"Largeur incorrecte\" $value)") (action_tile "accept" "(do_accept_project)") (action_tile "cancel" "(done_dialog 0)") (setq what_next (start_dialog)) (unload_dialog dcl_id) (if (= what_next 2) ;OK (project_main) ) (princ) ) Amicalement Vincent
  4. (defun c:textcol (/ listcol dcl_id What_next) (setq listcol '("Rouge" "Vert" "Jaune" "Bleu")) ; initialisation variable générale ; permet de garder la valeur précédente (if (not COL_TEXTCOL) (setq COL_TEXTCOL "0")) ;ouverture de la boîte de dialogue (setq dcl_id (load_dialog "textcol.dcl")) (if (not (new_dialog "textcol" dcl_id)) (exit)) (start_list "col") (mapcar 'add_list listcol) (end_list) ; initialise à la valeur précédente ou à "0" si elle n'existe pas (set_tile "col" COL_TEXTCOL) (action_tile "col" "(setq COL_TEXTCOL $value)") (action_tile "accept" "(done_dialog 2)") (action_tile "cancel" "(done_dialog 0)") (setq What_next (start_dialog)) (unload_dialog dcl_id) (cond ((= what_next 2) (alert (strcat "C'est le " (nth (atoi COL_TEXTCOL) listcol)))) ((= what_next 0) (alert "Echap")) ) (princ) ) textcol : dialog { label = "Texte en couleur"; : popup_list { key = col; } spacer_1; ok_cancel; } Amicalement Vincent
  5. Bonne année 2016 (aïe, ça va bientôt me faire 1/2 siècle...) à tous, remplie de rencontres qui enrichissent mutuellement. Amicalement Vincent
  6. zebulon_

    ENROBES GRENAILLES

    Bonjour, une conférence qui concerne l'éducation : incultures, expliquée grâce à la métaphore du parapente... Franck Lepage est absolument génial. Amicalement Vincent
  7. zebulon_

    ENROBES GRENAILLES

    Bonjour, je crois que cela ne date pas d'aujourd'hui. Quand j'ai commencé à travailler, j'avais un beau diplôme de génie-civil, mais je n'y connaissais absolument rien, même pas le vocabulaire de base du métier, dans la branche dans laquelle j'ai été embauché, à savoir les ouvrages d'art. En effet, ma formation était plus axée "bâtiment". Tout en me cassant la figure de temps en temps, j'ai appris à marcher avec l'aide des anciens, qui m'ont transmis peu à peu leur expérience. Pour autant, je ne crois pas avoir perdu mon temps sur les bancs de l'école, cela donne quand même des bases et un minimum de méthodes. C'est un peu comme quand on passe le permis, on nous donne le droit de circuler sur la voie publique au volant d'une voiture et on nous colle une grand A (ou un 90, pour les vieux de la vieille) sur le cul pour prévenir les autres usagers que ce n'est pas encore génial. L'innovation majeure de ces dernières années étant sans aucun doute la conduite accompagnée. L'important pour les jeunes de toutes les générations est de trouver des maîtres. Si le jeune est curieux, attentif et un minimum bosseur, il apprendra vite à marcher tout seul. Et, c'est l'objectif de tout bon maître, amener son élève à courir un jour plus vite que lui. Au judo, lorsque le senseï donne une nouvelle ceinture à son élève, le maître a le droit de le faire tomber, c'est la coutume. C'est aussi que le senseï en profite tant qu'il peut encore... Un jeune qui part en V.I.E. en Afrique, cela signifie qu'il a un esprit ouvert et qu'il sait saisir les bonnes occasions pour progresser. Même si son judo est encore un peu hésitant, avec un senseï qui est ceinture rouge et blanche 8ème dan, il ne pourra que progresser rapidement. L'avenir nous le dira ! Amicalement Vincent
  8. Bonjour, Je suis sûr que c'est possible au moins à partir de la version 2011. Mais il semblerais que ce soit aussi possible avec la 2009, à condition d'avoir installé le "Bonus Pack1"... Voir ce lien Amicalement Vincent
  9. Bonjour, ou un clic droit après avoir sélectionné une polyligne. On a un menu contextuel, avec l'option "polyligne", à partir duquel on retrouve les options les plus utiles de la commande PEDIT, notamment l'inversion, comme l'indique très justement didier. Je savais bien que je réinventais l'eau chaude, mais je n'ai pas Covadis et je n'ai rien trouvé sur un autocad de base. Personnellement, j'en ai eu besoin pour du ferraillage : des aciers un peu compliqués avec des variations, représentés chacun par 2 polylignes épaisses (le plus grand acier et le plus petit). Tête en l'air, j'ai dessiné le plus petit acier dans un sens et le plus grand dans l'autre. Forcément, la variation des longueurs de chaque segment était fausse ! D'où l'importance de voir le sens de la polyligne et être sûr que tous les aciers de la même famille ont été construits dans le même sens. Amicalement Vincent
  10. Bonjour, quelques fois, le sens d'une polyligne est importante, mais comment faire pour le visualiser simplement ? Je n'ai rien trouvé de transcendant, j'ai sans doute mal cherché... J'ai essayé de pondre quelque chose de mon cru qui dessine des petites flèches le long de la polyligne pour en indiquer son sens. Les fèches sont dessinées avec grvecs et disparaissent après un redess ou une fonction de zoom quelconque. (defun c:sensobj (/ e obj L TF NBPAS PAS PK sensobj_fl) (vl-load-com) (defun sensobj_fl (PK / PT PM fder PTDERIV PT1 PT2) (setq PT (vlax-curve-getpointatdist obj PK)) (setq PM (vlax-curve-GetParamAtPoint obj PT)) (setq fder (vlax-curve-getfirstderiv obj PM)) (setq PTDERIV (mapcar '+ PT fder)) (setq PT1 (polar PT (+ (angle PT PTDERIV) (* 3 (/ pi 4))) TF)) (setq PT2 (polar PT (- (angle PT PTDERIV) (* 3 (/ pi 4))) TF)) ;; les points sont à mettre en SCU local pour grvecs (grvecs (mapcar '(lambda (ELEM) (trans ELEM 0 1)) (list PT1 PT PT PT2))) ) (if (setq e (entsel)) (progn (setq obj (vlax-ename->vla-object (car e))) (if (vlax-property-available-p obj 'Length) (progn (setq L (vla-get-length obj)) (setq TF (/ (getvar "VIEWSIZE") 50.0)) (setq NBPAS (+ (fix (/ L TF)) 1)) (setq PAS (/ L NBPAS)) (setq PK 0) (while (< PK L) (sensobj_fl PK) (setq PK (+ PK PAS)) ) (sensobj_fl L) ) (alert "Longueur non disponible") ) ) ) (princ) ) Amicalement Vincent
  11. Voir ici (defun C:SMASH ( ) (command "_.move" "_all" "" '(0 0 1e99) "" "_.move" "_p" "" '(0 0 -1e99) "") (princ) ) Amicalement Vincent
  12. pourquoi pas, après tout ? Amicalement Vincent
  13. Bonsoir, La réponse s'explique par le fait que tu tentes d'utiliser une fonction qui permet d'écrire du texte (princ) avec la variable FichierLu qui n'est pas de type texte, mais de type fichier. C'est la fonction (getfiled) qui renvoie du texte ou nil, pas la fonction (open) qui, elle, renvoie un "descripteur" de fichier qui n'est utilisable que par les autres fonctions d'entrée/sortie comme (close ...) (read-line ...) Par conséquent, si tu veux afficher le nom du fichier choisi par l'utilisateur, il faut récupérer la variable à la sortie de (getfiled ) et faire un princ puis un open de cette variable... si elle n'est pas nil. Pour read, voir ce fil qui explique un peu comme il est facile de transformer du texte en liste. Amicalement Vincent
  14. Bonjour, je pense que tu t'en tireras avec la fonction read. Dans un premier temps, tu fais un fichier texte sauvegardé dans un répertoire où Autocad recherche les fichiers de support. Il contiendra la liste des paires pointées. Je pense que le plus simple est de mettre une paire par ligne. ("1COMM" . "CAD_LIM_COMMUN") ("1DEPART" . "CAD_LIM_DEPART") ("1ETAT" . "CAD_LIM_ETAT") ("1LIEUDIT" . "CAD_LIM_LIEUDIT") ("1PARCELLE" . "CAD_LIM_PARC") Ensuite dans le lisp, tu ouvres le fichier avec la commande open. Findfile n'a pas besoin de chemin si le fichier est dans un répertoire inclus dans la liste des chemins de recherche de fichiers de support. (setq FCALQUE (findfile "cadastre.lst")) (setq F (open FCALQUE "r")) puis tu fais un read-line de chaque ligne et tu mets ça bout à bout. Ce sera du texte, puisque cela provient d'un fichier de ce type. (setq L "") (while (setq LIGNE (read-line F)) (setq L (strcat L LIGNE)) ) puis tu refermes le fichier. (close F) A ce moment, tu disposes de la variable L qui contient la liste de paires pointées, mais sous forme texte. Il suffit d'utiliser la fonction read, puisque (read "(a b c)")->(A B C), pour transformer ce texte en liste : (read (strcat "(" L ")")) Ensuite on pourra éventuellement s'intéresser à rajouter un contrôle dans le while qui permettrait de supprimer des commentaires après des ; (vl-string-position ...) et (substr ...) ou de demander à l'utilisateur de choisir le fichier qu'il veut ouvrir (getfiled...). Je n'ai pas les moyens de vérifier si ce que j'écris fonctionne : je n'ai pas d'autocad sur le pc que j'utilise à l'instant. Mais cela peut déjà être une piste de recherche. Amicalement Vincent PS : si cela t'a aidé, tu pourras dire que je suis grand. Même si cela ne t'as pas aidé, tu pourras le dire aussi, cela ne sera pas faux du haut de mes 2m :) Mais l'adjectif "grand" en français est l'un des rares pour lequel la position par rapport au nom qu'il qualifie est significative. En effet, un homme grand n'est pas forcément un grand homme... contrairement à bonnet blanc et blanc bonnet :D
  15. Ah oui, bien sûr. On ne peut pas tout avoir :P Amicalement Vincent
  16. Je ne connaisais pas la formule de Binet, mais cela semble être imbattable en terme de vitesse principalement pour des n grands. En effet, il n'y a ni itération ni récursivité puisqu'il n'y a pas besoin de connaitre les 2 termes précédents pour trouver celui qui nous intéresse. En prime, on y retrouve le nombre d'or. Ma contribution, en utilisant une liste (defun fib (n / lfib) (cond ((zerop n) (setq lfib '(0))) (T (setq lfib '(1 0)) (repeat (- n 1) (setq lfib (cons (+ (car lfib) (cadr lfib)) lfib)) ) ) ) (car lfib) ) on pourrait aussi ne pas garder toute la liste, mais uniquement les 2 derniers termes dans la boucle repeat : (setq lfib (list (+ (car lfib) (cadr lfib)) (car lfib))) Amicalement Vincent
  17. Bonjour lilli, en bâtiment, je suis un peu pauvre... J'ai travaillé sur un gros projet "bâtiment" en début d'année. Il s'agissait d'un bâtiment neuf qui a été très mal conçu au départ et qui se fissurait de partout. Un énorme porte-à-faux commençait à descendre en même temps que l'entreprise décoffrait... Du coup, le BE s'est fait virer et ce sont les assurances qui ont pris le relai. Ma mission a été de renforcer le bâtiment, mais avec des moyens d'ouvrages d'art : câbles de précontrainte horizontaux dans de nouvelles poutres en toiture et barres filetées précontraintes de type Macalloy verticales ou des câbles précontraints verticaux pour aller chercher une bonne fondation... Plus un renforcement des poteaux (aucun ne plombait d'un étage à l'autre ...) Mais je ne peux pas t'en dire plus pour l'instant, compte tenu que le dossier est encore "chaud"... Le maître d'ouvrage (public...) ne souhaite pas ébruiter que son bâtiment a connu quelques péripéties... D'ici un ou deux ans, on pourra en reparler si jamais tu fais un cours de pathologie des bâtiments, au chapitre "Ce qu'il ne faut pas faire". Amicalement Vincent
  18. Le bon coin te permet également d'acquérir des livres pour pas cher. Certains sont un peu anciens, mais le principe reste le même, malgré les changements de règlementations Amicalement Vincent
  19. Bonjour lili, cimbeton est un site qui contient une collection très complète d'ouvrages concernant les ciments et les bétons. Les documents ont l'avantage d'être au format pdf et je pense que tu trouveras ton bonheur dans cette bibliothèque. Le document T46 peut, par exemple, être une base assez solide (c'est ce qu'on attend du béton armé...) pour une introduction à un cours sur l'armature du béton. Et il y a plein d'autres pdf à ta disposition, mis en ligne par le Centre d'Information sur le Ciment et ses Applications. Si tu ne connais pas, c'est un site qui mérite un "marque-page". Plus les plans que je t'ai envoyé il y a quelques temps et qui ont sans doute déjà servis. Amicalement Vincent
  20. Bienvenu au club ! Amicalement Vincent
  21. Bonjour, (initget "T1 T2 T3 T4 T5 P1 P2") (setq REP (getkword "\nType de bordure [T1/T2/T3/T4/T5/P1/P2] <T2> : ")) (if (not rep) (setq rep "T2")) (cond ((= REP "T1") (setq EP 0.12)) ((= REP "T2") (setq EP 0.15)) ((= REP "T3") (setq EP 0.17)) ((= REP "T4") (setq EP 0.20)) ((= REP "T5") (setq EP 0.24)) ((= REP "P1") (setq EP 0.08)) ((= REP "P2") (setq EP 0.06)) ) en utilisant initget et getkword, ce n'est pas beaucoup plus difficile pour avoir un menu déroulant. Après, l'utilisation du cond permet, en fonction de la réponse REP donnée par l'utilisateur, d'avoir une variable EP qui contient l'épaisseur qui correspond. Enfin, il suffit d'injecter cette variable EP dans la commande offset à la place de la constante 0.1 Amicalement Vincent
  22. Bonjour, C'est le principe de la hachure. Le modèle est encore trop pauvre pour tromper l'observateur. Dans le commerce, il existe du papier peint "brique" ou même "pierre naturelle". Le principe est le même et le motif, plus grand, est ainsi fait pour qu'on ne remarque pas à première vue le clonage. Ici, il y a partout un clonage de motif, mais on est incapable de le détecter d'emblée, parce que le motif est grand. Mais, il y a un clonage, c'est certain ! je ne suis pas infographiste, mais projeteur. Ce que je dessine, on le réalise tel que je le dessine et le chantier me demande une précision qui leur permet de travailler sereinement. Evidemment, de temps en temps, "ça se démerde sur le chantier", mais on évite cela le plus possible. Forcément, il y a une différence culturelle importante entre "faire une image" pour vendre à un client et "faire un plan" pour qu'il soit exécuté par des maçons. Ce qui m'amuse le plus, c'est quand on rajoute "image non contractuelle" sur une infographie, comme j'ai déjà vu faire. L'infographie que tu donnes en lien, je la trouve mal faite, avec des lignes de fuite fantaisistes sur les pavés. Cela donne quelque chose de complètement irréel et ce n'est pas la faute de l'infographie, mais de l'infographiste. J'en reviens toujours à ce que je disais au départ, ce n'est pas l'outil qui fait l'ouvrage mais bien l'ouvrier. Amicalement Vincent
  23. Bonjour, je ne suis pas vexé, je ne voyais tout juste pas de quoi tu devais te venger et où j'aurais pu être arrogant, même par logiciel interposé. Quant au dessin, plus on se donne de mal à faire le modèle, mieux cela représentera la réalité. Si le motif est petit, la répétition sera élevée et peu réaliste. Le modèle précédent est une seule rangée courbe qui se répète, donc assez pauvre. J'ai fait un autre modèle sur 2 rangées qui semble déjà plus réaliste. Ce n'est pas encore génial, mais il y a du mieux. Et je pense qu'un modèle qui intègre 5 ou 6 lignes sera parfaitement acceptable. Finalement, c'est comme le papier peint avec raccord... :) Amicalement Vincent PavArc.zip
  24. Bonjour paveur, Quand on dessine quelque chose qu'on ne connait pas, c'est plutôt normal que ce soit inexact. Ceci indépendamment du fait qu'on dessine à la main ou qu'on dessine avec un logiciel. Le "coup de sabre" incriminé peut être corrigé en faisant un modèle de hachurage plus grand avec des pavés mieux agencés sur plusieurs lignes, cela n'enlève rien à la méthode de dessin. Personnellement, j'ai commencé à dessiner à la main il y a fort longtemps et je me rappelle la condescendance des "vieux" dessinateurs qui se moquaient des petits jeunes comme moi qui voulaient mettre en oeuvre les outils assistés par ordinateur. Ils étaient persuadés que cela n'aboutirai jamais à rien de concret. Maintenant, le dernier dessinateur que je connais qui dessinait à la main a pris sa retraite il y a 10 ans. Mon métier, c'est de faire du coffrage et du ferraillage dans le domaine des ouvrages d'art et, sans le génie logiciel, c'est simple, on n'aurait pas de boulot. La DAO, dans le domaine des bureaux d'étude est devenu une nécéssité. Il est difficile de faire un plan DAO qui soit aussi "beau" qu'un plan à la main, mais je crois qu'on y arrive. Dans mon cas, je suis même sûr que mes plans actuels sont plus "beaux", agréables à lire et surtout plus précis que les plans que je faisais à la main. Je ne crois pas que des plans DAO soient plus "froids". Tout dépend aussi de celui qui fait le plan, plus que de l'outil qu'il utilise. Si on pisse trois traits sur un plan avec un Rotring, ce sera certainement plus froid qu'un plan DAO complet et bien réalisé. Avec la DAO, on est simplement plus productif. Et comme tout le monde est devenu plus productif en utilisant la DAO, si on continue de dessiner à la main, on n'est simplement plus dans le coup, sans parler des problèmes de transmissions de documents par voie numérique. Il y a pleins de métiers qui ont évolué de la même manière ces derniers 25 à 30 ans : de la secrétaire au pilote de ligne. C'est sûr que poser des pavés sera difficillement "robotisable". Quoique, on y serait sans doute déjà venu s'il y avait eu un marché plus important. Amicalement Vincent
  25. Merci pour ce complément professionnel ! Et comme je parle couramment l'allemand, les sites ont été très instructifs. Ci-joint les représentations en jpg. Amicalement Vincent
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité