UNPKG

@leolee9086/my-pat-loader

Version:

AutoCAD PAT(填充图案)文件解析和线段生成工具

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