{"id":1224,"date":"2025-09-27T10:04:27","date_gmt":"2025-09-27T09:04:27","guid":{"rendered":"https:\/\/maximilien-charlier.be\/blog\/?p=1224"},"modified":"2025-09-28T17:48:48","modified_gmt":"2025-09-28T16:48:48","slug":"des-sous-verres-personnalise-pour-mon-mariage","status":"publish","type":"post","link":"https:\/\/maximilien-charlier.be\/blog\/2025\/09\/27\/des-sous-verres-personnalise-pour-mon-mariage\/","title":{"rendered":"Des sous-verres personnalis\u00e9 pour mon mariage."},"content":{"rendered":"<p data-start=\"247\" data-end=\"612\">Lors de la pr\u00e9paration de notre mariage, nous voulions que chaque d\u00e9tail soit personnel et significatif \u2014 jusque dans les sous-verres que nos invit\u00e9s emporteraient comme souvenir. Avec un peu de script Python, de bidouilles sur les fichiers et de d\u00e9coupe laser, j\u2019ai cr\u00e9\u00e9 des sous-verres grav\u00e9s au nom de chaque invit\u00e9. Un projet amusant, technique et \u00e9tonnamment gratifiant !\nUn grand merci au <a href=\"https:\/\/le-click.be\/fablab-parc-machines\/\">FabLab du Click<\/a> \u00e0 Mons de fournir un acc\u00e8s a ce type de machines!<\/p>\n<p data-start=\"614\" data-end=\"898\">Dans cet article, je vous explique tout le processus : de la g\u00e9n\u00e9ration des fichiers de conception avec Python jusqu\u2019\u00e0 leur pr\u00e9paration pour la d\u00e9coupe laser. Si vous avez un projet similaire, j\u2019esp\u00e8re que ce guide vous inspirera.<\/p>\n<hr data-start=\"900\" data-end=\"903\" \/>\n<h2 data-start=\"905\" data-end=\"958\">G\u00e9n\u00e9rer des fichiers EPS avec Python et Matplotlib<\/h2>\n<p data-start=\"960\" data-end=\"1124\">J\u2019ai d\u2019abord list\u00e9 tous les invit\u00e9s dans un fichier Excel, export\u00e9 ensuite en CSV. Chaque ligne contenait un seul nom, utilis\u00e9 pour personnaliser chaque sous-verre.<\/p>\n<p data-start=\"1126\" data-end=\"1209\">Avec Python, j\u2019ai \u00e9crit un script utilisant <strong data-start=\"1170\" data-end=\"1184\">matplotlib<\/strong> pour cr\u00e9er les mod\u00e8les :<\/p>\n<ul>\n    <li data-start=\"1213\" data-end=\"1274\">Chaque planche comporte une grille de 5 \u00d7 5 (25 sous-verres).\n\n<div id=\"attachment_1181\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1181\" width=\"900\" height=\"900\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/coaster-template.jpg\" class=\"attachment-900x1024 size-900x1024\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1181\" class=\"wp-caption-text\"><\/figure> Planche de sous verres g\u00e9n\u00e9r\u00e9 par Matplotlib.<\/p><\/div><\/li>\n<\/ul>\n<p data-start=\"1276\" data-end=\"1338\">Le script produit <strong data-start=\"1294\" data-end=\"1316\">trois fichiers EPS<\/strong> pour chaque planche :<\/p>\n<ul>\n    <li data-start=\"1341\" data-end=\"1395\">Les cercles repr\u00e9sentant le contour des sous-verres: utilis\u00e9 pour d\u00e9couper une plaque de contre plaqu\u00e9 qui servira ensuite \u00e0 positioner les sous-verres.<\/li>\n    <li data-start=\"1398\" data-end=\"1451\">Les noms des invit\u00e9s centr\u00e9s sur chaque sous-verre.<\/li>\n    <li data-start=\"1454\" data-end=\"1503\">Nos noms et la date du mariage pour l\u2019autre face.<\/li>\n<\/ul>\n<p data-start=\"1505\" data-end=\"1680\">Le texte est positionn\u00e9 avec <code data-start=\"1534\" data-end=\"1545\">ax.text()<\/code>. Les fichiers EPS contiennent les trac\u00e8s en vectoriels, mais ils ne sont directement compatibles avec le logiciel de la d\u00e9coupeuse laser.<\/p>\n<h3 data-start=\"1682\" data-end=\"1711\">Probl\u00e8me de chevauchement<\/h3>\n<p data-start=\"1712\" data-end=\"2150\">Les caract\u00e8res se superposent dans les fichiers EPS. Or, dans le logiciel de gravure, les zones qui se chevauchent s\u2019annulent et cr\u00e9ent des manques dans la gravure. Il faut donc fusionner tous les caract\u00e8res en un seul trac\u00e9 sans chevauchement.<br data-start=\"1956\" data-end=\"1959\">Pour cela, j\u2019ai utilis\u00e9 <strong data-start=\"1983\" data-end=\"2004\">Affinity Designer<\/strong> (alternative \u00e0 Illustrator) et <strong data-start=\"2036\" data-end=\"2048\">Inkscape<\/strong>. Peut-\u00eatre que tout est faisable uniquement dans Inkscape, mais je ne ma\u00eetrise pas assez ce logiciel.<\/p>\n<div id=\"attachment_1180\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1180\" width=\"900\" height=\"666\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/overllaping-characters.png\" class=\"attachment-900x758 size-900x758\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1180\" class=\"wp-caption-text\"><\/figure> Texte chevauch\u00e9<\/p><\/div>\n<hr data-start=\"2152\" data-end=\"2155\" \/>\n<h2 data-start=\"2157\" data-end=\"2204\">Pr\u00e9parer les fichiers dans Affinity Designer<\/h2>\n<p data-start=\"2206\" data-end=\"2450\">La machine de gravure laser (Gravograph LS1000) n\u2019accepte pas les fichiers EPS tels quels, surtout lorsque le texte est en plusieurs calques. J\u2019ai donc nettoy\u00e9 et converti les fichiers dans <strong data-start=\"2396\" data-end=\"2417\">Affinity Designer<\/strong> avant de les exporter \u00e0 nouveau.<\/p>\n<h3 data-start=\"2452\" data-end=\"2496\">Fusionner les lettres qui se chevauchent<\/h3>\n<p data-start=\"2497\" data-end=\"2591\">Quand <strong data-start=\"2503\" data-end=\"2517\">matplotlib<\/strong> cr\u00e9e du texte, chaque lettre est un calque distinct. Pour les fusionner :<\/p>\n<ol>\n    <li data-start=\"2595\" data-end=\"2621\">S\u00e9lectionner une lettre.<\/li>\n    <li data-start=\"2625\" data-end=\"2670\">Menu <strong data-start=\"2630\" data-end=\"2667\">Select &gt; Select Same &gt; Fill color<\/strong>.<\/li>\n    <li data-start=\"2674\" data-end=\"2752\">Dans la barre d\u2019outils, cliquer sur <strong data-start=\"2710\" data-end=\"2720\">Divide<\/strong>, puis <strong data-start=\"2727\" data-end=\"2734\">Add<\/strong> pour fusionner.<\/li>\n<\/ol>\n<h3 data-start=\"2796\" data-end=\"2826\">Exporter en EPS compatible<\/h3>\n<ol>\n    <li data-start=\"2830\" data-end=\"2855\">Menu <strong data-start=\"2835\" data-end=\"2852\">File &gt; Export<\/strong>.<\/li>\n    <li data-start=\"2859\" data-end=\"2877\">Choisir <strong data-start=\"2867\" data-end=\"2874\">EPS<\/strong>.<\/li>\n    <li data-start=\"2881\" data-end=\"2893\">Enregistrer.\n\n<div id=\"attachment_1199\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1199\" width=\"900\" height=\"678\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/export-eps-affinity-photo.png\" class=\"attachment-900x771 size-900x771\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1199\" class=\"wp-caption-text\"><\/figure> Export EPS dans Affinity Designer<\/p><\/div><\/li>\n<\/ol>\n<hr data-start=\"2895\" data-end=\"2898\" \/>\n<h2 data-start=\"2900\" data-end=\"2937\">Derni\u00e8re pr\u00e9paration dans Inkscape<\/h2>\n<p data-start=\"2939\" data-end=\"3031\">Pour garantir la compatibilit\u00e9 avec <strong data-start=\"2975\" data-end=\"2989\">GravoStyle<\/strong>, j\u2019ai enregistr\u00e9 les fichiers en <strong data-start=\"3023\" data-end=\"3030\">DXF<\/strong>.<\/p>\n<ol>\n\n<li>Ouvrir le fichier EPS dans <strong data-start=\"3063\" data-end=\"3075\">Inkscape<\/strong>.<\/li>\n\n<li>Zoomer pour v\u00e9rifier les d\u00e9tails.<\/li>\n\n<li>S\u00e9lectionner tous les \u00e9l\u00e9ments.<\/li>\n\n<li>Menu <strong data-start=\"3163\" data-end=\"3188\">Path &gt; Object to Path<\/strong> pour tout convertir en trac\u00e9s vectoriels.<\/li>\n\n<li>Exporter en <strong data-start=\"3248\" data-end=\"3255\">DXF<\/strong> :\n<ul>\n    <li data-start=\"3265\" data-end=\"3330\"><strong data-start=\"3265\" data-end=\"3327\">File &gt; Save As &gt; Desktop Cutting Plotter (AutoCAD DXF R14)<\/strong>.<\/li>\n    <li data-start=\"3336\" data-end=\"3347\">Options :\n<ol>\n    <li data-start=\"3355\" data-end=\"3390\">Type de spline : <strong data-start=\"3372\" data-end=\"3387\">ROBO-Master<\/strong>.<\/li>\n    <li data-start=\"3398\" data-end=\"3425\">Unit\u00e9s : <strong data-start=\"3407\" data-end=\"3422\">millim\u00e8tres<\/strong>.<\/li>\n    <li data-start=\"3433\" data-end=\"3461\">D\u00e9cocher <strong data-start=\"3442\" data-end=\"3460\">Use LWPOLYLINE<\/strong>.\n\n<div id=\"attachment_1200\" style=\"width: 988px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1200\" width=\"978\" height=\"842\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/export-dxf-inkscape.png\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1200\" class=\"wp-caption-text\"><\/figure> Export DXF Inkscape<\/p><\/div><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<hr data-start=\"3463\" data-end=\"3466\" \/>\n<h2 data-start=\"3468\" data-end=\"3514\">Gravure dans GravoStyle (Gravograph LS1000)<\/h2>\n<p data-start=\"3516\" data-end=\"3608\">Le FabLab propose plusieurs d\u00e9coupeuse laser, j&#8217;ai choisi d&#8217;utiliser la Gravograph LS1000 car elle offre la plus grande pr\u00e9cision (c&#8217;est leur plus ancienne machine, la mieux m\u00e9tris\u00e9e) ainsi qu&#8217;une grande surface de d\u00e9coupe (121x60cm). On m&#8217;a conseill\u00e9 d&#8217;utiliser maximum la moiti\u00e9 de cettte surface : 60x60cm car sinon la machine peut tomber en erreur ce que j&#8217;ai fait.<\/p>\n<p data-start=\"3516\" data-end=\"3608\">Une fois les fichiers DXF pr\u00eats, on peut les importer dans <strong data-start=\"3575\" data-end=\"3591\">GravoStyle 8<\/strong> pour la gravure.<\/p>\n<h3 data-start=\"3610\" data-end=\"3638\">Param\u00e8tres d\u2019importation<\/h3>\n<ul>\n    <li data-start=\"3641\" data-end=\"3804\">Taille de l\u2019espace de travail : <strong data-start=\"3673\" data-end=\"3687\">61 \u00d7 61 cm<\/strong>, marge <strong data-start=\"3695\" data-end=\"3700\">0<\/strong>. (La machine accepte th\u00e9oriquement 121 \u00d7 61 cm, mais au-del\u00e0 de 61 cm elle se met parfois en erreur.)<\/li>\n    <li data-start=\"3807\" data-end=\"3867\">Menu <strong data-start=\"3812\" data-end=\"3835\">LaserStyle &gt; Import<\/strong>, s\u00e9lectionner le fichier DXF.<\/li>\n    <li data-start=\"3870\" data-end=\"3925\">D\u00e9cocher <strong data-start=\"3879\" data-end=\"3895\">Merge layers<\/strong> et <strong data-start=\"3899\" data-end=\"3924\">Perform solid filling<\/strong>.<\/li>\n<\/ul>\n<h3 data-start=\"3927\" data-end=\"3957\">Pr\u00e9parer chaque sous-verre<\/h3>\n<ol>\n    <li data-start=\"3961\" data-end=\"4004\">Redimensionner (touche <strong data-start=\"3984\" data-end=\"3990\">F2<\/strong> deux fois).<\/li>\n    <li data-start=\"4008\" data-end=\"4065\">D\u00e9finir l\u2019origine au centre pour un placement uniforme.<\/li>\n    <li data-start=\"4069\" data-end=\"4111\">D\u00e9grouper les \u00e9l\u00e9ments (<strong data-start=\"4093\" data-end=\"4107\">D\u00e9combiner<\/strong>).<\/li>\n    <li data-start=\"4115\" data-end=\"4161\">Supprimer le cercle ext\u00e9rieur de chaque nom.<\/li>\n    <li data-start=\"4165\" data-end=\"4190\">Combiner les colonnes :\n<ul>\n    <li data-start=\"4196\" data-end=\"4231\">S\u00e9lectionner une colonne de noms.<\/li>\n    <li data-start=\"4237\" data-end=\"4285\">Cliquer sur <strong data-start=\"4249\" data-end=\"4282\">Combiner (Englobant\/Englob\u00e9s)<\/strong>.<\/li>\n    <li data-start=\"4291\" data-end=\"4389\">Attribuer une couleur unique \u00e0 chaque colonne (acc\u00e9l\u00e8re la gravure en r\u00e9duisant les d\u00e9placements).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<div id=\"attachment_1194\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1194\" width=\"900\" height=\"506\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/step1-select-row-2.png\" class=\"attachment-900x576 size-900x576\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1194\" class=\"wp-caption-text\"><\/figure> Selectionner les noms sous forme de colonnes<\/p><\/div>\n<div id=\"attachment_1195\" style=\"width: 450px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1195\" width=\"440\" height=\"152\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/step-2-combiner-englobant-2-e1749666426392.png\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1195\" class=\"wp-caption-text\"><\/figure> Combiner englobant<\/p><\/div>\n<div id=\"attachment_1196\" style=\"width: 291px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1196\" width=\"281\" height=\"172\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/step-3-combiner-2.png\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1196\" class=\"wp-caption-text\"><\/figure> 5.2. Combiner<\/p><\/div>\n<h3 data-start=\"4391\" data-end=\"4421\">R\u00e9glages laser recommand\u00e9s<\/h3>\n<ol>\n    <li data-start=\"4425\" data-end=\"4447\"><strong data-start=\"4425\" data-end=\"4438\">Puissance<\/strong> : 90 %<\/li>\n    <li data-start=\"4451\" data-end=\"4471\"><strong data-start=\"4451\" data-end=\"4462\">Vitesse<\/strong> : 10 %<\/li>\n    <li data-start=\"4475\" data-end=\"4503\"><strong data-start=\"4475\" data-end=\"4489\">Air Assist<\/strong> : d\u00e9sactiv\u00e9<\/li>\n    <li data-start=\"4507\" data-end=\"4533\"><strong data-start=\"4507\" data-end=\"4522\">Mode Raster<\/strong> : activ\u00e9<\/li>\n    <li data-start=\"4537\" data-end=\"4561\"><strong data-start=\"4537\" data-end=\"4551\">R\u00e9solution<\/strong> : 300 DPI<\/li>\n<\/ol>\n<div id=\"attachment_1192\" style=\"width: 499px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-1192\" width=\"489\" height=\"122\" src=\"https:\/\/maximilien-charlier.be\/blog\/wp-content\/uploads\/2025\/06\/reglage-laser2.png\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" \/><p id=\"caption-attachment-1192\" class=\"wp-caption-text\"><\/figure> Laser setting<\/p><\/div>\n<p>Voici un aper\u00e7u de la gravure des noms. Le tape sert ensuite \u00e0 plus facilement appliquer de la peinture dor\u00e9e.<\/p>\n<iframe loading=\"lazy\" title=\"Processus de gravure\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/csuhqqw0r78?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<p>&nbsp;<\/p>\n<hr data-start=\"4563\" data-end=\"4566\" \/>\n<h2 data-start=\"4568\" data-end=\"4581\">Conclusion<\/h2>\n<p data-start=\"4583\" data-end=\"4821\">Ce projet a ajout\u00e9 une touche personnelle \u00e0 notre mariage et a r\u00e9uni code, design et artisanat. Cela a demand\u00e9 quelques essais, mais le r\u00e9sultat en valait la peine : Les invit\u00e9s \u00e9taient surpris de d\u00e9couvrir de si belles nominettes et tr\u00e8s contents de pouvoir repartir avec!<\/p>\n<p data-start=\"4823\" data-end=\"5068\">Merci encore au Click pour leur formation pour apprendre\/r\u00e9apprendre \u00e0 utiliser une d\u00e9coupeuse laser, leur bon conseils ainsi que leur disponibilit\u00e9!<\/p>","protected":false},"excerpt":{"rendered":"<p>Lors de la pr\u00e9paration de mon mariage, j\u2019ai voulu que chaque d\u00e9tail soit significatif \u2014 jusqu\u2019aux sous-verres offerts en souvenir aux invit\u00e9s. Avec un peu de script Python, de manipulation de fichiers vectoriels et une d\u00e9coupeuse laser, j\u2019ai con\u00e7u des sous-verres personnalis\u00e9s grav\u00e9s au nom de chacun. Dans cet article, je d\u00e9taille le processus complet : g\u00e9n\u00e9ration des fichiers EPS via Python\/Matplotlib, pr\u00e9paration des trac\u00e9s dans Affinity Designer, conversion en DXF via Inkscape, puis gravure finale avec la machine Gravograph LS1000. Si vous envisagez un projet similaire, ce guide vous donnera les outils et les conseils pour vous lancer.<\/p>","protected":false},"author":1,"featured_media":1220,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,19],"tags":[43,41,42],"class_list":["post-1224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diy","category-featured","tag-decoupe-laser","tag-diy-mariage","tag-gravure-laser"],"_links":{"self":[{"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/posts\/1224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/comments?post=1224"}],"version-history":[{"count":13,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/posts\/1224\/revisions"}],"predecessor-version":[{"id":1240,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/posts\/1224\/revisions\/1240"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/media\/1220"}],"wp:attachment":[{"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/media?parent=1224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/categories?post=1224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maximilien-charlier.be\/blog\/wp-json\/wp\/v2\/tags?post=1224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}