OCP CAD Viewer for VS Code is an extension to show CadQuery and build123d objects in VS Code via three-cad-viewer
Prerequisites
pip
available in the Python enviroment that will be used for CAD developmentSteps:
OCP CAD Viewer for VS Code allows to install a code-snippets file for build123d:
Ctrl-Shift-P / Cmd-Shift-P
and select OCP CAD Viewer: Install CAD snippets into b:
a list of snippets appears that guide the user through creation of some basic build123d patternsshow(*cad_objs, names=None, colors=None, alphas=None, port=None, **kwargs):
Parameters:
Show CAD objects in Visual Studio Code
Parameters
- cad_objs: All cad objects that should be shown as positional parameters
Keywords for show:
- names: List of names for the cad_objs. Needs to have the same length as cad_objs
- colors: List of colors for the cad_objs. Needs to have the same length as cad_objs
- alphas: List of alpha values for the cad_objs. Needs to have the same length as cad_objs
- port: The port the viewer listens to. Typically use 'set_port(port)' instead
Valid keywords to configure the viewer (**kwargs):
- axes: Show axes (default=False)
- axes0: Show axes at (0,0,0) (default=False)
- grid: Show grid (default=False)
- ticks: Hint for the number of ticks in both directions (default=10)
- ortho: Use orthographic projections (default=True)
- transparent: Show objects transparent (default=False)
- default_color: Default mesh color (default=(232, 176, 36))
- reset_camera: Reset camera position, rotation and zoom to default (default=True)
- zoom: Zoom factor of view (default=1.0)
- default_edgecolor: Default mesh color (default=(128, 128, 128))
- render_edges: Render edges (default=True)
- render_normals: Render normals (default=False)
- render_mates: Render mates (for MAssemblies)
- mate_scale: Scale of rendered mates (for MAssemblies)
- deviation: Shapes: Deviation from linear deflection value (default=0.1)
- angular_tolerance: Shapes: Angular deflection in radians for tessellation (default=0.2)
- edge_accuracy: Edges: Precision of edge discretization (default: mesh quality / 100)
- ambient_intensity Intensity of ambient ligth (default=1.0)
- direct_intensity Intensity of direct lights (default=0.12)
The command support the CQ-Editor parameters obj
, name
and options
plus additional viewer specific args:
show_object(obj, name=None, options=None, port=None, **kwargs)
Parameters:
Incrementally show CAD objects in Visual Studio Code
Parameters:
- obj: The CAD object to be shown
Keywords for show_object:
- name: The name of the CAD object
- options: A dict of color and alpha value: {"alpha":0.5, "color": (64, 164, 223)}
0 <= alpha <= 1.0 and color is a 3-tuple of values between 0 and 255
- parent: Add another object, usually the parent of e.g. edges or vertices with alpha=0.25
- clear: In interactice mode, clear the stack of objects to be shown
(typically used for the first object)
- port: The port the viewer listens to. Typically use 'set_port(port)' instead
Valid keywords to configure the viewer (**kwargs):
- axes: Show axes (default=False)
- axes0: Show axes at (0,0,0) (default=False)
- grid: Show grid (default=False)
- ticks: Hint for the number of ticks in both directions (default=10)
- ortho: Use orthographic projections (default=True)
- transparent: Show objects transparent (default=False)
- default_color: Default mesh color (default=(232, 176, 36))
- reset_camera: Reset camera position, rotation and zoom to default (default=True)
- zoom: Zoom factor of view (default=1.0)
- default_edgecolor: Default mesh color (default=(128, 128, 128))
- render_edges: Render edges (default=True)
- render_normals: Render normals (default=False)
- render_mates: Render mates (for MAssemblies)
- mate_scale: Scale of rendered mates (for MAssemblies)
- deviation: Shapes: Deviation from linear deflection value (default=0.1)
- angular_tolerance: Shapes: Angular deflection in radians for tessellation (default=0.2)
- edge_accuracy: Edges: Precision of edge discretization (default: mesh quality / 100)
- ambient_intensity Intensity of ambient ligth (default=1.0)
- direct_intensity Intensity of direct lights (default=0.12)
import cadquery as cq
from ocp_vscode import show_object, reset_show, set_defaults
reset_show() # use for reapeated shift-enter execution to clean object buffer
set_defaults(axes=True, transparent=False, collapse=1, grid=(True, True, True))
box = cq.Workplane().box(1, 2, 1).edges().chamfer(0.4)
show_object(box, name="box", options={"alpha": 0.5})
sphere = cq.Workplane().sphere(0.6)
show_object(
sphere,
# show_object args
"sphere",
{"color": (10, 100, 110)},
# three-cad-viewer args
collapse="1",
reset_camera=False,
ortho=False
)