This commit is contained in:
Rafal 2025-07-13 11:22:41 +00:00
parent 9f38c08bb8
commit 5e92eacb64
5 changed files with 336 additions and 0 deletions

View File

@ -0,0 +1,126 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "9a610a27-cc42-4311-a288-ad89e86b5b73",
"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",
"from jupyter_cadquery import show, show_all,open_viewer,show_clear\n",
"from IPython.display import display\n",
"import ipywidgets as widgets"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "68ca929c-7e78-4ce9-bafc-a336328244db",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d4c2b63ffa7a48cfa7c929f5cb97270f",
"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": null,
"id": "010eed22-3a06-4d28-bdce-4cc8e593b1aa",
"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)"
]
}
],
"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
}

Binary file not shown.

147
mamba.ipynb Normal file

File diff suppressed because one or more lines are too long

55
snippets_panel.py Normal file
View File

@ -0,0 +1,55 @@
from IPython.display import display
from IPython import get_ipython
import ipywidgets as widgets
def show_snippet_panel():
snippets = {
"📥 Start": '''
from build123d import *
from jupyter_cadquery import show, show_all,open_viewer, show_clear
from IPython.display import display
import ipywidgets as widgets''',
"🧲 Import STEP": '''from build123d import *
model = import_step("element.step")
show_object(model)''',
"🖥️ view": '''
cv = None # viewer globalny
def open_bottom(b):
global cv
print("Otwieram viewer (split-bottom)")
cv = open_viewer("Build123d", anchor="split-bottom")
def open_right(b):
global cv
print("Otwieram viewer (right)")
cv = open_viewer("Build123d", anchor="right")
# Przycisk 1 bottom
btn_bottom = widgets.Button(description="Viewer dół")
btn_bottom.on_click(open_bottom)
# Przycisk 2 right
btn_right = widgets.Button(description="Viewer prawo")
btn_right.on_click(open_right)
# Wyświetl przyciski
display(widgets.HBox([btn_bottom, btn_right]))
'''
}
dropdown = widgets.Dropdown(
options=["-- wybierz snippet --"] + list(snippets.keys()),
description="Snippet:"
)
def on_select(change):
key = change["new"]
if key != "-- wybierz snippet --":
get_ipython().set_next_input(snippets[key], replace=False)
dropdown.value = "-- wybierz snippet --"
dropdown.observe(on_select, names="value")
display(dropdown)

8
t1.svg Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="29.546752373017426mm" height="19.158647085745443mm" viewBox="0 0 29.546752373017426 19.158647085745443" xmlns="http://www.w3.org/2000/svg" version="1.1">
<g id="Sketch" transform="translate(5.289674,5.289674) scale(1,-1)">
<path id="Sketch_w0000" d="M 5.0 5.0 L -5.0 5.0 L -5.0 -5.0 L 5.0 -4.999999999999999 L 19.59934 -13.579299000000002 L 23.967404287271986 -6.146191035648753 L 5.0 5.0 " stroke="#212529" stroke-width="0.7 px" style="stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-linecap:square;fill:none;fill-opacity:1;fill-rule: evenodd"/>
<title>b'Sketch'</title>
</g>
</svg>

After

Width:  |  Height:  |  Size: 735 B