用于创建草图并导出为 DWG 的免费 Node.js 库
开源 Node.js 2D 和 3D CAD 建模器库允许以编程方式创建、编辑和转换 2D 草图为 STL、DWG 和 SVG。
什么是 JSketcher 库?
jSketcher 是一个功能强大的 Node.js 库,旨在提供简洁而强大的 API,用于直接在 Web 应用程序中创建、编辑和导出草图。它在构建时充分考虑了性能和易用性,并利用 Node.js 的异步特性高效地处理交互式绘图任务。JSketcher 是一个轻量级的开源 JavaScript 库,旨在以编程方式创建和操作 2D 草图。它提供了简单直观的 API 来绘制形状、线条和曲线,是需要动态生成图表或草图的开发者的绝佳选择。该项目在 GitHub 上维护,欢迎贡献和社区反馈,是重视开源创新的开发者的绝佳选择。
JSketcher 提供了一个开发者友好的界面,使绘图画布的设置和管理变得简单。该库提供内置工具,可用于徒手绘图、形状创建(例如矩形、圆形)、文本插入等。它包含高级几何操作,例如相交、偏移和变换(例如缩放、旋转和平移)。这些功能让您可以轻松创建复杂的图表。该库具有高度可扩展性,允许开发者根据需要添加自定义形状、工具和功能。无论您是构建教育工具、协作白板还是创意设计平台,jSketcher 都能提供强大、灵活且模块化的解决方案,激发您项目的创造力。
JSketcher 入门
推荐使用 npm 安装 JSketcher。请使用以下命令顺利安装。
通过 npm 安装 JSketcher
npm install jsketcher
您也可以手动安装;直接从 GitHub 存储库下载最新版本的文件。
通过 JavaScript 创建简单草图
JSketcher 库提供了简洁易用的 API,允许软件开发者以最少的代码创建草图。该库旨在方便初学者使用,同时也为经验丰富的开发者提供高级功能。以下示例演示了软件开发者如何创建新草图、添加圆形和矩形,然后将草图导出为 SVG 字符串。
如何在 Node.js 应用程序中创建新的草图并绘制基本形状?
const { Sketch, Shapes } = require('jsketcher');
// Create a new sketch
const sketch = new Sketch();
// Add a circle
const circle = Shapes.circle(50, 50, 30); // (x, y, radius)
sketch.add(circle);
// Add a rectangle
const rectangle = Shapes.rectangle(100, 100, 80, 40); // (x, y, width, height)
sketch.add(rectangle);
// Export the sketch as SVG
const svg = sketch.toSVG();
console.log(svg);
在 Node.js 中导出和保存草图
开源 JSketcher 库让软件开发者只需几行代码即可轻松加载 CAD 草图并将其导出为各种其他受支持的文件格式。该库支持将草图导出为多种格式,包括 PDf、SVG 和 JSON。这使得该库易于与其他工具集成,或在 Web 应用程序中显示草图,这对于需要持久存储或共享功能的应用程序非常有用。以下示例展示了如何创建多边形并将草图导出为 JSON 对象。
如何在 Node.js 中创建多边形并将草图导出为 JSON 对象?
const { Sketch, Shapes } = require('jsketcher');
// Create a new sketch
const sketch = new Sketch();
// Add a polygon
const polygon = Shapes.polygon([
[10, 10],
[50, 30],
[30, 70],
[5, 50]
]);
sketch.add(polygon);
// Export the sketch as JSON
const json = sketch.toJSON();
console.log(json);
实时协作
jSketcher 不仅处理核心绘图功能,还与 Node.js 集成,使其成为实时协作应用程序的理想之选。通过将其与 Socket.io 等库结合使用,您可以将绘图事件广播给多个用户,从而实现共享白板体验。以下服务器端代码片段设置了一个基本的 Express 应用程序,该应用程序使用 Socket.io 来中继绘图事件,为多用户协作绘图奠定了基础。
如何将 jSketcher 库与 Socket.io 集成?
const express = require('express');
const http = require('http');
const socketIO = require('socket.io');
const JSketcher = require('jsketcher');
const app = express();
const server = http.createServer(app);
const io = socketIO(server);
app.use(express.static('public')); // Serve client-side files
// When a client connects, set up real-time event broadcasting
io.on('connection', (socket) => {
console.log('A client connected.');
// Relay drawing data to all clients except the sender
socket.on('drawing', (data) => {
socket.broadcast.emit('drawing', data);
});
socket.on('disconnect', () => {
console.log('A client disconnected.');
});
});
server.listen(3000, () => {
console.log('Server is running on port 3000.');
});
高级几何操作和形状自定义
开源 JSketcher 库包含高级几何操作,允许软件开发者执行诸如相交、偏移和变换(例如缩放、旋转和平移)等操作。这些功能使轻松创建复杂图表成为可能。此外,对于 CAD 应用程序而言,自定义至关重要。jSketcher 允许开发者添加具有详细参数(例如尺寸、坐标和颜色属性)的形状,从而确保每个元素都能得到精确控制。