我们很多人可能都用过AutoCAD、FreeCAD之类的CAD软件,也有很多人可能知道并且使用过个强大的交互式数学计算平台JupyterLab,JupyterLab有非常强大功能和非常棒用户体验,那么可以在JupyterLab镜像进行CAD 3D设计和建模么?
答案当然是肯定的,这就是今天虫虫要介绍了JupyterCAD (CAD),这是一个CAD辅助设计引入到JupyterLab的环境的系统,支持JupyterLab强大的扩展,支持专门JupyterCAD应用程序和已经通过Python API实现CAD操作的程序化和自动脚本化。
用JupyterCAD我们可以Jupyter生态环境体系中很轻松地地创建、编辑和共享3D设计,另外和Jupyter一样支持在团队条件下多人的协作制作和共享,这是其他专业CAD软件所无法实现的。
安装
和Jupyter生态系统中的其他软件一样,JupyterCAD安装也非常简单,就是一键安装。可以使用pip或者mamba
注意JupyterCAD依赖于JupyterLab 4,所以安装之前,你的JupyterLab环境需要先升级到新的JupyterLab 4版本。
JupyterCA架构
JupyterCA系统主要依赖两个得重要的开源组件OpenCascade.js和OpenCascade,然后集成了jupyter_collaboration实现实时协作功能。
为了执行所有几何操作,JupyterCAD 使用自定义的OpenCascade.js构建,它链接OpenCascade库的Emscripten到JavaScript和WebAssembl纽带。JupyterCAD的CAD内核在单独的线程上运行,允许用户以接近本机的速度执行复杂的操作。还可以为多用户提供JupyterCAD服务时降低服务器负载。
JupyterLab 4的实时协作(RTC)不仅涉及编辑Notebook,而且已成为构建协作应用程序的框架。使用jupyter_collaboration可以帮助加速JupyterCAD中 RTC功能的开发。Collaborative Editing建立在共享数据模型之上其中 jupyter_collaboration处理所有传输和冲突解决,而Follow Mode使用提供的轻量级通知系统Awareness。
使用
JupyterCAD使用最新的JupyterLab 4版本构建,将CAD功能引入JupyterLab 4,相结合增强性能和可访问性改进。JupyterCAD支持以三种方式的使用:集成在JupyterLab环境中运行,或以独立应用程序的运行的方式,或那些以编程方式执行所有操作。
JupyterLab集成
使用JupyterCAD扩展程序可直接在JupyterLab中使用。打开和编辑FreeCAD 文件,执行CAD操作,包括创建3D基元、应用布尔运算符和分解视图。JupyterCAD 的扩展无缝集成到JupyterLab中,为CAD爱好者和数据科学家等提供了一个直观的环境。
独立APP
为了获得简化的CAD体验,JupyterCAD提供了一个专门的应用程序,可以纯CAD功能界面下运行和操作。
独立JupyterCAD APP的启动和JupyterLab或Jupyter Notebook一样简单:
这个专用应用程序的构建方式与即将推出的Jupyter Notebook 7类似。它是使用JupyterLab核心组件和自定义扩展从头开始构建的。与JupyterLab非常相似,它提供主题和本地化支持,以及即将推出的更多计划功能。
Python API
对于精通程序用户可以使用JupyterCAD的Python API进行程式化的CAD操作。JupyterCAD允许用户以编程方式可视化、创建和操作Jupyter Notebook中的形状。
例如,可以打开一个FreeCAD文件并从notebook修改它:
团队实时协作
协同编辑
JupyterCAD的突出特点之一是其共享编辑功能,它可以无缝连接JupyterCAD 生态系统中不同界面的用户。无论协作者是使用专用的JupyterCAD应用程序、JupyterLab扩展,还是在notebook中使用Python API,对共享文档所做的任何更改都会立即反馈到i所有用户。
实时协作允许使用Python API的个人对CAD文档进行修改,同时使用 JupyterLab扩展或JupyterCAD应用程序为协作者提供同步视图。这可确保所有参与者都能访问最新版本的设计,促进高效沟通并消除手动同步或文件交换的需要。
跟随模式
借助JupyterCAD的跟随模式功能,协作变得更加流畅。可以实时关注其他用户的图像操作移动和查看调整。这种模式可以让用户深入了解设计过程,并增强团队成员之间的沟通。
注释系统
JupyterCAD中的注释系统为3D设计添加了一个交互层。可以为CAD文件中的特定形状添加注释、提供上下文、提供反馈或编写说明。
总结
JupyterCAD还是一个新生的软件,可以实现常规的CAD设计的同时,和JupyterLab生态系其他组件一起用来实现科学计算和更加复杂应用程序的。对于熟悉了CAD系统老手想尝试一个新鲜环境的用户,以及熟悉JupyterLab环境下想增加一个新的CAD功能用户都值得尝试。
领取专属 10元无门槛券
私享最新 技术干货