diff --git a/.gitignore b/.gitignore index 9a0b1753..e6414ddb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /sdf.egg-info *.stl - +__pycache__/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..046be38c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "ms-python.python", + "ms-toolsai.jupyter" + ] +} \ No newline at end of file diff --git a/docs/images/vscad.png b/docs/images/vscad.png new file mode 100644 index 00000000..c6aeb5be Binary files /dev/null and b/docs/images/vscad.png differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..4e1d99db --- /dev/null +++ b/requirements.txt @@ -0,0 +1,9 @@ +# install this folder +. +# requirements for visualization +ipykernel +ipywidgets +pyvista +trame +trame-vtk +trame-vuetify diff --git a/vscad.ipynb b/vscad.ipynb new file mode 100644 index 00000000..4ff1c9a7 --- /dev/null +++ b/vscad.ipynb @@ -0,0 +1,113 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "20cf6981", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "from sdf import *\n", + "import pyvista as pv" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7adef045", + "metadata": {}, + "outputs": [], + "source": [ + "# create shape\n", + "\n", + "f = sphere(1) & box(1.5)\n", + "\n", + "c = cylinder(0.5)\n", + "f -= c.orient(X) | c.orient(Y) | c.orient(Z)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5b8032f5", + "metadata": {}, + "outputs": [], + "source": [ + "# display and output variables\n", + "window_size = [1600, 900]\n", + "stl_samples = 2**26\n", + "file_name = \"object.stl\"\n", + "\n", + "# create plotter\n", + "pv.global_theme = pv.themes.DarkTheme()\n", + "plotter = pv.Plotter(window_size=window_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a4768d1f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "min -0.84543, -0.84543, -0.84543\n", + "max 0.845431, 0.845431, 0.845431\n", + "step 0.00416084, 0.00416084, 0.00416084\n", + "73560059 samples in 2197 batches with 16 workers\n", + " 100% (2197 of 2197) [##############################] 0:00:05 0:00:00 \n", + "1010 skipped, 379 empty, 808 nonempty\n", + "1852312 triangles in 4.73984 seconds\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "15191bf28d9a4f309afe82a3d70e809d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Widget(value='