Compare commits

...

46 Commits

Author SHA1 Message Date
7f8ec666b6 vault backup: 2025-08-18 20:08:14 2025-08-18 20:08:14 +08:00
dff79aaa6a vault backup: 2025-08-18 20:06:14 2025-08-18 20:06:14 +08:00
40e3efa88f vault backup: 2025-08-18 16:14:18 2025-08-18 16:14:18 +08:00
8a28a07265 vault backup: 2025-08-18 16:12:18 2025-08-18 16:12:18 +08:00
55e010a726 vault backup: 2025-08-18 16:10:18 2025-08-18 16:10:18 +08:00
42a575eff3 vault backup: 2025-08-18 16:08:18 2025-08-18 16:08:18 +08:00
8adaf8eebd vault backup: 2025-08-18 15:47:33 2025-08-18 15:47:34 +08:00
61d224bb01 vault backup: 2025-08-18 15:36:48 2025-08-18 15:36:48 +08:00
2eea7c231e vault backup: 2025-08-18 15:34:48 2025-08-18 15:34:48 +08:00
9a5d4e13a1 vault backup: 2025-08-18 15:32:48 2025-08-18 15:32:48 +08:00
a624c2e2f7 vault backup: 2025-08-18 15:28:48 2025-08-18 15:28:48 +08:00
355f19ce59 vault backup: 2025-08-18 15:24:48 2025-08-18 15:24:48 +08:00
ee1c0c8cb7 vault backup: 2025-08-18 14:19:04 2025-08-18 14:19:04 +08:00
fbffe792ed vault backup: 2025-08-18 14:02:30 2025-08-18 14:02:30 +08:00
f8f29cf3cf vault backup: 2025-08-18 13:58:30 2025-08-18 13:58:30 +08:00
200a355815 vault backup: 2025-08-18 13:56:30 2025-08-18 13:56:30 +08:00
2bab87144f vault backup: 2025-08-18 13:54:29 2025-08-18 13:54:30 +08:00
4014670765 vault backup: 2025-08-18 13:52:29 2025-08-18 13:52:30 +08:00
1a8e072703 vault backup: 2025-08-18 13:34:44 2025-08-18 13:34:45 +08:00
4cdaea8c5c vault backup: 2025-08-18 13:29:47 2025-08-18 13:29:47 +08:00
8876b05622 vault backup: 2025-08-18 13:27:47 2025-08-18 13:27:47 +08:00
04ba0fbad9 vault backup: 2025-08-18 13:25:46 2025-08-18 13:25:47 +08:00
6e4df35cda vault backup: 2025-08-18 13:20:54 2025-08-18 13:20:55 +08:00
8e71122072 Merge remote-tracking branch 'origin/main' 2025-08-18 13:14:44 +08:00
6397fa320b vault backup: 2025-08-18 13:14:37 2025-08-18 13:14:37 +08:00
565fa10c3b vault backup: 2025-08-15 16:07:36 2025-08-15 16:07:36 +08:00
2c32f83101 vault backup: 2025-08-15 16:06:14 2025-08-15 16:06:14 +08:00
3cfa34f713 vault backup: 2025-08-15 16:04:14 2025-08-15 16:04:14 +08:00
91cea98663 vault backup: 2025-08-15 16:02:14 2025-08-15 16:02:14 +08:00
70a032f2a6 vault backup: 2025-08-15 16:00:14 2025-08-15 16:00:14 +08:00
0e0cafd5c0 vault backup: 2025-08-15 15:58:14 2025-08-15 15:58:14 +08:00
b626014bb8 vault backup: 2025-08-15 15:56:14 2025-08-15 15:56:14 +08:00
c583ea1cda vault backup: 2025-08-15 15:54:14 2025-08-15 15:54:14 +08:00
2633438cb3 vault backup: 2025-08-15 15:52:14 2025-08-15 15:52:14 +08:00
44a89889ed vault backup: 2025-08-15 10:06:17 2025-08-15 10:06:18 +08:00
c00ee34773 vault backup: 2025-08-13 12:33:21 2025-08-13 12:33:22 +08:00
3963584796 vault backup: 2025-08-12 22:10:27 2025-08-12 22:10:28 +08:00
bf7657a21a vault backup: 2025-08-12 22:08:58 2025-08-12 22:08:58 +08:00
d10e54e2a7 vault backup: 2025-08-12 22:04:58 2025-08-12 22:04:58 +08:00
249c30af53 vault backup: 2025-08-12 22:02:58 2025-08-12 22:02:58 +08:00
680ed0f0e3 vault backup: 2025-08-12 21:58:58 2025-08-12 21:58:58 +08:00
4a06034017 vault backup: 2025-08-12 21:56:58 2025-08-12 21:56:58 +08:00
c0cdef5e04 vault backup: 2025-08-12 21:54:58 2025-08-12 21:54:58 +08:00
b1dcf3669c vault backup: 2025-08-12 16:32:58 2025-08-12 16:32:59 +08:00
7be287cff8 vault backup: 2025-08-12 16:30:58 2025-08-12 16:30:59 +08:00
610fe7c45c vault backup: 2025-08-12 16:28:58 2025-08-12 16:28:59 +08:00
33 changed files with 238 additions and 72 deletions

