|
|
|
|
@ -6,8 +6,8 @@
|
|
|
|
|
"metadata": { |
|
|
|
|
"collapsed": true, |
|
|
|
|
"ExecuteTime": { |
|
|
|
|
"end_time": "2026-05-12T22:59:12.711790474Z", |
|
|
|
|
"start_time": "2026-05-12T22:59:04.480803556Z" |
|
|
|
|
"end_time": "2026-05-14T02:35:48.111465748Z", |
|
|
|
|
"start_time": "2026-05-14T02:35:34.544312989Z" |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
"source": [ |
|
|
|
|
@ -40,15 +40,16 @@
|
|
|
|
|
"tracte_extrusion_center_y_offset = tract_extrusion_cote / 2 + tract_extrusion_y_offset\n", |
|
|
|
|
"\n", |
|
|
|
|
"# extrudeuse\n", |
|
|
|
|
"hauteur_extrudeuse = 80 # mm\n", |
|
|
|
|
"longueur_extrudeuse = 205 # mm\n", |
|
|
|
|
"largueur_extrudeuse = 122.3 # mm\n", |
|
|
|
|
"# représente l'offsent du centre de la zone d'extrusion par rapport à l'avant de l'extreuse\n", |
|
|
|
|
"hauteur_extrudeuse = 53 # mm\n", |
|
|
|
|
"# TODO: dimensions exactes mesurées, ajouter du jeu éventuellement\n", |
|
|
|
|
"longueur_extrudeuse = 130 # mm\n", |
|
|
|
|
"largueur_extrudeuse = 100 # mm\n", |
|
|
|
|
"# représente l'offset du centre de la zone d'extrusion par rapport à l'avant de l'extrudeuse\n", |
|
|
|
|
"# TODO: a compéter\n", |
|
|
|
|
"# offset par rapport à l'avant de l'extrudeuse\n", |
|
|
|
|
"zone_extrusion_offset_avant = 40 # mm\n", |
|
|
|
|
"zone_extrusion_offset_avant = 50 # mm\n", |
|
|
|
|
"# offset par rapport au bas de l'extrudeuse\n", |
|
|
|
|
"zone_extrusion_offset_hauteur = 30 # mm\n", |
|
|
|
|
"zone_extrusion_offset_hauteur = 12 # mm\n", |
|
|
|
|
"\n", |
|
|
|
|
"# Cavité perforatrice\n", |
|
|
|
|
"jeu_cavite = 2 # mm\n", |
|
|
|
|
@ -56,6 +57,12 @@
|
|
|
|
|
"cav_dim_y = largueur_extrudeuse + jeu_cavite\n", |
|
|
|
|
"cav_hauteur = hauteur_extrudeuse # mm — profondeur de creusement depuis le dessus\n", |
|
|
|
|
"\n", |
|
|
|
|
"# Ailettes de maintient de la cheville du gond de la poignée d'extrudeuse\n", |
|
|
|
|
"ailettes_ecart = 24 # mm\n", |
|
|
|
|
"ailettes_epaisseur = 3 # mm\n", |
|
|
|
|
"ailettes_hauteur = 30 # mm\n", |
|
|
|
|
"ailettes_profondeur = 20 # mm\n", |
|
|
|
|
"\n", |
|
|
|
|
"# Trou d'évacuation (confettis)\n", |
|
|
|
|
"evac_taille = 48.0 # mm — côté du carré (45 + jeu)\n", |
|
|
|
|
"\n", |
|
|
|
|
@ -70,8 +77,8 @@
|
|
|
|
|
"\n", |
|
|
|
|
"# Couvercle\n", |
|
|
|
|
"couvercle_epaisseur = 5 # mm\n", |
|
|
|
|
"couvercle_ouv_largeur = 150 # mm — ouverture X\n", |
|
|
|
|
"couvercle_ouv_profondeur = 60 # mm — ouverture Y\n", |
|
|
|
|
"couvercle_ouv_largeur = 110 # mm — ouverture X\n", |
|
|
|
|
"couvercle_ouv_profondeur = 30 # mm — ouverture Y\n", |
|
|
|
|
"\n", |
|
|
|
|
"# Bac\n", |
|
|
|
|
"bac_hauteur = 100.0 # mm\n", |
|
|
|
|
@ -251,7 +258,7 @@
|
|
|
|
|
" cx = (min_x + max_x) / 2\n", |
|
|
|
|
"\n", |
|
|
|
|
" with BuildSketch(front_plane) as sk:\n", |
|
|
|
|
" add([s.translate((-cx, 5, 0)) for s in logo_shapes])\n", |
|
|
|
|
" add([s.translate((-cx, -5, 0)) for s in logo_shapes])\n", |
|
|
|
|
" scale(by=0.8)\n", |
|
|
|
|
"\n", |
|
|
|
|
" extrude(amount=-1, mode=Mode.SUBTRACT) # 1.5 mm de profondeur\n", |
|
|
|
|
@ -261,7 +268,7 @@
|
|
|
|
|
" 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", |
|
|
|
|
" with BuildSketch(side_face.translate((0, 0, -5))) as sk:\n", |
|
|
|
|
" Text(\"GUI-O-TRACTINE\\n3000\",\n", |
|
|
|
|
" font_size=20,\n", |
|
|
|
|
" align=Align.CENTER,\n", |
|
|
|
|
@ -302,6 +309,21 @@
|
|
|
|
|
" maximum=bottom_plane.origin.Z + encoche_profondeur)\n", |
|
|
|
|
" chamfer(top_edges, length=1)\n", |
|
|
|
|
"\n", |
|
|
|
|
" with BuildSketch(bottom_plane):\n", |
|
|
|
|
" with Locations((cav_dim_x / 2, 0)):\n", |
|
|
|
|
" with GridLocations(x_spacing=0, y_spacing=ailettes_ecart, x_count=1, y_count=2):\n", |
|
|
|
|
" Rectangle(ailettes_profondeur, ailettes_epaisseur,\n", |
|
|
|
|
" align=(Align.MAX, Align.MIN))\n", |
|
|
|
|
" extrude(amount=ailettes_hauteur, mode=Mode.ADD)\n", |
|
|
|
|
" face_edges = (edges(Select.LAST).filter_by(Axis.Z)\n", |
|
|
|
|
" .filter_by_position(Axis.X,\n", |
|
|
|
|
" minimum=cav_dim_x / 2 - 0.01,\n", |
|
|
|
|
" maximum=cav_dim_x / 2 + 0.01))\n", |
|
|
|
|
" chamfer(face_edges, length=3)\n", |
|
|
|
|
" top_edges = (edges(Select.LAST).filter_by(Axis.X).sort_by(Axis.Z)[-4:])\n", |
|
|
|
|
" chamfer(top_edges, length=0.5)\n", |
|
|
|
|
"\n", |
|
|
|
|
"\n", |
|
|
|
|
" with BuildPart() as p_bottom:\n", |
|
|
|
|
" add(bottom)\n", |
|
|
|
|
" top_face = faces().filter_by(Plane.XY).sort_by(Axis.Z)[-1]\n", |
|
|
|
|
@ -313,7 +335,8 @@
|
|
|
|
|
" with Locations(sockets_offsets):\n", |
|
|
|
|
" Rectangle(encoche_longueur - 0.3, encoche_largueur - 0.3)\n", |
|
|
|
|
" extrude(amount=encoche_profondeur - 0.3, mode=Mode.ADD)\n", |
|
|
|
|
" top_edges = edges(Select.LAST).filter_by_position(Axis.Z, minimum=top_plane.origin.Z + encoche_profondeur / 2, maximum= top_plane.origin.Z + encoche_profondeur * 2)\n", |
|
|
|
|
" top_edges = edges(Select.LAST).filter_by_position(Axis.Z, minimum=top_plane.origin.Z + encoche_profondeur / 2,\n", |
|
|
|
|
" maximum=top_plane.origin.Z + encoche_profondeur * 2)\n", |
|
|
|
|
" chamfer(top_edges, length=1)\n", |
|
|
|
|
"\n", |
|
|
|
|
" return Compound(children=[p_top.part, p_bottom.part])\n", |
|
|
|
|
@ -345,8 +368,8 @@
|
|
|
|
|
" 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 / 2,\n", |
|
|
|
|
" bloc_extrudeur_ext_y - epaisseur_paroi / 2)\n", |
|
|
|
|
"\n", |
|
|
|
|
" extrude(amount=-(bac_hauteur - epaisseur_paroi), mode=Mode.SUBTRACT)\n", |
|
|
|
|
"\n", |
|
|
|
|
@ -407,7 +430,7 @@
|
|
|
|
|
"name": "stdout", |
|
|
|
|
"output_type": "stream", |
|
|
|
|
"text": [ |
|
|
|
|
"++++\n" |
|
|
|
|
"++c+\n" |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
|