# 中望CAD集成配置
## 1. 安装
1. 复制集成文件夹 `Connor` 到中望CAD目录(复制整个文件夹,不是里面的内容)
2. 将`cn.net.connor.zwcadm_1.0.0.jar`复制到tc的`plugins`目录,并进行注册
3. 将`connor_zwcad_itk.dll`复制到服务器tc的`bin`目录,并添加到首选项
**自动加载:**
> 注意事项:
>
> 增加的行中所包含的命令会在图纸打开时运行,服务器上运行的CAD建议不要做自动加载的配置
```text
修改CAD目录下Zwcadm文件夹中的ZWCADM2020.lsp文件
1. 自动加载dll
增加行:(command "NETLOAD" "Connor/connor_zwcadm.dll" )
2. 从文件提取信息
增加行:(command "KReadInfo")
KReadInfo命令,是读取图纸文件夹中info.txt文件中的标题栏信息并进行同步,用于从tc打开时同步数据
示例:
========================================
(vl-load-com)
(load "ZWCAD2020doc.lsp")
(command "NETLOAD" "Connor/connor_zwcadm.dll" )
(command "KReadInfo")
(princ)
========================================
```
**从TC打开图纸时同步属性**
> 通过cn.net.connor.zwcadm_1.0.0.jar包将属性信息提取到中间文件,然后通过KReadInfo命令自动运行将信息提取到打开的图纸
需要配置首选项:
Connor_MCAD_[版本对应的对象类型名称]
描述:对应类型对象的版本下cad图纸打开时,按首选项配置将属性映射信息写到中间文件
格式:`TC属性位置.TC属性名称=图纸标题栏中的属性名称`
示例:
```text
首选项名称:Connor_MCAD_Item
值:
item.item_id=图样代号
item.object_name=图样名称
```
## 2. 登录
**CAD命令:**KLogin
**配置:**
> 需要修改文件:connor_zwcad.dll.config
>
> 该文件记录tc服务地址、是否输出日志以及记录上一次登录的用户
>
> 配置以键值对的形式保存在appSettings
```text
```
其中`tc_host`对应的value是tc四层服务地址,`log_status`对应是否输出日志,`app_folder`对应集成文件夹名称
## 3. 保存和同步属性
**CAD命令:**
1. 保存:KSaveToTC
2. 批量保存:KBatchSaveToTC
3. 更新属性:KSyncTitleFromTC
4. 更新BOM:KSyncBomViewFromTC
5. 更新BOM行:KSyncBomFromTC (从明细栏的id查找对象进行更新,无法同步bom属性)
**首选项配置:**
> 涉及首选项
>
> Connor_MCAD_[标题栏或明细栏块名称]
>
> Connor_MCAD_UploadFile
1. Connor_MCAD_[标题栏或明细栏块名称]
描述:配置对应标题栏块或明细栏块中从图纸到TC的属性映射关系
格式:`TC属性位置.[#]TC属性名称=图纸块中的属性名称`
TC属性位置:
```text
bomline, item, rev, itemmaster, revmaster
分别对应
bom行,对象,版本,对象主属性表单,版本主属性表单
不区分大小写
重复的属性配置,下面的覆盖上面的,item.item_id读取时跳过空值
注意:必须配置item.object_type=对象类型名称
```
TC属性名称前加#,表示从tc提取属性时,取字符串类型的真实值
2. Connor_MCAD_UploadFile
描述:配置文件上传信息
格式:
```
第一行:数据集和版本的关系
第二行:数据集类型名称
第三行:数据集文件引用名称
第四行:(可选)FMS服务地址
```
示例:
```text
IMAN_specification
SF6_dwg
SF6_dwg
http://127.0.0.1:4544
```
## 4. 服务
**注意事项:由于服务在CAD程序中运行,如果图纸操作过程中出现提示窗,会导致进程等待用户执行操作,进而导致后面的请求无法正常进行,请注意不要出现这种情况**
**CAD命令:**
1. 启动服务:KStartServer
2. 关闭服务:KStopServer
**首选项配置:**
> 需要在文件`connor_zwcad.dll.config`中增加转PDF配置
```text
```
`titles`:图框名称,多个用英文分号分隔,并与另外两个配置一一对应
`media_names`对应标题栏的打印图纸的纸张类型
`rotates`对应标题栏的打印图纸的的图纸方向,true表示旋转90度
## 5. 签名
**Action Handler:** Connor_CAD_Signature
涉及首选项:
> Connor_MCAD_Signature
>
> Connor_MCAD_UploadFile
1. Connor_MCAD_Signature
描述:配置流程中版本属性与图纸标题栏属性的对应关系
格式:
```text
版本类型名称:格式占位符(随便写,非机械版的标题栏名称位置):标题栏属性名称1=属性位置1.属性名称1;标题栏属性名称2=属性位置2.属性名称2
```
```text
属性位置包含:item, rev, itemmaster, revmaster
分别对应:对象,版本,对象主属性表单,版本主属性表单
```
2. Connor_MCAD_UploadFile
此首选项配置在“保存和同步属性”已进行说明
## 6. 转PDF
**Action Handler:** Connor_CAD_Convert_PDF
功能:将流程目标下版本中的图纸转为PDF
不需要额外配置
## 7. 压力测试
**Action Handler:** Connor_CAD_Test
功能:循环执行签名和转PDF操作,但是不进行上传,文件保存在Temp目录里类似`2580C76DDFB84762996724FBA4AD4CE6`名称的文件夹中,当CAD关闭时,循环结束
## 8. handler临时文件
首选项:Connor_MCAD_RemoveTempFile,逻辑型,单值
```text
true: 删除临时文件
false:保留临时文件
未找到首选项时默认为false,即保留临时文件
```
### 更新日志
20210708
```text
1. 如果明细栏一个对象的数量有多个,保存到TC中后需要可进行打包解包
2. 更新明细栏功能不需要再更新整个BOM结构了,需要实现的是当点击更新明细栏的时候,读取明细栏的item_id那个属性即代号,如果在TC中找到相应的对象则将其属性更新到明细栏其余对应的属性当中,如果发现没有填写或在TC中没找到相应的对象那么则不更新即可
配置文件中的attr_index的值需要改为“代号”,即itemid对应的cad明细栏属性名称
```