Files
OnebotCatalog/sample-data/tools/NX母模建模操作说明书.md

164 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NX 2506 参数化母模建模操作说明书
> 目的:为欧霓博目录软件建立"一个母模覆盖全系列所有型号组合"的参数化零件,
> 配套 `nx-batch-export.vb` 批量导出 STEP。
> 读者NX 建模工程师。**建模前先通读一遍,严格按命名规范执行。**
---
## 0. 核心概念(先想清楚再动手)
```
CSV 参数表 (数值源头) ←── 列名必须与母模表达式名一致 ──→ NX 母模 (公式/特征)
↓ ↓
nx-batch-export.vb (翻译官) ── 改表达式 → 更新模型 ──→ 导出 STEP
```
- **表达式名 = CSV 列名**(一字不差,区分大小写):`bore``stroke``magnet``mount`
- 开关类表达式另起名字并在 journal CONFIG 区映射:`magOn``mountIdx`
- 所有"会变"的尺寸必须表达式化;所有"有无"的特征必须按表达式抑制
- 建模完成后验收标准:**手动改 3 组不同参数组合,模型能正确重建且无错误**
---
## 1. 建模前规划
### 1.1 确定本系列的几何键(决定哪些组合要分别导出)
几何键 = 影响外形的一切参数组合。以 KC 系列为例:
| 参数 | 是否影响外形 | 母模处理 |
|---|---|---|
| type 型号段 (00/02/03 单杆/双轴/双轴可调) | ✅ | 双轴 = 第二根活塞杆特征组按表达式抑制 |
| bore 缸径 | ✅ | 尺寸表达式 |
| stroke 行程 | ✅ | 尺寸表达式 |
| magnet 磁石 | ✅(磁石槽+开关导轨) | 特征组按表达式抑制 (magOn=0/1) |
| mount 固定形式 | ✅(端盖耳座/支座/法兰特征) | 特征组按表达式抑制 (mountIdx=0~6) |
### 1.2 表达式命名清单(先建全,再开始画)
在母模里**先建立全部表达式**(工具→表达式 Ctrl+E带注释
| 名称 | 类型/初值 | 公式 | 注释 |
|---|---|---|---|
| bore | Number / 32 | 32 | 缸径 mm基准值journal 会覆盖) |
| stroke | Number / 50 | 50 | 行程 mm |
| rodLen | Number | stroke + 60 | 活塞杆长(联动示例,按实际结构改) |
| bodyLen | Number | stroke + 缸体常数 | 缸筒长(联动) |
| magOn | Number / 1 | 1 | 磁石开关1=有磁石 0=无 |
| magPos | Number | stroke + 40 | 磁石中心位置(联动;若独立规格则写常数+journal 映射) |
| guideLen | Number | stroke + 30 | 开关导轨长(联动) |
| mountIdx | Number / 0 | 0 | 安装形式0=基本 1=FA 2=FB 3=CA 4=CB 5=LB 6=YB |
| typeTwin | Number / 0 | 0 | 双轴开关1=双轴(第二根杆特征组抑制式引用它) |
> 命名建议全小写、驼峰bore/stroke/magOn与 CSV 列名一致;开关类加 On/Idx 后缀。
---
## 2. 建模步骤KC 母模示例)
### 步骤 1建缸体主体
1. 新建零件 → 存为 `KC_master.prt`
2. 草图:缸筒截面(**全约束**!)——外径引用 `bodyR = bore/2 + 壁厚` 等派生表达式,不要写死数
3. 拉伸长度引用 `bodyLen` 表达式
### 步骤 2端盖与活塞杆
- 前盖/后盖草图定位引用**基准坐标系或已有表达式**(严禁引用会被抑制的特征面)
- 活塞杆:圆柱特征,直径/长度引用表达式,定位在轴心
- **双轴型号02/03**:把第二根活塞杆+对应孔做成**特征组**,按表达式抑制:
```
右键特征 → 特征组 → 命名为 group_twin
右键 group_twin → 抑制 → 按表达式抑制
→ 表达式列表里新建 twinOn = 1抑制表达式写 if(twinOn==1)(1)else(0)
```
### 步骤 3磁石槽有/无 切换)
1. 在缸筒上画磁石槽:草图 → 拉伸求差(布尔 Subtract
2. 槽位置引用 `magPos`(中心),长度引用 `guideLen`
3. 磁石槽+导轨特征全选 → 特征组 `group_magnet`
4. 按表达式抑制:`if(magOn==1)(1)else(0)`
5. 开关导轨(如有独立件外形)同样入组
> ⚠️ 若倒角/圆角引用磁石槽的边,把倒角也放进 group_magnet否则抑制后更新报错。
### 步骤 4安装形式特征组7 种切换)
1. 以"基本型"端盖为底
2. 每种形式单独建模FA 法兰、FB 后法兰、CA 单耳、CB 双耳、LB 脚架孔、YB 支座孔),每组做完立即:
- 全选该组特征 → 特征组 `group_mount_FA` 等 6 个组
- 按表达式抑制,条件式:`if(mountIdx==1)(1)else(0)`FA 对应 1依此类推
3. 建模次序建议:先建完**基本型全部结构**,再逐个叠加形式特征,最后统一分组抑制
> 特征跨实体布尔(求和/求差)时,目标体选基本体,别选会被抑制的特征体。
### 步骤 5验证必须做
| 验证项 | 操作 | 通过标准 |
|---|---|---|
| 尺寸联动 | 改 bore=125 → Ctrl+F7 更新 | 无报错,模型整体放大 |
| 行程联动 | 改 stroke=1000 | 缸筒/活塞杆/导轨跟着变 |
| 磁石切换 | magOn=0/1 | 槽消失/出现,无悬空特征 |
| 形式切换 | mountIdx=0~6 逐个试 | 每值对应正确外形 |
| 双轴切换 | typeTwin=0/1 | 第二杆出现/消失 |
| 极限组合 | bore=320 + stroke=1000 + magOn=1 + mountIdx=6 | 极端组合不破面 |
验收后再交给 journal 跑批量。
---
## 3. Journal 配置nx-batch-export.vb
文件头有完整注释。**建模工程师只需改 CONFIG 区**
```vb
' ============================ CONFIG 区 ============================
Dim csvPath As String = "D:\catalog\params.csv" ' ← 改成 catalog\csv\KC.csv
Dim outDir As String = "D:\catalog\step_out\" ' ← 改成 catalog\step\
' 1) 尺寸映射: NX 表达式名 → CSV 列名
exprMap.Add("bore", "bore")
exprMap.Add("stroke", "stroke")
' 有独立表达式就加: exprMap.Add("magPos", "magpos") ← CSV 里也要有这一列
' 2) 枚举开关映射: {CSV列名, 列值, NX表达式名, 表达式值}
switchRules.Add({"magnet", "", "magOn", "0"}) ' 无磁石
switchRules.Add({"magnet", "M", "magOn", "1"}) ' 有磁石
switchRules.Add({"mount", "", "mountIdx", "0"}) ' 基本型
switchRules.Add({"mount", "FA", "mountIdx", "1"}) ' 前盖固定
...(按你们母模实际的表达式名和取值改)
' ================================================================
```
**运行**NX 里 工具 → 日记 → 播放 → 选 `nx-batch-export.vb`(不是 Ctrl+UCtrl+U 只认 .dll
---
## 4. 全流程走查(建模 → 目录上线)
```
1. NX 母模验收 (步骤 5 的验证表)
2. journal CONFIG 改好 → 播放 → 挂机批量导出 (已去重, 同文件只导一次)
3. STEP 落盘 catalog\step\ → 双击 OnebotCatalog\bin\维护入口.bat
→ 目录制作器 → 【重建全量目录】
4. 自测 (发布门禁自动跑 25 项, 缺文件会拦)
5. 停预览服务器 → publish.ps1 → 三份产物
6. 网页 localhost:8080 验证 3D + 下载
```
---
## 5. 常见问题排查
| 现象 | 原因 | 处理 |
|---|---|---|
| 导出后模型没变化 | journal 里表达式名与母模对不上 | 对照 Ctrl+E 列表逐名核对 |
| 更新报"更新失败/内部错误" | 被抑制特征被其它特征引用(边/面) | 把引用它的特征也入同一个抑制组 |
| 改 mountIdx 后外形不对 | 抑制条件式写错(== 写成 = | 条件式格式: `if(mountIdx==1)(1)else(0)` |
| 抑制后草图悬空 | 草图定位引用了会被抑制的边 | 定位改引用基准轴/面 |
| journal 报"参数表缺少列" | CSV 表头与 exprMap/switchRules 不一致 | 表头名与 CONFIG 统一 |
| 导出的 STEP 在网页渲染异常 | 用了特殊特征(钣金/焊接件) | 导出前抽空合并实体,尽量常规特征 |
| 中文乱码 | 编辑 .vb 后没跑 fix-bom.ps1 | 每次改完 journal 跑一次 fix-bom |