首次提交: OnebotCatalog 项目代码与文档(含 NX 按需生成服务二期、后台、一键启动)
This commit is contained in:
163
sample-data/tools/NX母模建模操作说明书.md
Normal file
163
sample-data/tools/NX母模建模操作说明书.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# 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+U,Ctrl+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 |
|
||||
Reference in New Issue
Block a user