用于创建参数化 2D 和 3D CAD 设计的 JavaScript 库

开源 JavaScript CAD 库允许程序员创建参数化的 2D 和 3D 设计。通过免费 API 创建您自己的 3D 和 2D 几何渲染器.

什么是 JSCAD?

JSCAD 是一个开源免费的 JavaScript 库,允许软件开发者在浏览器环境中,在自己的 JavaScript 应用程序中创建和操作 3D 模型。该库设计简洁易用且非常灵活,是各种应用的理想之选。JSCAD 提供了一系列工具和函数,可轻松创建复杂模型,并提供一系列自定义选项,用于调整模型的外观和功能。

JSCAD 是一款功能强大的 3D 模型创建工具,可用于从游戏娱乐到科学研究和工业设计等各种应用。JSCAD 库支持多种文件格式,包括 STL、OBJ 和 3MF,可轻松导出模型以供其他软件应用程序使用。该库功能多样,用户可以组合不同的形状和元素来创建复杂的结构和模型,使其成为设计师、工程师和业余爱好者的多功能工具。

JSCAD 拥有非常友好的用户界面,设计极具随性。该库提供了一系列自定义选项,允许用户根据自己的特定需求和偏好调整模型的外观和功能。凭借丰富的自定义选项、先进的功能以及对多种文件格式的支持,JSCAD 是一款功能强大的工具,适用于广泛的应用领域。

Previous Next

JSCAD 入门

推荐使用 npm 安装。请使用以下命令顺利安装。

Install JSCAD via npm

 npm install @jscad/modeling 

您也可以手动安装;直接从 GitHub 存储库下载最新版本的文件。

通过 JavaScript API 创建新设计

开源 OpenCascade 库支持某些操作的多线程。由于 JavaScript 是单线程语言,该库本身并不支持多线程。不过,开发者可以在应用程序中使用 Web Worker 在单独的线程中执行某些任务,从而提高性能和响应速度。以下示例演示了如何使用 Web Worker 在单独的线程中执行繁重的计算任务,同时保持主 UI 的响应速度。

如何通过 JavaScript API 创建设计并导出为 STL 格式?

 const {CAG, CSG} = require('@jscad/csg');

// create a simple shape like a cube:

const cube = CSG.cube({
  center: [0, 0, 0],
  radius: 10
});

//export your design in a desired format:

const stlSerializer = require('@jscad/stl-serializer');
const stlData = stlSerializer.serialize(result);
console.log(stlData);

在 JavaScript 应用中转换设计格式

开源 JSCAD 库使软件开发人员能够将任何设计格式转换为其他受支持的文件格式。该库支持各种常用文件格式,例如 STL、AMF、DXF、JSON、X3D、SVG 图像等等。要转换现有文件的格式,首先需要加载现有文件并选择输出文件格式。设计可以作为文件附件轻松共享给其他人,例如邮件、消息等。

如何通过 JavaScript API 加载设计并转换其格式?

const {CSG} = require('@jscad/modeling')
const {STL} = require('@jscad/stl-serializer')

// Load the design file in the desired format
const stlString = fs.readFileSync('design.stl', 'utf8')

//Convert the STL format to a JSCAD CSG object:

const design = STL.parse(stlString)
const stlString = STL.serialize(design)
fs.writeFileSync('manipulated_design.stl', stlString)

通过 JavaScript 应用进行 CAD 形状转换

JSCAD 库使软件开发者能够轻松地在自己的 JavaScript 应用程序中创建 3D 形状和模型。原始形状可以进行任意次数的转换。该库提供了一组用于形状转换的函数和特性,例如围绕 X、Y 和 Z 轴以任意给定角度旋转形状、按任意比例缩放形状、将形状平移(移动)到另一个位置、沿 X、Y 和 Z 轴对齐或居中形状、镜像(反射)形状等等。

如何通过 JavaScript API 实现绕单轴的形状旋转?

const { cuboid } = require('@jscad/modeling').primitives
const { rotateX,rotateY,rotateZ } = require('@jscad/modeling').transforms
 
const myshape = cuboid({size: [5, 20, 5]})
let newshape = rotateX((Math.PI * 2 / 4), myshape)
newshape = rotateY((Math.PI * 2 / 24), newshape)
newshape = rotateZ((Math.PI * 2 / 12), newshape)
 中国人