1.0.0 • Published 6 months ago
@leolee9086/my-pat-loader v1.0.0
My PAT Loader
一个用于解析和处理AutoCAD .PAT(填充图案)文件的JavaScript模块。
特性
- ✅ 支持带角度、原点、delta值和虚线定义的完整PAT规则
- ✅ 高精度计算PAT图案的矢量线段表示
- ✅ 支持缩放、旋转和偏移图案
- ✅ 轻量级实现,无外部依赖
- ✅ 包含Vue.js示例应用
安装
# 尚未发布到NPM,目前可通过Git仓库直接使用
git clone <repository-url>
cd my-pat-loader
# 如果需要依赖安装
npm install主要API
这个库导出三个主要函数:
parsePatContent(patTextString)
解析PAT文件文本内容为结构化数据。
import { parsePatContent } from 'my-pat-loader';
const patContent = `*STARS,Stars pattern
45, 0, 0, 0, 20, 0, -20
135, 0, 0, 0, 20, 0, -20`;
const parsedPat = parsePatContent(patContent);
// 返回: { name: "STARS", linesDefs: [...], description: "Stars pattern" }computePatternLines(parsedPatData, boundary, scale, rotation, offset)
根据解析后的PAT数据,计算指定边界内的矢量线段。
import { parsePatContent, computePatternLines } from 'my-pat-loader';
// 解析PAT数据
const parsedPat = parsePatContent(patContent);
// 计算线段
const lines = computePatternLines(
parsedPat,
{ minX: 0, minY: 0, maxX: 100, maxY: 100 }, // 边界
1.0, // 缩放
0.0, // 旋转角度
[0, 0] // 偏移
);
// 返回:[{start: {x, y}, end: {x, y}}, ...]checkPatternContinuity(parsedPatData, boundary, scale, rotation, offset)
检查图案在当前设置下是否在边界上形成连续的模式。
import { parsePatContent, checkPatternContinuity } from 'my-pat-loader';
// 解析PAT数据
const parsedPat = parsePatContent(patContent);
// 检查连续性
const continuity = checkPatternContinuity(
parsedPat,
{ minX: 0, minY: 0, maxX: 100, maxY: 100 }, // 边界
1.0, // 缩放
0.0, // 旋转角度
[0, 0] // 偏移
);
// 返回:{ isContinuous: true, continuityScore: 0.95, edgeContinuity: {...}, details: "..." }示例应用
项目包含一个基于Vue.js的完整示例应用,演示如何使用这个库来可视化PAT文件:
cd example
npm install
npm run devPAT文件格式参考
AutoCAD PAT文件格式的基本结构如下:
*图案名称[,描述]
角度, 原点X, 原点Y, 增量X, 增量Y[, 虚线定义...]- 每个图案以
*开头,后跟图案名称 - 后续每行定义一组平行线族
- 正数虚线定义表示绘制线段,负数表示不绘制(空白)
- 零长度虚线表示点
许可
AGPL-3.0
1.0.0
6 months ago