{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "0a626b10-f8c1-4fa1-a186-71d6f989e162", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting auto display for cadquery Workplane and Shape\n", "Overwriting auto display for build123d BuildPart, BuildSketch, BuildLine, ShapeList\n" ] } ], "source": [ "from build123d import *\n", "\n", "from jupyter_cadquery import show, show_all,open_viewer, show_clear\n", "\n", "from IPython.display import display\n", "import ipywidgets as widgets\n", "\n", "from snippets_panel import show_snippet_panel" ] }, { "cell_type": "code", "execution_count": 2, "id": "51e61e11-473c-492c-9b2b-4504dadfa938", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5edd1cdb172b42abb9247da9bd5e859e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Dropdown(description='Snippet:', options=('-- wybierz snippet --', '📥 Start', '🧲 Import STEP', '🖥️ view'), val…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_snippet_panel()" ] }, { "cell_type": "code", "execution_count": 3, "id": "67a54d02-2fd4-4f9a-8391-64e8617a5aef", "metadata": { "jupyter": { "source_hidden": true } }, "outputs": [], "source": [ "#cv = open_viewer(\"Build123d\", anchor=\"split-bottom\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "cd726fcd-9dea-4a0d-9710-519b45a58f88", "metadata": {}, "outputs": [], "source": [ "#cv = open_viewer(\"Build123d\", anchor=\"right\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "8521687b-c556-461d-b0ff-4d861806a762", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e4759fe05e6641bd838a1d77bd76e614", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Button(description='Viewer dół', style=ButtonStyle()), Button(description='Viewer prawo', style…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " \n", "cv = None # viewer globalny\n", "\n", "def open_bottom(b):\n", " global cv\n", " print(\"Otwieram viewer (split-bottom)\")\n", " cv = open_viewer(\"Build123d\", anchor=\"split-bottom\")\n", "\n", "def open_right(b):\n", " global cv\n", " print(\"Otwieram viewer (right)\")\n", " cv = open_viewer(\"Build123d\", anchor=\"right\")\n", "\n", "# Przycisk 1 – bottom\n", "btn_bottom = widgets.Button(description=\"Viewer dół\")\n", "btn_bottom.on_click(open_bottom)\n", "\n", "# Przycisk 2 – right\n", "btn_right = widgets.Button(description=\"Viewer prawo\")\n", "btn_right.on_click(open_right)\n", "\n", "# Wyświetl przyciski\n", "display(widgets.HBox([btn_bottom, btn_right]))\n", " " ] }, { "cell_type": "code", "execution_count": 6, "id": "b7afe8de-f86e-4a84-91c2-1321d247f20e", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cd3fbdb82a2648078f14548d5df544c7", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Button(description='open/closed', style=ButtonStyle())" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "podnies_karnister = False\n", "otwarta_szuflada = True\n", "\n", "# Funkcja przełączająca wartość\n", "def toggle_szuflada(change):\n", " global otwarta_szuflada\n", " otwarta_szuflada = not otwarta_szuflada\n", "\n", "button = widgets.Button(description=\"open/closed\")\n", "button.on_click(toggle_szuflada)\n", "display(button)" ] }, { "cell_type": "code", "execution_count": 105, "id": "177fa70e-22e7-4c1e-823f-faf4b807a78c", "metadata": {}, "outputs": [], "source": [ "comet_up = import_step(\"./cometup.step\")\n", "comet_down = import_step(\"./cometdown.step\")\n", "comet_up.color = Color(117/255,117/255,117/255)\n", "comet_down.color = Color(117/255,117/255,117/255)\n", "okranik = comet_up.move(Location((-1165.250-130,150+30,546.500-24-17.50-7.5),((0,0,-0))))\n", "zkranik = comet_down.move(Location((-1165.250-130+1100,150+30,546.500-24-17.50-7.5),((0,0,-0))))\n", "\n", "# zawias = import_step(\"./zawias.step\")\n", "# zawias.color = Color(\"black\")\n", "\n", "# zawias1 = import_step(\"./hinge1.STEP\")\n", "# zawias1 = zawias1.move(Location((-80/4,0,wys+6.3),(90,90,0)))\n", "# zawias2 = import_step(\"./hinge2.STEP\")\n", "# zawias2 = zawias2.move(Location((-80/4,26+4,wys+10-0.5),(90,90,180)))\n" ] }, { "cell_type": "code", "execution_count": 142, "id": "0859af03-2222-4b9d-b6fe-04bbc2794516", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cccccccc+\n" ] } ], "source": [ "\n", "# Wymiary szkieletu boxa (mm)\n", "\n", "dl = 1800\n", "sz = 570.5\n", "wys = 560\n", "profil = 30\n", "profil_3060 = 60 \n", "sklejka = 15\n", "prowadnica = 19\n", "\n", "# Wymiary karnistra\n", "dl_k = 360\n", "sz_k = 500\n", "wys_k = 230\n", "\n", "\n", "# Wymiary Skrzyni\n", "dl_sz = 1100\n", "sz_sz = sz - (2*profil)\n", "wys_sz = wys - profil - 50\n", "\n", "# wymiary zlewu\n", "\n", "dl_z = 320\n", "sz_z = 260\n", "wys_z = 150\n", "odstep_zlewu_od_konca = 260\n", "\n", "dl_sklejki = dl-dl_sz\n", "deska = 80\n", "\n", "\n", "with BuildPart() as szkielet:\n", " with Locations((0,-sz/2 + profil/2,0)):\n", " # Poziome\n", " with Locations((0, 0, profil/2), (0, sz - profil, profil/2)):\n", " Box(dl-(2*profil), profil, 60)\n", " with Locations((0, 0, wys - profil), (0, sz - profil, wys - profil)):\n", " Box(dl-(2*profil), profil, profil)\n", " # Pionowe\n", " with Locations((dl/2-(profil/2),0,wys/2-(profil/2)),(dl/2-(profil/2),sz-(profil),wys/2-(profil/2))):\n", " Box(profil,profil,wys)\n", " with Locations((-dl/2+(profil/2),0,wys/2-(profil/2)),(-dl/2+(profil/2),sz-(profil),wys/2-(profil/2))):\n", " Box(profil,profil,wys)\n", " # Boczne\n", " with Locations((dl/2-(profil/2),sz/2-(profil/2),0),(dl/2-(profil/2),sz/2-(profil/2),wys-(profil))):\n", " Box(profil,sz-(2*profil),profil)\n", " # sklejka pod karnister\n", " with Locations((dl/2-dl_sklejki/2,0,0)):\n", " Box(dl_sklejki,sz,sklejka)\n", "\n", "\n", "szkielet.color = Color(178/255,178/255,178/255)\n", "\n", "\n", "if podnies_karnister == True:\n", " podnies_karnister = 600\n", "else: \n", " podnies_karnister = wys_k/2 + profil/2 + sklejka\n", "\n", "with BuildPart() as karnister:\n", " with Locations((dl/2-dl_k/2-profil,0,podnies_karnister)):\n", " Box(dl_k,sz_k,wys_k)\n", " \n", "karnister.part.color = Color(\"Blue\")\n", "\n", "\n", "\n", "if otwarta_szuflada == True:\n", " szuflada_stan = (-dl/2+dl_sz/2-dl_sz,0,wys/2-profil)\n", "else:\n", " szuflada_stan = (-dl/2+dl_sz/2,0,wys/2-profil)\n", " \n", "with BuildPart() as wyciecie:\n", " with Locations(szuflada_stan):\n", " with Locations((dl_sz/2 - sz_z/2 - odstep_zlewu_od_konca ,0,wys_sz/2-wys_z/2-sklejka/2+1)):\n", " Box(sz_z,dl_z,wys_z)\n", " to_edges = wyciecie.edges().filter_by(Axis.Z)\n", " fillet(to_edges,radius=20)\n", "\n", "with BuildPart() as szuflada:\n", " with Locations(szuflada_stan):\n", " Box(dl_sz,sz_sz-(2*prowadnica),wys_sz)\n", " offset(amount=-15, openings=szuflada.faces().filter_by(Axis.Z)[-1])\n", " if otwarta_szuflada == True:\n", " with Locations((-dl_sz/4,74.5,wys_sz/2+200-27.64)):\n", " Box(dl_sz/2,sz_sz-2*prowadnica,sklejka, rotation=(-45,0,0))\n", " with Locations((dl_sz/4,0,wys_sz/2)):\n", " Box(dl_sz/2,sz_sz-2*prowadnica,sklejka)\n", " else: \n", " with Locations((-dl_sz/4,0,wys_sz/2)):\n", " Box(dl_sz/2,sz_sz-2*prowadnica,sklejka)\n", " with Locations((dl_sz/4,0,wys_sz/2)):\n", " Box(dl_sz/2,sz_sz-2*prowadnica,sklejka)\n", " with Locations((0,0,20)):\n", " add(wyciecie,mode=Mode.SUBTRACT)\n", " \n", " \n", "\n", "\n", "with BuildPart() as zlew:\n", " with Locations(szuflada_stan):\n", " with Locations((dl_sz/2 - sz_z/2 - odstep_zlewu_od_konca ,0,wys_sz/2-wys_z/2-sklejka/2+sklejka)):\n", " Box(sz_z,dl_z,wys_z)\n", " # with Locations(zlew.faces().last):\n", " # Hole(10)\n", " offset(amount=-10,openings=zlew.part.faces().filter_by(Axis.Z)[-1])\n", " test = zlew.faces().last\n", " with Locations((0,0,0)):\n", " Hole(20)\n", " to_edges = zlew.edges().filter_by(Axis.Z)\n", " fillet(to_edges,radius=10)\n", "\n", " zlew.color = Color(114/255,114/255,114/255)\n", "\n", "# comet_up.move(Location((szuflada_stan)))\n", " \n", "\n", "\n", "# render_part(my_part.part) # jeśli używasz jupyter + ocp_vscode\n", "\n", "with BuildPart() as zabudowa_bed:\n", " with Locations((0,sz/2-10,wys-5)):\n", " Box(dl,20,20)\n", " with Locations((0,-10,wys-5)):\n", " with GridLocations(300,0,6,1):\n", " Box(deska,sz-20,20)\n", " with Locations((0,-10,wys-5)):\n", " with GridLocations(300,0,5,1):\n", " Box(deska,sz-20,20)\n", "\n", "\n", "# show(szuflada,wyciecie)\n", "# show(zlew)\n", "# show_all()\n", "if otwarta_szuflada == True:\n", " show(szkielet,szuflada,karnister,zlew,okranik,zabudowa_bed)\n", "else:\n", " show(szkielet,szuflada,karnister,zlew,zkranik,zabudowa_bed)\n", "\n", "# show(comet_up)\n", "#\n", "# show(szkielet)\n", "# show(zawias2)\n", "# export_step(szkielet.part,\"./szkielet.step\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.10" } }, "nbformat": 4, "nbformat_minor": 5 }