View File

@ -39,6 +39,6 @@
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.5087618855792602,
"scale": 0.5087618855792608,
"close": true
}

View File

Before

Width:  |  Height:  |  Size: 401 KiB

After

Width:  |  Height:  |  Size: 401 KiB

View File

@ -0,0 +1,2 @@
# 问题情况

View File

@ -23,6 +23,7 @@
- [MainService.exe遇到访问冲突(Access Violation)](MainService.exe遇到访问冲突(Access%20Violation).md)
- [Office文件浏览时出现客户端闪退](Office文件浏览时出现客户端闪退.md)
- [Teamwork无法启动](Teamwork无法启动.md)
- [PDF专用浏览器报错缺少PDF文件](PDF专用浏览器报错缺少PDF文件.md)
### 移动端

View File

@ -0,0 +1,19 @@
# 问题情况
完成了 [Office转PDF文件集成设置](../相关操作/1.0-EDM/250.Office转PDF文件-WPS集成设置.md) ,将 [文档浏览器设置](../相关操作/0.5-SETOUT/25.实施必设参数.md#文档浏览器设置) 成了PDF专用浏览器但是在浏览 `Word``Excel` 等文件时,报错提示缺少 `PDF` 文件
![](assets/71180f3106070584bbe05082f0fcc0d4.png)
# 解决方法
`Windows` 服务里面看看 `PLM` 三个服务的路径分别指向哪里
可以看到,指向的路径并不一致(可能是之前挪了服务端的目录导致的)
| PLMMainService_IM | PLMMainService |
| ------------------------------------------------ | ------------------------------------------------ |
| ![](assets/42029debaef26280d4d6b57535925294.png) | ![](assets/1ab2e5288de88bfe214712edc543756a.png) |
只要 **卸载服务** 后再 **安装服务** 即可
![](assets/d26d1d6611dfe9aafb6264b3adb0e594.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -1,6 +1,6 @@
# 问题情况
导入文件、提取属性时,提示`Word``Excel`没有安装,无效的类字符串
导入文件、提取属性时,提示 `Word``Excel` 没有安装,无效的类字符串,涉及到 `Word. Application``Excel. Application`
![](assets/52ccfc0a20db461082a953b13070d6c.png)
@ -25,3 +25,7 @@
注:设置好文件的默认打开方式
![](assets/Pasted%20image%2020250214142742.png)
## 补充
使用 `WPS` 的,未必就不能用 `Office Word` 去签字,如果出现问题,可以切换试试看

View File

@ -116,7 +116,7 @@
### 批量导入用户
在三品PLM系统当中,用户与 [岗位](44.岗位设置.md#批量导入岗位) 是可以通过批量导入进行创建的,若导入时存在同名的用户,则会进行覆盖
在三品 `PLM` 系统当中,用户与 [岗位](44.岗位设置.md#批量导入岗位) 是可以通过批量导入进行创建的,若导入时存在同名的用户,则会进行覆盖
批量导入用户的模板制作完成后,可在 `Excel` 中填写相应的信息
@ -170,6 +170,24 @@
![image-20250103101309833](assets/image-20250103101309833.png)
##### 补充导入
对已经有的用户,想要批量性的导入部分属性到系统中,需要具备两个关键属性,即 **用户名****所在部门路径**,具备这两个关键属性后,即可顺畅导入到系统中
可以通过 **企业配置****用户****搜索** → 名称中输入 `*` 来获取到所有系统用户,以及其所在位置
![](assets/Pasted%20image%2020250818160814.png)
在表头右键选择 **导出****Excel文件** 即可获取到包含全部信息的 `Excel`
![](assets/Pasted%20image%2020250818160926.png)
若没有 **所在部门路径**,则所有的用户在导入后都会被移动到 “**用户**” 下
![](assets/Pasted%20image%2020250818161300.png)
若要补充导入的属性当中,有部分用户已经维护了其值,则需要在导入表中将这部分用户的导入属性值都给维护上,否则就会被覆盖成空值
### 用户所属角色管理
在新建用户弹窗中,通过 **所属角色** 页签可对该用户的所属角色进行管理

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View File

@ -387,6 +387,10 @@
![image-20241017211332646](assets/image-20241017211332646.png)
#### BUG
变更流程的 **变更生效** 过程不能添加 [邮件通知](#邮件通知) ,会出现报错
## 设置决策人
对参与人勾选 **决策人** 后,在执行该流程时,决策人将会成为该过程的 **必须执行人**

View File

@ -6,15 +6,23 @@
## 维护三维模型属性
维护三维模型的属性值,可以通过 [填写参数模型](51.Creo接口使用.md#填写参数模型) 功能去维护,也可以在 **工具** 选项卡中选择 **参数** 可以对当前文件的属性进行维护
![](assets/Pasted%20image%2020250323174548.png)
## 保留格式模板
在值中填写这个属性要维护的信息即可
[保留格式模板](56.Creo工程图模板制作.md#保留格式模板) 需要使用到 **格式模板**、**绘图模板**
![](assets/Pasted%20image%2020250812162936.png)
## 维护工程图
### 保留格式模板
如果制作的图纸模板是 [保留格式模板](56.Creo工程图模板制作.md#保留格式模板) 的形式,那么维护工程图时,需要使用到 **格式模板**、**绘图模板**
当需要为三维模型生成工程图时,在 `Creo` 中选择 **新建** 按钮
![](assets/Pasted%20image%2020250324160556.png)
![](assets/Pasted%20image%2020250815160414.png)
选择 **使用模板**,去引用我们保存下来的 **绘图模板**
@ -36,13 +44,13 @@
![](assets/Pasted%20image%2020250325153922.png)
## 整合绘图与格式模板
### 整合绘图与格式模板
[整合绘图与格式模板](56.Creo工程图模板制作.md#整合绘图与格式模板) 只会使用到 **绘图模板**
如果制作的工程图模板是 [整合绘图与格式模板](56.Creo工程图模板制作.md#整合绘图与格式模板) 的形式,那么维护工程图时,只会使用到 **绘图模板**
当需要为三维模型生成工程图时,在 `Creo` 中选择 **新建** 按钮
![](assets/Pasted%20image%2020250324160556.png)
![](assets/Pasted%20image%2020250815160433.png)
选择 **使用模板**,去引用我们保存下来的 **绘图模板**

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

View File

@ -78,11 +78,11 @@
### 物料导入模板制作
从Excel导入物料需要使用到 [批量导入物料](Files/Documents/批量导入物料.xlsx) 模板
`Excel` 导入物料,需要使用到 [批量导入物料](Files/Documents/批量导入物料.xlsx) 模板
需要注意的是Excel模板要求对标题栏的名称做定义即物料编码一栏的名称是 **ItemCode**,物料名称一栏的名称是 **ItemName**,物料分类一栏的名称是 **itemkindid**
需要注意的是,`Excel` 模板要求对标题栏的名称做定义,即物料编码一栏的名称是 **ItemCode**,物料名称一栏的名称是 **ItemName**,物料分类一栏的名称是 **itemkindid**
若有其他信息需要一并导入可根据需要自行调整Excel模板加入其他要导入的属性**字段名** 设置为Excel单元格的名称即可操作如下
若有其他信息需要一并导入可根据需要自行调整Excel模板加入其他要导入的属性**字段名** 设置为 `Excel` 单元格的名称即可,操作如下
![](assets/Pasted%20image%2020250105134730.png)

View File

@ -311,6 +311,12 @@
>
> 则流程名称中 **附件名称** 的码段信息为"演示11"
#### 补充说明
为了更好的应对 `Word``Excel`,系统会将最后一个 `.` 之后的内容给截取掉,即 `测试.docx` 的文件,其附件名称就是 `测试`
但是这对于 [窗体表单](../1.0-EDM/175.窗体表单.md) 而言,并不友好,因为 **窗体表单** 不需要文件后缀名,名为 `测试.01` 的文件,按照这个逻辑,其附件名称就是 `测试`,丢失了 `.01` 内容
### 附件编码
### 父对象属性

View File

@ -741,7 +741,7 @@ end.
## 整数判断
期望当物料 **启用库存周期复检**`cbxusr_FEnableCyclistQCSTK` 为true 时,**复检周期须不小于0**`fedtusr_FStockCycle` 的值要大于0**不小于提醒提前期**`fedtusr_FEWLeadDay`),对 **复检周期** 进行校验
期望当物料 **启用库存周期复检**`cbxusr_FEnableCyclistQCSTK` `true` 时,**复检周期须不小于0**`fedtusr_FStockCycle` 的值要大于 `0`**不小于提醒提前期**`fedtusr_FEWLeadDay`),对 **复检周期** 进行校验
```delphi
// 定义变量存储转换后的整数数值
@ -785,3 +785,48 @@ begin
end;
end.
```
## 消息弹窗确认后执行脚本
点击按钮后,弹出消息弹窗,需要进行一次确认校验,点击确认后,才会执行脚本
```delphi
uses MyClass,Variables,BaseUtil,CommonFunc,DataConst,CFFrm,CFSimplePropFrm,Forms,StdCtrls,Variants,SysUtils,Classes,Controls,Dialogs,
CHostIntf,ProductClas,DocClas,LoginClas,VirtualTrees,CEntClas,PathClas;
var
TempStr: string;
begin
if Application.MessageBox('确定同步吗','同步确认', 1) = 1 then
begin
TempStr := '';
if fedtusr_lb.Text <> '' then
begin
TempStr := TempStr + fedtusr_lb.Text;
end;
if fedtusr_KHMC.Text <> '' then
begin
if TempStr <> '' then
TempStr := TempStr + '-'; // 添加分隔符
TempStr := TempStr +fedtusr_KHMC.Text;
end;
if fedtusr_khth.Text <> '' then
begin
if TempStr <> '' then
TempStr := TempStr + '-'; // 添加分隔符
TempStr := TempStr + fedtusr_khth.Text;
end;
if fedtusr_banbh.Text <> '' then
begin
if TempStr <> '' then
TempStr := TempStr + '/'; // 添加分隔符
TempStr := TempStr + fedtusr_banbh.Text;
end;
mmmmuf_4.Text := TempStr; // 直接赋值
end;
end.
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 KiB

View File

@ -0,0 +1,35 @@
# 介绍
当流程流转到 **项目立项** 这一步骤时,只有我们在流程附件中去创建项目,这一流程才能提交
![](assets/Pasted%20image%2020250815101055.png)
否则会出现提示,无法提交流程
![](assets/0.png)
## 如何操作
先在流程审批中找到对应的流程 → 流程附件 → 添加对象 → 创建项目实例
![](assets/60eedc16d25980847fb864de71d4def2.png)
在弹窗中去选择对应的项目模版 → 确定
![](assets/4abc9cd71ec20fa73689a8271002b9be.png)
1. 填写项目名称
2. 选择项目位置
3. 选择项目文档库位置
4. 下一步
![](assets/435f16e1ba6d056e54173f0679e21a6f.png)
检查成员设定 → 下一步 → 完成,即可创建项目
![](assets/fcbc2703613a538ec3a2e7e9bf4dc17e.png)
项目创建之后,流程就可以提交了

View File

@ -0,0 +1,80 @@
# 介绍
`Creo`(原 `Pro/ENGINEER`)中,草绘(`Sketch`)是创建 `3D` 模型的基础步骤,主要用于定义 `2D` 几何形状,这些形状随后可通过拉伸、旋转等操作生成 `3D` 模型
## 草绘的作用
1. **定义几何形状**
通过绘制 `2D` 几何图形(如直线、圆、矩形等),为 `3D` 建模提供基础
2. **参数化设计**
草绘支持参数化设计,通过尺寸和约束控制几何形状,便于后续修改和调整
3. **创建特征**
草绘用于生成拉伸、旋转、扫描等 `3D` 特征,是构建复杂模型的基础
4. **添加约束**
通过几何约束(如平行、垂直、相切等)和尺寸约束,确保几何形状的精确性和稳定性
5. **支持复杂建模**
草绘可用于创建复杂曲面和结构,支持高级建模需求
6. **提高设计效率**
参数化和约束功能使设计更高效,便于快速修改和优化
## 形状的作用
1. **拉伸:**
**作用:** 将封闭的 `2D` 草绘轮廓沿垂直于草绘平面的方向线性延伸,生成具有 **恒定截面**`3D` 实体(加材料)或切除材料(减材料)
**核心价值:** 构建模型的基础几何体(如方块、圆柱)、凸台、凹槽、薄壁结构
2. **旋转:**
**作用:** 将 `2D` 草绘截面绕一条中心轴旋转一定角度通常360°生成 **轴对称**`3D` 实体或曲面。同样可用于加材料或切材料
**核心价值:** 高效创建所有具有回转对称性的零件,如轴、盘、轮、瓶、碗、法兰等
3. **扫描:**
**作用:** 使一个 `2D` 草绘截面沿着一条预先定义的 `2D``3D` 轨迹线移动扫掠,生成连续的 `3D` 形状。轨迹决定了特征的走向
**核心价值:** 创建沿特定路径延伸且截面可能恒定或变化的特征,如管道、线束、绳索、装饰条、弹簧(恒定截面),或变截面把手(需配合关系式)
4. **混合:**
**作用:** 将两个或多个位于不同平面上的 `2D` 草绘截面连接起来,系统在截面之间进行**过渡**,生成光滑的 `3D` 实体或曲面。截面需具有相同数量的图元(边/顶点)
**核心价值:** 构建截面形状或大小逐渐变化的特征,如从方形过渡到圆形的连接件、锥台、复杂有机形态
5. **扫描混合:**
**作用:** **融合扫描和混合** 的功能。定义一个扫描轨迹,并在轨迹上的特定位置放置不同的草绘截面。系统将截面沿轨迹扫描并在截面间进行混合过渡
**核心价值:** 创建沿复杂路径延伸且截面形状和/或大小可控变化的特征,提供极高的设计灵活性,如飞机机翼、变截面弹簧、特殊螺纹收尾、人体工学手柄
6. **边界混合:**
**作用:** 利用在 **两个方向**(第一方向和第二方向)上定义的、一系列 **非平行** 的草绘基准曲线、模型边或基准点,构建出光滑的 **自由形式曲面**。这些曲线定义了曲面的边界和内部形状
**核心价值:** 构建复杂、高质量、光顺的 **曲面**,是工业设计、汽车、航空航天领域创建复杂外观曲面(如车身、手机外壳、消费电子产品)的核心工具。这些曲面通常后续会转化为实体
7. **孔:**
**作用:** 虽然孔特征本身有专用工具,但其定位常依赖于草绘基准点(在草绘中创建的点)。通过在草绘中放置基准点,可以精确控制多个孔的位置
**核心价值:** 实现 **阵列化、精确定位** 的钻孔操作(如法兰盘上的螺栓孔阵),是草绘在特征定位上的关键应用
# 操作
## 选择草绘平面
`Creo` 中选择草绘平面是创建 `3D` 模型的关键步骤,因为它决定了 `2D` 草绘在 `3D` 空间中的位置和方向,直接影响后续建模的准确性和效率
在新建的三维模型上选择草绘平面,意为在此面基础上进行草绘(也可以先点击 **草绘** 按钮,再选择平面)
![](assets/Pasted%20image%2020250324123944.png)
进入到草绘后,点击 **草绘视图** 按钮,可以定向草绘平面,使其与屏幕平行,展示效果如下图所示
![](assets/Pasted%20image%2020250324124118.png)
## 绘制2D几何图形
`Creo` 中,绘制 `2D` 几何图形和创建三维模型之间有着密切的关联关系。`2D` 几何图形是构建三维模型的基础,通过将 `2D` 图形转化为 `3D` 特征,可以实现复杂的三维建模
在草绘平面上绘制 `2D` 图形
![](assets/Pasted%20image%2020250324125537.png)
绘制完成后保存草绘,后续可通过对 `2D` 图形拉伸、旋转、扫描等操作生成 `3D` 特征
![](assets/Pasted%20image%2020250324125720.png)
## 生成3D特征
`2D` 图形拉伸、旋转、扫描等操作生成 `3D` 特征
![](assets/Pasted%20image%2020250324125928.png)
拉伸效果如图所示
![](assets/Pasted%20image%2020250324130002.png)
这样就生成出了三维模型

View File

@ -1,56 +0,0 @@
# 介绍
`Creo`(原 `Pro/ENGINEER`)中,草绘(`Sketch`是创建3D模型的基础步骤主要用于定义2D几何形状这些形状随后可通过拉伸、旋转等操作生成3D模型
## 草绘的作用
1. **定义几何形状**
通过绘制2D几何图形如直线、圆、矩形等为3D建模提供基础
2. **参数化设计**
草绘支持参数化设计,通过尺寸和约束控制几何形状,便于后续修改和调整
3. **创建特征**
草绘用于生成拉伸、旋转、扫描等3D特征是构建复杂模型的基础
4. **添加约束**
通过几何约束(如平行、垂直、相切等)和尺寸约束,确保几何形状的精确性和稳定性
5. **支持复杂建模**
草绘可用于创建复杂曲面和结构,支持高级建模需求
6. **提高设计效率**
参数化和约束功能使设计更高效,便于快速修改和优化
# 操作
## 选择草绘平面
`Creo` 中选择草绘平面是创建3D模型的关键步骤因为它决定了2D草绘在3D空间中的位置和方向直接影响后续建模的准确性和效率
在新建的三维模型上选择草绘平面,意为在此面基础上进行草绘(也可以先点击 **草绘** 按钮,再选择平面)
![](assets/Pasted%20image%2020250324123944.png)
进入到草绘后,点击 **草绘视图** 按钮,可以定向草绘平面,使其与屏幕平行,展示效果如下图所示
![](assets/Pasted%20image%2020250324124118.png)
## 绘制2D几何图形
`Creo`绘制2D几何图形和创建三维模型之间有着密切的关联关系。2D几何图形是构建三维模型的基础通过将2D图形转化为3D特征可以实现复杂的三维建模
在草绘平面上绘制2D图形
![](assets/Pasted%20image%2020250324125537.png)
绘制完成后保存草绘后续可通过对2D图形拉伸、旋转、扫描等操作生成3D特征
![](assets/Pasted%20image%2020250324125720.png)
## 生成3D特征
对2D图形拉伸、旋转、扫描等操作生成3D特征
![](assets/Pasted%20image%2020250324125928.png)
拉伸效果如图所示
![](assets/Pasted%20image%2020250324130002.png)
这样就生成出了三维模型