包含: - furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画) - autocad-plugin:AutoCAD 家具导出插件源码 - 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
242 lines
5.8 KiB
Markdown
242 lines
5.8 KiB
Markdown
# AutoCAD 家具导出插件
|
||
|
||
用于 AutoCAD 2024 的家具 3D 模型导出插件。导出板材模型和五金件安装位置,用于 Web 端 3D 展示和安装视频生成。
|
||
|
||
## 功能特点
|
||
|
||
- **只导出板材模型** - 五金件使用位置引用,文件体积小(1-3MB vs 30-50MB)
|
||
- **自动分组五金件** - 按几何特征自动识别相同类型的五金件
|
||
- **精确位置记录** - 记录每个五金件的安装位置和旋转角度
|
||
- **服务端自动匹配** - 上传后自动匹配五金件库
|
||
|
||
## 系统要求
|
||
|
||
- AutoCAD 2024
|
||
- Windows 10/11
|
||
- 具备读取 `%AppData%\Autodesk\ApplicationPlugins` 的用户权限
|
||
|
||
## 安装方法
|
||
|
||
### 方法 1:手动安装发版包(推荐给产品/实施)
|
||
|
||
1. 完全关闭 AutoCAD 2024
|
||
2. 解压 `dist/家具导出插件-v2.3.1-一键安装版.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.3.1-一键安装版/安装.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. **选择板材** - 框选所有板材实体,按 Enter 确认
|
||
2. **选择五金件** - 框选所有五金件,按 Enter 确认(可跳过)
|
||
3. **保存文件** - 选择保存位置
|
||
|
||
**输出文件:** `xxx_export.zip`,包含:
|
||
- `model.glb` - 板材 3D 模型
|
||
- `hardware.json` - 五金件位置数据
|
||
|
||
### FINFO - 查看实体信息
|
||
|
||
```
|
||
命令: FINFO
|
||
```
|
||
|
||
选择实体后显示其详细信息(类型、尺寸、图层等),用于调试。
|
||
|
||
## 输出格式
|
||
|
||
### hardware.json 示例
|
||
|
||
```json
|
||
{
|
||
"version": "1.0",
|
||
"exportedAt": "2024-01-15T10:30:00Z",
|
||
"sourceFile": "衣柜.dwg",
|
||
"software": "AutoCAD 2024",
|
||
"pluginVersion": "1.0.0",
|
||
"modelFile": "model.glb",
|
||
"panelCount": 12,
|
||
"hardwareTypes": [
|
||
{
|
||
"typeId": "type_000",
|
||
"signature": {
|
||
"width": 35.0,
|
||
"height": 12.0,
|
||
"depth": 12.0,
|
||
"volume": 4032.5
|
||
},
|
||
"instances": [
|
||
{
|
||
"position": { "x": 100.0, "y": 50.0, "z": 18.0 },
|
||
"rotation": { "x": 0, "y": 0, "z": 1.5708 },
|
||
"sourceLayer": "五金件"
|
||
},
|
||
{
|
||
"position": { "x": 100.0, "y": 150.0, "z": 18.0 },
|
||
"rotation": { "x": 0, "y": 0, "z": 1.5708 },
|
||
"sourceLayer": "五金件"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 工作流程
|
||
|
||
```
|
||
设计师 系统
|
||
─────── ──────
|
||
1. 打开 DWG 文件
|
||
2. FEXPORT
|
||
3. 框选板材 ────────────────→
|
||
4. 框选五金件 ──────────────→
|
||
5. 保存 ZIP ────────────────→ 上传 ZIP
|
||
↓
|
||
自动解析
|
||
↓
|
||
匹配五金件库
|
||
↓
|
||
保存到数据库
|
||
↓
|
||
3D 预览 ✓
|
||
```
|
||
|
||
## 开发
|
||
|
||
### 编译
|
||
|
||
```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
|