cadquery_jupyter

cadquery_jupyter

Docker app from patrickstigler's Repository

Overview

CadQuery is an intuitive, easy-to-use Python module for building parametric 3D CAD models. Using CadQuery, you can write short, simple scripts that produce high quality CAD models. It is easy to make many different objects using a single script that can be customized. With CadQuery Jupyter you can design / code your models in the browser. View, and export them.

Jupyter for CadQuery / build123d

The Python package provides a Jupyterlab extension and a JupyterServer extension to view CadQuery, build123d, and OCP objects in JupyterLab

Current version: v5.2.0 (xx.xx.xx)

The full documentation lives at bernhard-42.github.io/ocp_viewer_docs — the Jupyter CadQuery chapter covers this viewer's specifics; this README gets you installed and running, and links into the rest.

Overview

Click on the "launch binder" icon to start Jupyter-CadQuery on binder:

Binder: Latest development version (Due to security restrictions, the measurement feature does not work on binder)

Installation

Note: JupyterLab 4.6.3 currently does not work with tornado 6.5.9, see here. Ensure to use tornado 6.5.8 for JupyterLab 4.6.3, e.g. pip install "tornado==6.5.8".

  • CadQuery

    1. Create and activate a virtual conda environment

      mamba create -n jcq python=3.12
      mamba activate jcq
      
    2. Install latest cadquery master

      mamba install -c conda-forge -c cadquery cadquery=master
      
    3. Install Jupyter CadQuery

      pip install jupyter-cadquery
      
  • build123d

    1. Create and activate a virtual environment (conda, pyenv-virtualenv, uv, ...)

    2. Install build123d

      pip install build123d
      
    3. Install Jupyter CadQuery

      pip install jupyter-cadquery
      

Jupyter CadQuery requires JupyterLab 4 (jupyterlab>=4.6.2,<5) and installs it if it is missing. The JupyterLab extension is prebuilt and ships inside the cad-viewer-widget dependency: no jupyter labextension step, no Node.js.

Known issue: ipykernel 7.x can stall a running notebook (a cell stays at [*] with an idle kernel). Until the ipykernel release that carries the fix, install pip install "ipykernel<7" — details and the workaround in Troubleshooting.

Verify the installation

jupyter lab extension list        # must list:  jupyter_cadquery 5.2.0 OK   (the viewer frontend)
jupyter server extension list     # must list:  jupyter_cadquery 5.2.0 OK   (the measurement backend)

A line "Extension package jupyter_cadquery took N s to import" is OCP and VTK loading, not an error. On a Mac the very first run can take minutes for the same reason.

Changed behavior from 4.x

  • The complete sidecar space will now be used for the viewer. For the old behaviour set cad_width and height
  • The default for show is reset_camera=Camera.KEEP now (unless set in ~/.jcq_config differently).
    • The viewer warns if the new object is too large or too small. To disable the warnings, use ignore_camera_warnings()
    • The old behavior can be achieved with set_defaults(reset_camera=Camera.RESET)
  • from jupyter_cadquery import * still works. For portable code with other viewers from the ocp viewer ecosystem use from ocp_viewer_core.viewer import *
  • mate_scale does not work any more, use helper_scale
  • The viewer now remembers paths in the tree that are shown/hidden and will show/hide the same paths for the newly shown CAD object

For all new features and fixes see CHANGELOG

First run

jupyter lab

and in a notebook:

from build123d import *
from jupyter_cadquery import *

open_viewer("CAD")
show(Box(1, 2, 3))

open_viewer puts the viewer into a sidecar panel next to the notebook; without it, show draws into the cell. From here on, everything is in the documentation.

Documentation

The full documentation lives at bernhard-42.github.io/ocp_viewer_docs — the Jupyter CadQuery chapter covers this viewer's specifics; everything below is a deep link into it.

Getting started

Working in the notebook

Working with the viewer

Python show* commands

Python API reference

Help

Demo Notebooks

Standard examples

Animated examples (requires pip install cadquery-massembly matplotlib):

Changes

see CHANGELOG.md

Licence

Apache-2.0.

Download Statistics

22,468
Total Downloads
265
This Month
127
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Details

Repository
bwalter42/jupyter_cadquery:3.1.0rc4
Last Updated2023-01-04
First Seen2022-05-17

Runtime arguments

Web UI
http://[IP]:[PORT:8888]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WorkdirPathrw

Container Path: /home/cp

Target
/home/cq
Value
/mnt/user/appdata/cadquery_jupyter/
WebUIPorttcp

Container Port: 8888

Target
8888
Value
8888