|
|
|
|
@ -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": { |
|
|
|
|
|