子件转换应用场景
1. 文件结构
业务端原始模型文件是一个zip格式的压缩包。其文件结构如下图:

- Lights:存放转换后的轻量化模型文件
- Models:存放待转换的原始模型文件
- Convert.json:与数据转换有关的参数信息
Convert.json 数据结构如下:
{
"Light": "Lights",
"Assembly": "Models\\asm0001.asm",
"Models": [
{
"Name": "Models\\asm0001.asm",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA760",
"Path": "4C31EE9A8A544FDCA24A58D0411EA760"
}
]
}
字段 | 必填 | 描述 |
---|---|---|
Light | 是 | 存放轻量化文件的文件夹名称。首次转换时,其值为空;非首次转换时,其值默认为“Lights”。如果其值为空,则系统判断为首次转换。 |
Assembly | 是 | 顶层装配文件在压缩包里的相对路径。 |
Models | 是 | 装配体及其所有子装配和零件文件的相对路径及其Guid。Lights和输出文件夹里的轻量化文件以Guid命名 |
Guid | 是 | 不一定非得是GUID,只要保证独一无二即可。 |
Path | 否 | 轻量化文件的相对路径或轻量化文件的HTTP路径。如果为空,则默认同级目录Guid文件夹下路径。 |
2. 首次转换
应用场景:装配体或零件首次独立转换时。
数据组织:Models 文件夹中存放原始模型文件,如下图。Lights 文件夹为空。

Convert.json 数据结构如下:
{
"Assembly": "Models\\asm0001.asm",
"Light": "",
"Models": [
{
"Name": "Models\\asm0001.asm",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA760"
},
{
"Name": "Models\\prt0001.prt",
"Guid": "21ED1C58D5324C0C9BA4D43958336F35"
},
{
"Name": "Models\\asm0002.asm",
"Guid": "9FA1B25211B3412298A4C1692A248808"
},
{
"Name": "Models\\prt0002.prt",
"Guid": "2BB4CC323CC84E0B969A25A103C1083A"
}
]
}
3. 新增修改转换
3.1 新增未转换过的模型
应用场景:顶层装配asm0001.asm 下面新增子装配asm0002.asm.2 和 零件prt0003.prt.2 。新增的子装配和零件均没有被转换过,不存在轻量化数据。需要转换新增的子装配和零件,并更新顶层装配的轻量化文件。
数据组织:Models 文件夹中存放新增的模型文件,及更新后的顶层装配文件。 Lights 文件夹中存放顶层装配体的轻量化文件 4C31EE9A8A544FDCA24A58D0411EA760 。

Convert.json 数据如下:
{
"Light": "Lights",
"Assembly": "Models\\asm0001.asm",
"Models": [
{
"Name": "Models\\asm0001.asm",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA760"
},
{
"Name": "Models\\asm0002.asm.2",
"Guid": "9FA1B25211B3412298A4C1692A248808"
},
{
"Name": "Models\\prt0003.prt.2",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA772"
}
]
}
3.2 新增已转换过的模型
应用场景:顶层装配asm0001.asm 下面新增子装配asm0002.asm.2 。新增的子装配已转换过,轻量化文件夹guid为9FA1B25211B3412298A4C1692A248808。数据转换时,不需要重新转换新增的子装配,只需要更新顶层装配的轻量化文件。
数据组织: Models 文件夹中存放新增子装配的原始模型文件,及更新后的顶层装配文件。 Lights 文件夹中存放顶层装配的轻量化文件 4C31EE9A8A544FDCA24A58D0411EA760 和 新增子装配的轻量化文件 9FA1B25211B3412298A4C1692A248808 。

Convert.json 数据如下:
{
"Light": "Lights",
"Assembly": "Models\\asm0001.asm",
"Models": [
{
"Name": "Models\\asm0001.asm",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA760"
},
{
"Name": "Models\\asm0002.asm.2",
"Guid": "9FA1B25211B3412298A4C1692A248808"
}
]
}
3.3 模型更新-其父装配未更新
应用场景:子装配体asm0002.asm.2 下面的零件 prt0003.prt.2 有更新, 而子装配asm0002.asm.2 没有更新。数据转换时,只转换有更新的零件。
数据组织:Models 文件夹中存放更新后的原始模型文件,Lights 文件夹存为空。

Convert.json 数据如下:
{
"Assembly": "Models\\prt0003.prt.2",
"Light": "",
"Models": [
{
"Name": "Models\\prt0003.prt.2",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA772"
}
]
}
3.4 模型更新-其父装配有更新
应用场景:子装配 asm0002.asm.2 下面的零件 prt0003.prt.2 有更新, 子装配asm0002.asm.2 也有更新。数据转换时,更新子装配和零件。
数据组织:Models 文件夹存放更新后的原始模型文件,Lights 文件夹存放子装配的轻量化文件 9FA1B25211B3412298A4C1692A248808 。

Convert.json 数据如下:
{
"Light": "Lights",
"Assembly": "Models\\asm0002.asm.2",
"Models": [
{
"Name": "Models\\asm0002.asm.2",
"Guid": "9FA1B25211B3412298A4C1692A248808"
},
{
"Name": "Models\\prt0003.prt.2",
"Guid": "4C31EE9A8A544FDCA24A58D0411EA772"
}
]
}
3.5 零件删除
应用场景:子装配体asm0002.asm.2 下面的零件 prt0003.prt.2 被删除。数据转换时,只需要更新对应子装配体的轻量化文件。
数据组织:Models 文件夹存放子装配的原始模型文件,Lights 文件夹存放子装配的轻量化文件。

Convert.json 数据如下:
{
"Light": "Lights",
"Assembly": "Models\\asm0002.asm.2",
"Models": [
{
"Name": "Models\\asm0002.asm.2",
"Guid": "9FA1B25211B3412298A4C1692A248808"
}
]
}