diff --git a/tractrudeuse_v2.ipynb b/tractrudeuse_v2.ipynb index 82d90d9..af3901d 100644 --- a/tractrudeuse_v2.ipynb +++ b/tractrudeuse_v2.ipynb @@ -6,8 +6,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2026-05-09T01:06:35.539444869Z", - "start_time": "2026-05-09T01:06:34.603873035Z" + "end_time": "2026-05-09T14:28:10.474719577Z", + "start_time": "2026-05-09T14:28:05.535127271Z" } }, "source": [ @@ -27,7 +27,7 @@ "\n", "# Fente (guide tract) — face droite, centrée en Y\n", "fente_largeur = 152.0 # mm — largeur de la fente -> Y\n", - "fente_profondeur = 60.0 # mm — profondeur (longueur de la rainure) -> X\n", + "fente_profondeur = 80.0 # mm — profondeur (longueur de la rainure) -> X\n", "fente_section = 2.0 # mm — hauteur de la section (épaisseur papier + jeu)\n", "\n", "# Zone à extruder du tract\n", @@ -176,7 +176,20 @@ " add([s.translate((-cx, 5, 0)) for s in logo_shapes])\n", " scale(by=0.8)\n", "\n", - " extrude(amount=-1.5, mode=Mode.SUBTRACT) # 1.5 mm de profondeur\n", + " extrude(amount=-1, mode=Mode.SUBTRACT) # 1.5 mm de profondeur\n", + "\n", + " # Affichage du nom sur les deux cotés de la boite\n", + " left_face = faces().filter_by(Axis.Y).sort_by(Axis.Y)[0]\n", + " right_face = faces().filter_by(Axis.Y).sort_by(Axis.Y)[-1]\n", + " for side_face in [left_face, right_face]:\n", + " # side_face = Plane(side_face).rotated((0, 90, 0))\n", + " with BuildSketch(side_face) as sk:\n", + " Text(\"GUI-O-TRACTINE\\n3000\",\n", + " font_size=20,\n", + " align=Align.CENTER,\n", + " font=\"Tanker\",\n", + " rotation=-90)\n", + " extrude(amount=-1, mode=Mode.SUBTRACT)\n", "\n", " return p.part\n", "\n", @@ -220,24 +233,23 @@ "def make_couvercle():\n", " with BuildPart() as p:\n", " # 1. Bloc de base\n", - " Box(couv_ext_x, couv_ext_y, couv_ext_z)\n", + " b = Box(couv_ext_x, couv_ext_y, couv_ext_z)\n", + " chamfer(b.edges(), length=2)\n", "\n", - " # 2. Évidement intérieur (lèvre qui coiffe le chapeau)\n", - " with Locations(Location((0, 0, - emboitement_profondeur))):\n", - " Box(\n", - " couv_ext_x - 2 * epaisseur_paroi,\n", - " couv_ext_y - 2 * epaisseur_paroi,\n", - " emboitement_profondeur + 1,\n", - " mode=Mode.SUBTRACT,\n", - " )\n", + " bottom_face = faces().sort_by(Axis.Z)[0]\n", + " with BuildSketch(bottom_face) as sk:\n", + " # Position relative au centre de la face (origine du sketch)\n", + " with Locations(Location((0, 0))):\n", + " Rectangle(couv_ext_x - 2 * epaisseur_paroi, couv_ext_y - 2 * epaisseur_paroi,)\n", + " extrude(amount=-emboitement_profondeur, mode=Mode.SUBTRACT)\n", "\n", " # 3. Ouverture rectangulaire centrée sur la cavité\n", " top_face = faces().sort_by(Axis.Z)[-1]\n", " with BuildSketch(top_face) as sk:\n", " # Position relative au centre de la face (origine du sketch)\n", - " with Locations(Location((cav_x + cav_dim_x / 2 - bloc_extrudeur_ext_x / 2, 0))):\n", + " with Locations(Location((0, 0))):\n", " Rectangle(couvercle_ouv_largeur, couvercle_ouv_profondeur)\n", - " extrude(amount=-epaisseur_paroi* 2, mode=Mode.SUBTRACT)\n", + " extrude(amount=-epaisseur_paroi, mode=Mode.SUBTRACT)\n", "\n", " return p.part\n", "\n", @@ -262,35 +274,35 @@ "name": "stdout", "output_type": "stream", "text": [ - "+c+\n" + "+++\n" ] } ], - "execution_count": 87 + "execution_count": 110 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-05-09T00:48:40.405653163Z", - "start_time": "2026-05-09T00:48:40.393920716Z" + "end_time": "2026-05-09T14:28:52.711328232Z", + "start_time": "2026-05-09T14:28:52.689567682Z" } }, "cell_type": "code", - "source": "tract_extrusion_center_x_offset", + "source": "bloc_extrudeur_ext_x", "id": "810fb3a101c2fccd", "outputs": [ { "data": { "text/plain": [ - "32.5" + "234.5" ] }, - "execution_count": 64, + "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 64 + "execution_count": 111 } ], "metadata": {