@leolee9086/my-pat-loader
Version:
AutoCAD PAT(填充图案)文件解析和线段生成工具
112 lines (79 loc) • 2.75 kB
Markdown
一个用于解析和处理AutoCAD .PAT(填充图案)文件的JavaScript模块。
- ✅ 支持带角度、原点、delta值和虚线定义的完整PAT规则
- ✅ 高精度计算PAT图案的矢量线段表示
- ✅ 支持缩放、旋转和偏移图案
- ✅ 轻量级实现,无外部依赖
- ✅ 包含Vue.js示例应用
```bash
git clone <repository-url>
cd my-pat-loader
npm install
```
这个库导出三个主要函数:
解析PAT文件文本内容为结构化数据。
```javascript
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" }
```
根据解析后的PAT数据,计算指定边界内的矢量线段。
```javascript
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, // 旋转角度
[] // 偏移
);
// 返回:[{start: {x, y}, end: {x, y}}, ...]
```
检查图案在当前设置下是否在边界上形成连续的模式。
```javascript
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, // 旋转角度
[] // 偏移
);
// 返回:{ isContinuous: true, continuityScore: 0.95, edgeContinuity: {...}, details: "..." }
```
项目包含一个基于Vue.js的完整示例应用,演示如何使用这个库来可视化PAT文件:
```bash
cd example
npm install
npm run dev
```
AutoCAD PAT文件格式的基本结构如下:
```
*图案名称[,描述]
角度, 原点X, 原点Y, 增量X, 增量Y[, 虚线定义...]
```
- 每个图案以`*`开头,后跟图案名称
- 后续每行定义一组平行线族
- 正数虚线定义表示绘制线段,负数表示不绘制(空白)
- 零长度虚线表示点
AGPL-3.0