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)