From a55c551a5468d0551f7d604b73897e41300ad33e Mon Sep 17 00:00:00 2001 From: Rafal Date: Sun, 13 Jul 2025 20:40:38 +0000 Subject: [PATCH] Ok --- .ipynb_checkpoints/mamba-checkpoint.ipynb | 121 +++++++++++++++++----- mamba.ipynb | 119 ++++++++++++++------- snippets_panel.py | 7 ++ 3 files changed, 186 insertions(+), 61 deletions(-) diff --git a/.ipynb_checkpoints/mamba-checkpoint.ipynb b/.ipynb_checkpoints/mamba-checkpoint.ipynb index 19ca0dc..e5ba5ba 100644 --- a/.ipynb_checkpoints/mamba-checkpoint.ipynb +++ b/.ipynb_checkpoints/mamba-checkpoint.ipynb @@ -24,14 +24,14 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 2, "id": "68ca929c-7e78-4ce9-bafc-a336328244db", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d4c2b63ffa7a48cfa7c929f5cb97270f", + "model_id": "c3fd5673698d49c7ae097f6ec5deed41", "version_major": 2, "version_minor": 0 }, @@ -72,34 +72,103 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "010eed22-3a06-4d28-bdce-4cc8e593b1aa", + "execution_count": 3, + "id": "167a8aea-a7cb-4c0a-bd67-11bcf92c4be9", "metadata": {}, "outputs": [], "source": [ - "# -*- coding: utf-8 -*-\n", - "from build123d import *\n", - "\n", - "# Rozpoczynamy tworzenie nowego szkicu 2D\n", - "# Wszystko, co narysujemy wewnątrz tego bloku 'with', będzie częścią 'my_sketch'\n", - "with BuildSketch() as my_sketch:\n", - " # Używamy Polyline, aby narysować kształt, podając współrzędne kolejnych punktów\n", - " Polyline(\n", - " (0, 10), # Punkt startowy\n", - " (0, 30), # Linia prosto w górę\n", - " (30, 30), # Linia w prawo\n", - " (60, 15), # Linia ukośna w dół i w prawo\n", - " (50, 0), # Linia ukośna w dół i w lewo\n", - " (20, 0), # Linia w lewo\n", - " close=True # Automatycznie zamykamy kształt, rysując linię do punktu startowego\n", - " )\n", - " # Tworzymy wypełnioną powierzchnię (Face) z narysowanego, zamkniętego konturu\n", - " make_face()\n", - "\n", - "# Wyświetlamy gotowy szkic\n", - "# Możesz też użyć show_all(), jeśli masz więcej obiektów\n", - "show(my_sketch)" + "grubosc_scianki = 3\n" ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ffefb0fe-56f5-4d89-816c-9a964445e1fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "c\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with BuildPart() as uchwycik:\n", + " with BuildSketch():\n", + " with BuildLine() as uch_ln:\n", + " l1 = Line((0,0),(10,0))\n", + " l5 = PolarLine((10,0),22,-22)\n", + " # p2 = l5.end_point()\n", + " # print(p2)\n", + " l6 = PolarLine(l5.end_point(),10,90)\n", + " l4 = PolarLine((10,10),22,-22)\n", + " l3 = Line((0,10),(10,10))\n", + " l2 = Line((0,0),(0,10))\n", + " make_face()\n", + " extrude(amount=grubosc_scianki)\n", + "\n", + "with BuildPart() as filarki:\n", + " with GridLocations(0,20,1,2):\n", + " Cylinder(7/2,15)\n", + " Hole(4/2)\n", + " with Locations((2,grubosc_scianki/2,-2.5)):\n", + " add(uchwycik,rotation=((90,0,0)))\n", + " f1 = filarki.faces().filter_by(Axis.Y)[1]\n", + " f2 = filarki.faces().filter_by(Axis.Y)[2]\n", + " # with BuildSketch(f1):\n", + " # with BuildLine():\n", + " # pass\n", + " \n", + " \n", + " \n", + "show(filarki,l1)\n", + "\n", + "# with BuildPart() as test:\n", + "# with BuildSketch():\n", + "# with BuildLine()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f309c60a-d31a-4363-b75e-443f85df11d3", + "metadata": {}, + "outputs": [], + "source": [ + "# length, width, thickness = 80.0, 60.0, 10.0\n", + "\n", + "# with BuildPart() as ex4:\n", + "# with BuildSketch() as ex4_sk:\n", + "# with BuildLine() as ex4_ln:\n", + "# l1 = Line((0, 0), (length, 0))\n", + "# l2 = Line((length, 0), (length, width))\n", + "# l3 = ThreePointArc((length, width), (width, width * 1.5), (0.0, width))\n", + "# l4 = Line((0.0, width), (0, 0))\n", + "# # make_face()\n", + "# # extrude(amount=thickness)\n", + "\n", + "# show(ex4_ln)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2facbc6-5f0c-45b8-beaf-4a0b3c8f8856", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/mamba.ipynb b/mamba.ipynb index a67d7f0..6ffd7f9 100644 --- a/mamba.ipynb +++ b/mamba.ipynb @@ -31,7 +31,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "bf5c66caae4c4b81934a1e3b0c25301d", + "model_id": "c3fd5673698d49c7ae097f6ec5deed41", "version_major": 2, "version_minor": 0 }, @@ -72,55 +72,104 @@ }, { "cell_type": "code", - "execution_count": 18, - "id": "ffefb0fe-56f5-4d89-816c-9a964445e1fb", + "execution_count": 3, + "id": "167a8aea-a7cb-4c0a-bd67-11bcf92c4be9", "metadata": {}, "outputs": [], "source": [ - "with BuildSketch() as bobo:\n", - " with BuildLine():\n", - " Polyline(\n", - " (0,0),(30,0)\n", - " )\n", - " PolarLine(\n", - " (30,0),\n", - " 20,\n", - " 30\n", - " \n", - " )" + "grubosc_scianki = 3\n" ] }, { "cell_type": "code", - "execution_count": 19, - "id": "e2facbc6-5f0c-45b8-beaf-4a0b3c8f8856", + "execution_count": 31, + "id": "ffefb0fe-56f5-4d89-816c-9a964445e1fb", "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "Unable to repositioned type with respect to local coordinates", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[19], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mshow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbobo\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/jupyter_cadquery/show.py:247\u001b[0m, in \u001b[0;36mshow\u001b[0;34m(names, colors, alphas, viewer, anchor, cad_width, height, theme, pinning, progress, glass, tools, tree_width, axes, axes0, grid, ortho, transparent, default_opacity, black_edges, orbit_control, tab, control, collapse, explode, ticks, center_grid, up, zoom, position, quaternion, target, reset_camera, clip_slider_0, clip_slider_1, clip_slider_2, clip_normal_0, clip_normal_1, clip_normal_2, clip_intersection, clip_planes, clip_object_colors, pan_speed, rotate_speed, zoom_speed, deviation, angular_tolerance, edge_accuracy, default_color, default_edgecolor, default_facecolor, default_thickedgecolor, default_vertexcolor, ambient_intensity, direct_intensity, metalness, roughness, render_edges, render_normals, render_mates, render_joints, show_parent, show_sketch_local, helper_scale, mate_scale, debug, timeit, _force_in_debug, *cad_objs)\u001b[0m\n\u001b[1;32m 148\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Show CAD objects in Visual Studio Code\u001b[39;00m\n\u001b[1;32m 149\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[1;32m 150\u001b[0m \u001b[38;5;124;03m cad_objs: All cad objects that should be shown as positional parameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 244\u001b[0m \u001b[38;5;124;03m timeit: Show timing information from level 0-3 (default=False)\u001b[39;00m\n\u001b[1;32m 245\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 246\u001b[0m kwargs \u001b[38;5;241m=\u001b[39m none_filter(\u001b[38;5;28mlocals\u001b[39m(), [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcad_objs\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m--> 247\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_show\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcad_objs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/ocp_vscode/show.py:605\u001b[0m, in \u001b[0;36m_show\u001b[0;34m(*cad_objs, **kwargs)\u001b[0m\n\u001b[1;32m 602\u001b[0m progress \u001b[38;5;241m=\u001b[39m Progress([] \u001b[38;5;28;01mif\u001b[39;00m progress \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m [c \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m progress])\n\u001b[1;32m 604\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Timer(timeit, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124moverall\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[0;32m--> 605\u001b[0m t, mapping \u001b[38;5;241m=\u001b[39m \u001b[43m_convert\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 606\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcad_objs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 607\u001b[0m \u001b[43m \u001b[49m\u001b[43mnames\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnames\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 608\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 609\u001b[0m \u001b[43m \u001b[49m\u001b[43malphas\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malphas\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 610\u001b[0m \u001b[43m \u001b[49m\u001b[43mprogress\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mprogress\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 611\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 612\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 614\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _force_in_debug:\n\u001b[1;32m 615\u001b[0m LAST_CALL \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mshow\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/ocp_vscode/show.py:283\u001b[0m, in \u001b[0;36m_convert\u001b[0;34m(names, colors, alphas, progress, *cad_objs, **kwargs)\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m progress \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 281\u001b[0m progress \u001b[38;5;241m=\u001b[39m Progress([c \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m-+c\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m--> 283\u001b[0m instances, shapes, config, count_shapes, mapping \u001b[38;5;241m=\u001b[39m \u001b[43m_tessellate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 284\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcad_objs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 285\u001b[0m \u001b[43m \u001b[49m\u001b[43mnames\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnames\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 286\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 287\u001b[0m \u001b[43m \u001b[49m\u001b[43malphas\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malphas\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 288\u001b[0m \u001b[43m \u001b[49m\u001b[43mprogress\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mprogress\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 289\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 290\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 292\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdark\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 293\u001b[0m config[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtheme\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdark\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/ocp_vscode/show.py:175\u001b[0m, in \u001b[0;36m_tessellate\u001b[0;34m(names, colors, alphas, progress, *cad_objs, **kwargs)\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Timer(timeit, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto_ocpgroup\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;241m1\u001b[39m):\n\u001b[1;32m 174\u001b[0m changed_config \u001b[38;5;241m=\u001b[39m get_changed_config()\n\u001b[0;32m--> 175\u001b[0m part_group, instances \u001b[38;5;241m=\u001b[39m \u001b[43mto_ocpgroup\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 176\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcad_objs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 177\u001b[0m \u001b[43m \u001b[49m\u001b[43mnames\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnames\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 178\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 179\u001b[0m \u001b[43m \u001b[49m\u001b[43malphas\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malphas\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 180\u001b[0m \u001b[43m \u001b[49m\u001b[43mrender_mates\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrender_mates\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchanged_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrender_mates\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 181\u001b[0m \u001b[43m \u001b[49m\u001b[43mrender_joints\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 182\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrender_joints\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchanged_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrender_joints\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 183\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 184\u001b[0m \u001b[43m \u001b[49m\u001b[43mhelper_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mhelper_scale\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchanged_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mhelper_scale\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 185\u001b[0m \u001b[43m \u001b[49m\u001b[43mdefault_color\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 186\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdefault_color\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchanged_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdefault_color\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 187\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 188\u001b[0m \u001b[43m \u001b[49m\u001b[43mshow_parent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshow_parent\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchanged_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshow_parent\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 189\u001b[0m \u001b[43m \u001b[49m\u001b[43mshow_sketch_local\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 190\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshow_sketch_local\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchanged_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshow_sketch_local\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 191\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 192\u001b[0m \u001b[43m \u001b[49m\u001b[43mprogress\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mprogress\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(part_group\u001b[38;5;241m.\u001b[39mobjects) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(part_group\u001b[38;5;241m.\u001b[39mobjects[\u001b[38;5;241m0\u001b[39m], OcpGroup):\n\u001b[1;32m 196\u001b[0m loc \u001b[38;5;241m=\u001b[39m part_group\u001b[38;5;241m.\u001b[39mloc\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/ocp_tessellate/convert.py:1552\u001b[0m, in \u001b[0;36mto_ocpgroup\u001b[0;34m(names, colors, alphas, render_mates, render_joints, helper_scale, default_color, show_parent, show_sketch_local, loc, progress, *cad_objs)\u001b[0m\n\u001b[1;32m 1533\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1534\u001b[0m \u001b[38;5;124;03mCentral converter routine to convert a list of objects to an OcpGroup hierarchy.\u001b[39;00m\n\u001b[1;32m 1535\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1549\u001b[0m \u001b[38;5;124;03m@return: The OcpGroup hierarchy\u001b[39;00m\n\u001b[1;32m 1550\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1551\u001b[0m converter \u001b[38;5;241m=\u001b[39m OcpConverter(progress\u001b[38;5;241m=\u001b[39mprogress)\n\u001b[0;32m-> 1552\u001b[0m ocp_group \u001b[38;5;241m=\u001b[39m \u001b[43mconverter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_ocp\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1553\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcad_objs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1554\u001b[0m \u001b[43m \u001b[49m\u001b[43mnames\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnames\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1555\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1556\u001b[0m \u001b[43m \u001b[49m\u001b[43malphas\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malphas\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1557\u001b[0m \u001b[43m \u001b[49m\u001b[43mloc\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mloc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1558\u001b[0m \u001b[43m \u001b[49m\u001b[43mrender_mates\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrender_mates\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1559\u001b[0m \u001b[43m \u001b[49m\u001b[43mrender_joints\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrender_joints\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1560\u001b[0m \u001b[43m \u001b[49m\u001b[43mhelper_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhelper_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1561\u001b[0m \u001b[43m \u001b[49m\u001b[43mdefault_color\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdefault_color\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1562\u001b[0m \u001b[43m \u001b[49m\u001b[43mshow_parent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mshow_parent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1563\u001b[0m \u001b[43m \u001b[49m\u001b[43msketch_local\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mshow_sketch_local\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1564\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1566\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ocp_group, converter\u001b[38;5;241m.\u001b[39minstances\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/ocp_tessellate/convert.py:1445\u001b[0m, in \u001b[0;36mOcpConverter.to_ocp\u001b[0;34m(self, names, colors, alphas, loc, render_mates, render_joints, helper_scale, default_color, show_parent, sketch_local, unroll_compounds, level, *cad_objs)\u001b[0m\n\u001b[1;32m 1443\u001b[0m \u001b[38;5;66;03m# build123d BuildPart, BuildSketch, BuildLine\u001b[39;00m\n\u001b[1;32m 1444\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m is_build123d(cad_obj):\n\u001b[0;32m-> 1445\u001b[0m ocp_obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_build123d_builder\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1446\u001b[0m \u001b[43m \u001b[49m\u001b[43mcad_obj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mobj_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolor\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43malpha\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msketch_local\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrender_joints\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\n\u001b[1;32m 1447\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1449\u001b[0m \u001b[38;5;66;03m# TopoDS_Shape, TopoDS_Compound, TopoDS_Edge, TopoDS_Face, TopoDS_Shell,\u001b[39;00m\n\u001b[1;32m 1450\u001b[0m \u001b[38;5;66;03m# TopoDS_Solid, TopoDS_Vertex, TopoDS_Wire,\u001b[39;00m\n\u001b[1;32m 1451\u001b[0m \u001b[38;5;66;03m# build123d Shape, Compound, Edge, Face, Shell, Solid, Vertex\u001b[39;00m\n\u001b[1;32m 1452\u001b[0m \u001b[38;5;66;03m# CadQuery shapes Solid, Shell, Face, Wire, Edge, Vertex\u001b[39;00m\n\u001b[1;32m 1453\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m (\n\u001b[1;32m 1454\u001b[0m is_topods_shape(cad_obj)\n\u001b[1;32m 1455\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m is_build123d_shape(cad_obj)\n\u001b[1;32m 1456\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m is_cadquery_shape(cad_obj)\n\u001b[1;32m 1457\u001b[0m ):\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/ocp_tessellate/convert.py:979\u001b[0m, in \u001b[0;36mOcpConverter.handle_build123d_builder\u001b[0;34m(self, cad_obj, obj_name, color, alpha, sketch_local, render_joints, level)\u001b[0m\n\u001b[1;32m 977\u001b[0m \u001b[38;5;66;03m# build123d BuildSketch().sketch\u001b[39;00m\n\u001b[1;32m 978\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m is_build123d_sketch(cad_obj):\n\u001b[0;32m--> 979\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[43mcad_obj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msketch\u001b[49m\u001b[38;5;241m.\u001b[39mfaces()\n\u001b[1;32m 980\u001b[0m obj_name \u001b[38;5;241m=\u001b[39m get_name(cad_obj, obj_name, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFace\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 982\u001b[0m \u001b[38;5;66;03m# build123d BuildLine().line\u001b[39;00m\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/build123d/build_sketch.py:85\u001b[0m, in \u001b[0;36mBuildSketch.sketch\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 83\u001b[0m global_objs \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 84\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m plane \u001b[38;5;129;01min\u001b[39;00m workplanes:\n\u001b[0;32m---> 85\u001b[0m global_objs\u001b[38;5;241m.\u001b[39mappend(\u001b[43mplane\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_local_coords\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_obj\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Sketch(Compound(global_objs)\u001b[38;5;241m.\u001b[39mwrapped)\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/build123d/geometry.py:2436\u001b[0m, in \u001b[0;36mPlane.from_local_coords\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 2425\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mfrom_local_coords\u001b[39m(\u001b[38;5;28mself\u001b[39m, obj: Union[\u001b[38;5;28mtuple\u001b[39m, Vector, Any, BoundBox]):\n\u001b[1;32m 2426\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Reposition the object relative from this plane\u001b[39;00m\n\u001b[1;32m 2427\u001b[0m \n\u001b[1;32m 2428\u001b[0m \u001b[38;5;124;03m Args:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2434\u001b[0m \n\u001b[1;32m 2435\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 2436\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_to_from_local_coords\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.12/site-packages/build123d/geometry.py:2407\u001b[0m, in \u001b[0;36mPlane._to_from_local_coords\u001b[0;34m(self, obj, to_from)\u001b[0m\n\u001b[1;32m 2405\u001b[0m return_value \u001b[38;5;241m=\u001b[39m obj\u001b[38;5;241m.\u001b[39mtransform_shape(transform_matrix)\n\u001b[1;32m 2406\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2407\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 2408\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnable to repositioned type \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(obj)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m with respect to local coordinates\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2409\u001b[0m )\n\u001b[1;32m 2410\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m return_value\n", - "\u001b[0;31mValueError\u001b[0m: Unable to repositioned type with respect to local coordinates" + "name": "stdout", + "output_type": "stream", + "text": [ + "cc\n" ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "show(bobo)" + "with BuildPart() as uchwycik:\n", + " with BuildSketch():\n", + " with BuildLine() as uch_ln:\n", + " l1 = Line((0,0),(10,0))\n", + " l5 = PolarLine((10,0),22,-22)\n", + " # p2 = l5.end_point()\n", + " # print(p2)\n", + " l6 = PolarLine(l5.end_point(),10,90)\n", + " l4 = PolarLine((10,10),22,-22)\n", + " l3 = Line((0,10),(10,10))\n", + " l2 = Line((0,0),(0,10))\n", + " make_face()\n", + " extrude(amount=grubosc_scianki)\n", + " test = uchwycik.part.faces().filter_by(Axis.Z)[-1]\n", + "\n", + "# with BuildPart() as filarki:\n", + "# with GridLocations(0,20,1,2):\n", + "# Cylinder(7/2,15)\n", + "# Hole(4/2)\n", + "# with Locations((2,grubosc_scianki/2,-2.5)):\n", + "# add(uchwycik,rotation=((90,0,0)))\n", + "# f1 = filarki.faces().filter_by(Axis.Y)[1]\n", + "# f2 = filarki.faces().filter_by(Axis.Y)[2]\n", + " # with BuildSketch(f1):\n", + " # with BuildLine():\n", + " # pass\n", + " \n", + " \n", + " \n", + "show(uchwycik,test)\n", + "\n", + "# with BuildPart() as test:\n", + "# with BuildSketch():\n", + "# with BuildLine()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f309c60a-d31a-4363-b75e-443f85df11d3", + "metadata": {}, + "outputs": [], + "source": [ + "# length, width, thickness = 80.0, 60.0, 10.0\n", + "\n", + "# with BuildPart() as ex4:\n", + "# with BuildSketch() as ex4_sk:\n", + "# with BuildLine() as ex4_ln:\n", + "# l1 = Line((0, 0), (length, 0))\n", + "# l2 = Line((length, 0), (length, width))\n", + "# l3 = ThreePointArc((length, width), (width, width * 1.5), (0.0, width))\n", + "# l4 = Line((0.0, width), (0, 0))\n", + "# # make_face()\n", + "# # extrude(amount=thickness)\n", + "\n", + "# show(ex4_ln)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2facbc6-5f0c-45b8-beaf-4a0b3c8f8856", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/snippets_panel.py b/snippets_panel.py index 8f8eaf9..227ec8d 100644 --- a/snippets_panel.py +++ b/snippets_panel.py @@ -14,6 +14,13 @@ import ipywidgets as widgets''', model = import_step("element.step") show_object(model)''', +"BuildPart-BuildLine":''' + +with BuildPart(): + with BuildSketch(): + with BuildLine(): +''' + "🖥️ view": ''' cv = None # viewer globalny