{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "bad426fe-bce7-427b-938b-ccf52358420d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting auto display for cadquery Workplane and Shape\n" ] } ], "source": [ "import timeit\n", "tic = timeit.default_timer()\n", "\n", "import cadquery as cq\n", "from build123d import *\n", "\n", "from jupyter_cadquery import (\n", " versions,\n", " show, PartGroup, Part, \n", " get_viewer, close_viewer, get_viewers, close_viewers, open_viewer, set_defaults, get_defaults, open_viewer,\n", " get_pick,\n", ")\n", "from jupyter_cadquery.ocp_utils import webcol_to_cq\n", "\n", "from jupyter_cadquery.replay import replay, enable_replay, disable_replay\n", "close_viewers()\n", "set_defaults(\n", " cad_width=640, \n", " height=480, \n", " viewer=\"smartphonestand\"\n", ")\n", "cv = open_viewer(\"smartphonestand\",\n", " anchor=\"right\", \n", " glass=True, \n", " theme=\"dark\",\n", " tools=True) # sets default viewer\n", "\n", "\n", "#cv.grid = [not g for g in cv.widget.grid]\n", "\n", "#cv.axes = not cv.axes\n", "#cv.axes0 = not cv.axes0\n", "#cv.transparent = not cv.transparent\n", "#cv.black_edges = not cv.black_edges\n", "\n" ] }, { "cell_type": "code", "execution_count": 19, "id": "897c1e60-a09b-4143-99c6-52f5e42bf60e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with BuildPart() as part_builder:\n", " with BuildSketch() as profile_sketch:\n", " with BuildLine() as line_builder:\n", " line = Polyline((100, -30),(-30, -30),(0, -10),\\\n", " (-30,10),(-20,20), (0,0), (70,70), close=False)\n", " line1 = fillet(radius=6,objects=line.vertices())\n", " w = offset(amount=3) \n", " \n", " make_face()\n", " extrude(amount=70)\n", " f = part_builder.faces().sort_by(Axis.Y)[-11]\n", " with BuildSketch() as bump_sk:\n", " with Locations((-15,18)):\n", " Circle(3)\n", " extrude(amount=70)\n", " with BuildSketch(f) as cutout_sketch:\n", " with Locations((-7,0)):\n", " RectangleRounded(35, 15, 2)\n", " #SlotCenterToCenter(10,9, rotation=90)\n", " #Circle(6)\n", " extrude(amount=35, both=True, mode=Mode.SUBTRACT)\n", " \n", "show(part_builder,reset_camera=False)" ] }, { "cell_type": "code", "execution_count": 20, "id": "ca8fe07f-818b-458d-989c-e93d248a8bec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "export_step(part_builder.part, \"phonestand1.step\")" ] }, { "cell_type": "code", "execution_count": null, "id": "1b70ab33-cade-49e7-afc6-579769e9aee7", "metadata": {}, "outputs": [], "source": [] } ], "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.10.8" } }, "nbformat": 4, "nbformat_minor": 5 }