diff --git a/tractrudeuse_v2.ipynb b/tractrudeuse_v2.ipynb index 1a320e3..2fae3a7 100644 --- a/tractrudeuse_v2.ipynb +++ b/tractrudeuse_v2.ipynb @@ -6,8 +6,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2026-05-17T23:28:42.138106727Z", - "start_time": "2026-05-17T23:28:27.883466201Z" + "end_time": "2026-05-19T11:55:17.570088671Z", + "start_time": "2026-05-19T11:55:03.200373107Z" } }, "source": [ @@ -78,6 +78,8 @@ "\n", "# Bac\n", "bac_hauteur = 100.0 # mm\n", + "# Hauteur du bord de la lèvres qui tient\n", + "bac_hauteur_levre = 30 # mm\n", "\n", "# Fixations couvercle\n", "vis_diam = 4 + 1\n", @@ -418,20 +420,32 @@ " top_face = faces().sort_by(Axis.Z)[-1]\n", "\n", " with BuildSketch(top_face) as sk:\n", - " # Position relative au centre de la face (origine du sketch)\n", - " with Locations(Location((0, 0))):\n", - " Rectangle(bloc_extrudeur_ext_x + emboitement_jeu * 2,\n", - " bloc_extrudeur_ext_y + emboitement_jeu * 2)\n", + " Rectangle(bloc_extrudeur_ext_x + emboitement_jeu * 2,\n", + " bloc_extrudeur_ext_y + emboitement_jeu * 2)\n", "\n", " extrude(amount=-emboitement_profondeur, mode=Mode.SUBTRACT)\n", "\n", " with BuildSketch(top_face) as sk:\n", - " # Position relative au centre de la face (origine du sketch)\n", - " with Locations(Location((0, 0))):\n", - " Rectangle(bloc_extrudeur_ext_x - epaisseur_paroi / 2,\n", - " bloc_extrudeur_ext_y - epaisseur_paroi / 2)\n", + " Rectangle(bloc_extrudeur_ext_x - epaisseur_paroi,\n", + " bloc_extrudeur_ext_y - epaisseur_paroi)\n", + "\n", + " extrude(amount=-(bac_hauteur - (epaisseur_paroi)), mode=Mode.SUBTRACT)\n", + "\n", + " with BuildSketch(Plane(top_face).offset(-(bac_hauteur_levre + emboitement_profondeur))):\n", + " Rectangle(bloc_extrudeur_ext_x,\n", + " bloc_extrudeur_ext_y)\n", + "\n", + " extrusion_height = bac_hauteur - (epaisseur_paroi + bac_hauteur_levre + emboitement_profondeur)\n", + " extrude(amount=-extrusion_height, mode=Mode.SUBTRACT)\n", + "\n", + " with BuildSketch(Plane(top_face).offset(-emboitement_profondeur)):\n", + " Rectangle(bloc_extrudeur_ext_x - epaisseur_paroi,\n", + " bloc_extrudeur_ext_y - epaisseur_paroi)\n", + " with BuildSketch(Plane(top_face).offset(-(bac_hauteur_levre + emboitement_profondeur))):\n", + " Rectangle(bloc_extrudeur_ext_x,\n", + " bloc_extrudeur_ext_y)\n", + " loft(mode=Mode.SUBTRACT)\n", "\n", - " extrude(amount=-(bac_hauteur - epaisseur_paroi), mode=Mode.SUBTRACT)\n", "\n", " return p.part\n", "\n", @@ -494,31 +508,73 @@ ] } ], - "execution_count": 157 + "execution_count": 2 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-05-14T23:44:03.217747593Z", - "start_time": "2026-05-14T23:44:03.171779231Z" + "end_time": "2026-05-18T23:18:32.922490156Z", + "start_time": "2026-05-18T23:18:32.423433469Z" } }, "cell_type": "code", - "source": "fente_profondeur", + "source": [ + "bac_hauteur_levre = 30\n", + "\n", + "def make_bac_recup():\n", + " with BuildPart() as p:\n", + " # Corps extérieur\n", + " Box(bac_ext_x, bac_ext_y, bac_hauteur)\n", + "\n", + " top_edges = faces().sort_by(Axis.Z)[-1].edges()\n", + " lateral_edges = edges().filter_by(Axis.Z)\n", + " chamfer(top_edges + lateral_edges, length=2)\n", + "\n", + " top_face = faces().sort_by(Axis.Z)[-1]\n", + "\n", + " with BuildSketch(top_face) as sk:\n", + " Rectangle(bloc_extrudeur_ext_x + emboitement_jeu * 2,\n", + " bloc_extrudeur_ext_y + emboitement_jeu * 2)\n", + "\n", + " extrude(amount=-emboitement_profondeur, mode=Mode.SUBTRACT)\n", + "\n", + " with BuildSketch(top_face) as sk:\n", + " Rectangle(bloc_extrudeur_ext_x - epaisseur_paroi,\n", + " bloc_extrudeur_ext_y - epaisseur_paroi)\n", + "\n", + " extrude(amount=-(bac_hauteur - (epaisseur_paroi)), mode=Mode.SUBTRACT)\n", + "\n", + " with BuildSketch(Plane(top_face).offset(-(bac_hauteur_levre + emboitement_profondeur))):\n", + " Rectangle(bloc_extrudeur_ext_x,\n", + " bloc_extrudeur_ext_y)\n", + "\n", + " extrusion_height = bac_hauteur - (epaisseur_paroi + bac_hauteur_levre + emboitement_profondeur)\n", + " extrude(amount=-extrusion_height, mode=Mode.SUBTRACT)\n", + "\n", + " with BuildSketch(Plane(top_face).offset(-emboitement_profondeur)):\n", + " Rectangle(bloc_extrudeur_ext_x - epaisseur_paroi,\n", + " bloc_extrudeur_ext_y - epaisseur_paroi)\n", + " with BuildSketch(Plane(top_face).offset(-(bac_hauteur_levre + emboitement_profondeur))):\n", + " Rectangle(bloc_extrudeur_ext_x,\n", + " bloc_extrudeur_ext_y)\n", + " loft(mode=Mode.SUBTRACT)\n", + "\n", + "\n", + " return p.part\n", + "\n", + "show(make_bac_recup())" + ], "id": "a3d65d64eb54186b", "outputs": [ { - "data": { - "text/plain": [ - "92.5" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "+\n" + ] } ], - "execution_count": 106 + "execution_count": 164 }, { "metadata": { @@ -599,8 +655,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-05-17T23:37:18.404982125Z", - "start_time": "2026-05-17T23:37:03.924008868Z" + "end_time": "2026-05-18T23:37:55.903337866Z", + "start_time": "2026-05-18T23:37:52.010830090Z" } }, "cell_type": "code", @@ -616,12 +672,12 @@ "True" ] }, - "execution_count": 158, + "execution_count": 166, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 158 + "execution_count": 166 } ], "metadata": {