233 lines
5.7 KiB
Markdown
233 lines
5.7 KiB
Markdown
# AutoCAD 家具导出插件
|
||
|
||
用于 AutoCAD 2024 的家具 3D 模型导出插件。当前主流程是按资产中心口径导出单板材、单组件或单五金件,用于后续辅助装配和规格款入库。
|
||
|
||
## 功能特点
|
||
|
||
- **单资产导出** - `FEXPORT` 默认导出单板材、单组件或单五金件
|
||
- **板材语义保留** - 导出孔位、孔组、吸附图样和吸附面,供辅助装配使用
|
||
- **五金规格提取** - 单五金模式保留几何签名、图层类型和实例信息
|
||
- **整套兼容保留** - 旧整套家具导出迁移到 `FEXPORTPRODUCT`
|
||
|
||
## 系统要求
|
||
|
||
- AutoCAD 2024
|
||
- Windows 10/11
|
||
- 具备读取 `%AppData%\Autodesk\ApplicationPlugins` 的用户权限
|
||
|
||
## 安装方法
|
||
|
||
### 方法 1:手动安装发版包(推荐给产品/实施)
|
||
|
||
1. 完全关闭 AutoCAD 2024
|
||
2. 解压 `dist/家具导出插件-v2.6.0-一键安装版.zip`
|
||
3. 将整个 `FurnitureExporter.bundle` 文件夹复制到:
|
||
|
||
```text
|
||
%AppData%\Autodesk\ApplicationPlugins\
|
||
```
|
||
|
||
最终目录应为:
|
||
|
||
```text
|
||
%AppData%\Autodesk\ApplicationPlugins\FurnitureExporter.bundle\Contents\FurnitureExporter.dll
|
||
```
|
||
|
||
4. 如果系统提示是否覆盖旧文件,选择“全部替换”
|
||
5. 重新打开 AutoCAD 2024
|
||
6. 输入命令 `FEXPORT`,能识别即表示安装成功
|
||
|
||
### 方法 2:一键安装
|
||
|
||
双击 `dist/家具导出插件-v2.6.0-一键安装版/安装.bat`
|
||
|
||
脚本会自动:
|
||
1. 复制插件到 `%AppData%\Autodesk\ApplicationPlugins\FurnitureExporter.bundle`
|
||
2. 写入当前用户的 AutoCAD 自启动项
|
||
3. 追加插件目录到可信路径
|
||
|
||
### 方法 3:一键编译(开发)
|
||
|
||
双击运行 `build.cmd` 或在 PowerShell 中执行 `.\build.ps1`
|
||
|
||
脚本会自动:
|
||
1. 检测 AutoCAD 2024 安装路径
|
||
2. 编译插件
|
||
3. 显示输出文件位置
|
||
|
||
如果自动检测失败,可以手动设置环境变量:
|
||
```cmd
|
||
set ACAD_PATH=D:\你的路径\AutoCAD 2024
|
||
build.cmd
|
||
```
|
||
|
||
### 方法 4:手动编译
|
||
|
||
```bash
|
||
# 设置 AutoCAD 路径(根据实际安装位置修改)
|
||
set ACAD_PATH=C:\Program Files\Autodesk\AutoCAD 2024
|
||
|
||
# 编译
|
||
cd FurnitureExporter
|
||
dotnet build -c Release
|
||
```
|
||
|
||
### 临时加载(仅开发调试用)
|
||
|
||
1. 打开 AutoCAD 2024
|
||
2. 输入命令 `NETLOAD`
|
||
3. 选择 `FurnitureExporter\bin\Release\net48\FurnitureExporter.dll`
|
||
|
||
### 自动加载
|
||
|
||
将插件以 Bundle 形式放入 AutoCAD 插件目录,AutoCAD 启动时自动加载:
|
||
|
||
```
|
||
%AppData%\Autodesk\ApplicationPlugins\FurnitureExporter.bundle
|
||
```
|
||
|
||
安装后无需重复配置,后续每次启动 AutoCAD 会自动加载插件。
|
||
|
||
## 使用方法
|
||
|
||
### FEXPORT - 导出单资产到资产中心
|
||
|
||
```
|
||
命令: FEXPORT
|
||
```
|
||
|
||
**操作步骤:**
|
||
|
||
1. **选择资产类型** - 板材 / 组件 / 五金
|
||
2. **选择实体** - 框选该单资产包含的 3D Solid 或图块,按 Enter 确认
|
||
3. **保存文件** - 选择 ZIP 保存位置
|
||
|
||
**输出文件:** `xxx_board_asset.zip` / `xxx_component_asset.zip` / `xxx_hardware_asset.zip`,包含:
|
||
- `model.obj` - 单资产模型
|
||
- `hardware.json` - 单资产结构化数据,包含 `exportMode: "single_asset"` 与 `assetTypeHint`
|
||
|
||
### FEXPORTPRODUCT - 整套家具兼容导出
|
||
|
||
```
|
||
命令: FEXPORTPRODUCT
|
||
```
|
||
|
||
仅用于旧产品链路兼容。新资产中心和辅助装配测试请优先使用 `FEXPORT`。
|
||
|
||
### FINFO - 查看实体信息
|
||
|
||
```
|
||
命令: FINFO
|
||
```
|
||
|
||
选择实体后显示其详细信息(类型、尺寸、图层等),用于调试。
|
||
|
||
## 输出格式
|
||
|
||
### hardware.json 示例
|
||
|
||
```json
|
||
{
|
||
"version": "2.6",
|
||
"exportedAt": "2026-05-11T10:30:00Z",
|
||
"sourceFile": "桌腿.dwg",
|
||
"software": "AutoCAD 2024",
|
||
"pluginVersion": "2.6.0",
|
||
"modelFile": "model.obj",
|
||
"exportMode": "single_asset",
|
||
"assetTypeHint": "COMPONENT",
|
||
"sourceEntityCount": 1,
|
||
"panelCount": 1,
|
||
"snapPatterns": [],
|
||
"snapSurfaces": [],
|
||
"hardwareTypes": []
|
||
}
|
||
```
|
||
|
||
## 工作流程
|
||
|
||
```
|
||
设计师 系统
|
||
─────── ──────
|
||
1. 打开 DWG 文件
|
||
2. FEXPORT
|
||
3. 选择资产类型(板材/组件/五金)
|
||
4. 框选单个资产实体 ───────→
|
||
5. 保存 ZIP ────────────────→ 上传到资产中心
|
||
↓
|
||
自动解析
|
||
↓
|
||
创建/更新资产族规格款
|
||
↓
|
||
保存到数据库
|
||
↓
|
||
辅助装配可用 ✓
|
||
```
|
||
|
||
## 开发
|
||
|
||
### 编译
|
||
|
||
```bash
|
||
cd FurnitureExporter
|
||
dotnet build -c Release
|
||
```
|
||
|
||
### 调试
|
||
|
||
1. Visual Studio 打开项目
|
||
2. 设置调试程序为 `acad.exe`(AutoCAD 2024)
|
||
3. F5 启动调试
|
||
|
||
### 项目结构
|
||
|
||
```
|
||
FurnitureExporter/
|
||
├── FurnitureExporter.csproj # 项目配置
|
||
├── Commands.cs # AutoCAD 命令
|
||
├── GlbExporter.cs # GLB 导出器
|
||
├── HardwareAnalyzer.cs # 五金件分析器
|
||
└── Models.cs # 数据模型
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### Q: 插件加载失败
|
||
|
||
- 确认 AutoCAD 版本为 2024
|
||
- 确认已安装 .NET 6.0 Runtime
|
||
- 检查 DLL 路径是否包含中文
|
||
|
||
### Q: 导出的模型显示不正确
|
||
|
||
- 确保板材是 3D Solid 实体
|
||
- 检查模型单位是否为毫米
|
||
|
||
### Q: 五金件未被识别
|
||
|
||
- 确保五金件是 3D Solid 或图块引用
|
||
- 检查是否正确框选了五金件
|
||
|
||
## 版本历史
|
||
|
||
### v2.1.0
|
||
- 新增倒角和圆角检测功能
|
||
- 导出数据增加 `edgeFeatures` 字段
|
||
- 优化 Brep 分析性能
|
||
|
||
### v2.0.0
|
||
- 新增孔位自动检测(通过 Brep API)
|
||
- 新增五金件-孔位-板材智能关联
|
||
- 导出数据增加 `panels`、`holes` 字段
|
||
- 支持孔位用途推断(铰链孔、偏心轮孔等)
|
||
|
||
### v1.0.0
|
||
- 初始版本
|
||
- 支持板材 GLB 导出
|
||
- 支持五金件位置提取
|
||
- 自动按几何特征分组
|
||
|
||
## 许可
|
||
|
||
MIT License
|