前端接口对象及方法
简介:ZwCloud2D 是前端 SDK 主类,存在多个命名空间,进行不同的操作。
ZwEditor:界面加载类 ZwDataProcessor:数据获取类 ZwDataManager:数据加载类 ZwMessageCallback:消息回调类
# 1 ZwEditor
ZwEditor 为界面加载类,进行 SDK 中界面相关显示
# 1.1 ZwInit()
简介
SDK 接收 DIV 元素进行界面的加载
语法
ZwCloud2D.ZwEditor.ZwInit(container);
参数
container: HTMLDivElement div 元素作为容器,SDK 将在该容器内生成组件。
描述
ZwCloud2D.ZwEditor.ZwInit 接受 DIV 元素,生成对应的显示
示例
let container = document.getElementById('container');
ZwCloud2D.ZwEditor.ZwInit(container);
# 1.2 ZwSetPageConfig()
简介
ZwSetPageConfig 方法能够更改用户配置
语法
ZwCloud2D.ZwEditor.ZwSetPageConfig(settings);
参数
settings: Object 配置数据,是一个 Object 类型的值。 其中 top,left,bottom,right 是面板处于各方位下的默认宽度,目前界面共包含三种面板,分别是 layerPanel, xrefPanel, commandPanel,对应图层,外部参照,命令行。 对于面板数据,包含以下属性:
- WindowOrient: 面板初始位置设置,允许"left"、"bottom"、"top"、"right"。
- WindowVisible: 面板初始显示设置,仅允许"hide"和"show"。
- index: 面板在某一方位下的排列序号,从 0 开始,逐渐递增。
- xval、yval: 面板处于浮动情况下,相对于画布左上角的 x、y 坐标。
- width、height: 面板处于浮动情况下,宽度和长度设置。
- showPosition: 面板可显示位置,类型是一个数组,允许"left"、"bottom"、"top"、"right"。
- options: 是对于绘图中的一些设置,显示在 options 命令的弹窗
配置如下:
- optimizationLevel: 图形优化级别,数字类型,有效值为 0~2,值越大优化级别越高,级别不同图纸的绘制速度以及呈现效果不同。
- textOptimizationLevel: 文字优化等级,数字类型,有效值为 1~5,影响文字退化阈值大小,仅在 optimizationLevel=2 时生效。
- antialias: 布尔值,是否打开绘制抗锯齿。
- commentsPageSize: 数字类型, 评论单页显示数。
- continuousDraw: 布尔值,是否启用评论连续绘制气泡。
- cursorSize: 数字类型,十字光标的大小。
- zoomLevel: 数字类型,滚轮缩放级别。
- autoSave: 布尔值,是否启用自动保存。
- autoSaveGap: 布尔值,自动保存时间间隔,仅启用自动保存时生效。
以下是默认配置:
let Config = {
top: 150,
bottom: 150,
left: 300,
right: 300,
layerPanel: {
WindowOrient: "left",
WindowVisible: "hide",
index: 0,
xval: 700,
yval: 200,
width: 450,
height: 200,
showPosition: [
"left",
"right"
]
},
xrefPanel: {
WindowOrient: "left",
WindowVisible: "hide",
index: 1,
xval: 700,
yval: 200,
width: 450,
height: 200,
showPosition: [
"left",
"right"
]
},
commandPanel: {
WindowOrient: "bottom",
WindowVisible: "hide",
index: 2,
xval: 700,
yval: 200,
width: 450,
height: 200,
showPosition: [
"bottom"
]
},
options: {
optimizationLevel: 2,
textOptimizationLevel: 3,
antialias: false,
commentsPageSize: 40,
continuousDraw: false,
cursorSize: 15,
zoomLevel: 1.6,
autoSave: true,
autoSaveGap: 10
}
}
描述
ZwSetPageConfig 方法能够接收一个固定格式的对象,能够修改配置信息。
示例
let setting = { options: {} }; ZwCloud2D.ZwEditor.ZwSetPageConfig(setting);
# 1.3 ZwSetLoadingState()
简介
ZwSetLoadingState 方法能够设置加载状态
语法
ZwCloud2D.ZwEditor.ZwSetLoadingState(isLoading: boolean);
参数
isLoading: boolean 加载状态,是一个 boolean 类型的值,true 加载中,false 加载完毕
描述
ZwSetLoadingState 方法能够接收一个 boolean 类型的值,设置组件的加载状态
示例
ZwCloud2D.ZwEditor.ZwSetLoadingState(true);
# 1.4 ZwSetUserOptions()
简介
ZwSetUserOptions 方法能够控制图纸页界面的显示隐藏,命令的注册与注销
语法
ZwCloud2D.ZwEditor.ZwSetUserOptions({ panel: {},commandButton: {},command: {} });
参数
配置参数是一个 Object 类型的值,其中包含 panel 表示左侧面板栏、commandButton 表示上方命令按钮栏、command 表示命令。
为方便用户统一管理页面内容,本方法提供以下参数供调用:
- panelVisible:控制所有 panel 面板是否显示;
- layoutPickerVisible:控制底部布局选择栏是否显示;
- statusBarVisible:控制底部状态栏是否显示;
- commandButtonVisible:控制上方命令按钮栏是否显示。
panel 的可配置内容包括:
- layerPanel: 图层面板
- xrefPanel: 外部参照面板
- commandPanel: 命令行面板
- commentPanel: 评论面板
- drawPanel: 移动端绘图面板
- modifyPanel: 移动端修改面板
- annotatePanel: 移动端注释面板
commandButton 的可配置内容包括:
- Plot: 打印按钮,
- Pan: 移动按钮,
- ZoomCenter: 中心缩放按钮,
- ZoomAll: 全部缩放按钮,
- ZoomRange: 范围缩放按钮,
- ZoomIn: 放大按钮,
- ZoomOut: 缩小按钮,
- Regen: 重生成按钮,
- Fcmp: 文件比较按钮,
- Save: 保存按钮,
- SaveAs: 另存为按钮,
- Undo: 上一步按钮,
- Redo: 下一步按钮,
- Point: 点按钮,
- Line: 直线按钮,
- Pline: 多段线按钮,
- Circle: 圆按钮,
- Arc: 弧按钮,
- Rectangle: 矩形按钮,
- Imageattach: 图片按钮,
- Spline: 样条曲线按钮,
- Move: 移动按钮,
- Rotate: 旋转按钮,
- Trim: 修剪按钮,
- Copy: 复制按钮,
- Mirror: 镜像按钮,
- Break: 打断按钮,
- Lengthen: 拉伸按钮,
- Scale: 缩放按钮,
- Explode: 分解按钮,
- Erase: 删除按钮,
- Dist: 距离按钮,
- Measuregeom_radius: 半径按钮,
- Measuregeom_angle: 角度按钮,
- Area: 面积按钮,
- Text: 单行文字按钮,
- RevCloud: 云线按钮,
- Mleader: 多重引线按钮,
- Dimlinear: 线性按钮,
- Dimaligned: 对齐按钮,
- Dimangular: 角度按钮,
- Dimarc: 弧长按钮,
- Dimradius: 半径按钮,
- Dimdiameter: 直径按钮,
- View: 视角按钮,
- Style: 文字样式按钮,
- DimStyle: 标注样式按钮,
- Sign: 电子签章按钮,
command 的可配置内容包括:
- ABOUT: 关于命令,
- HELP: 帮助命令,
- OPTIONS: 配置命令,
- PAN: 移动命令,
- PLOT: 打印命令,
- FCMP: 文件比较命令,
- DEBUG: 调试命令,
- REGEN_V: 看图模式下的重生成命令,
- UCSMAN: UCSMAN 命令,
- ARC: 弧命令,
- AREA: 测量面积命令,
- BREAKE: 打断命令,
- CIRCLE: 圆命令,
- COPY: 复制命令,
- DIMALIGNED: 测量对齐命令,
- DIMANGULAR: 测量角度命令,
- DIMARC: 测量弧长命令,
- DIMDIAMETER: 测量直径命令,
- DIMLINEAR: 测量线性命令,
- DIMRADIUS: 测量半径命令,
- DIST: 测量距离命令,
- ERASE: 删除命令,
- EXPLODE: 分解命令,
- IMAGEATTACH: 插入图片命令,
- LEADER: 引线命令,
- LENGTHEN: 拉长命令,
- LINE: 直线命令,
- MEASUREGEOM: 测量命令,
- MIRROR: 镜像命令,
- MLEADER: 多重引线命令,
- MOVE: 移动命令,
- MREDO: 下一步命令,
- PLINE: 多段线命令,
- POINT: 点命令,
- RECTANGLE: 矩形命令,
- REDO: 下一步命令,
- REVCLOUD: 云线命令,
- ROTATE: 旋转命令,
- SCALE: 缩放命令,
- SPLINE: 样条曲线命令,
- STRETCH: 拉伸命令,
- TRIM: 修剪命令,
- UNDO: 上一步命令,
- ZOOM: 缩放命令,
- REGEN: 重生成命令,
描述
ZwSetUserOptions 方法能够传递一个对象,控制图纸页界面的显示隐藏,命令的注册与注销,对应参数为 true 表示显示或注册,为 false 时表示隐藏或注销,不设置时为当前 sdk 版本权限对应的默认值
示例
ZwCloud2D.ZwEditor.ZwSetUserOptions({
panel: {
commandPanel: true,
},
commandButton: {
Pan: false,
ZoomCenter: false,
ZoomIn: false,
},
command: {
DIST: true,
},
commandButtonVisible: false,
statusBarVisible: false,
panelVisible: false,
layoutPickerVisible: false,
});
# 1.5 ZwSetExtendButton ()
简介
ZwSetExtendButton 方法能够设置用户自定义的按钮
语法
ZwCloud2D.ZwEditor.ZwSetExtendButton(extendArray);
参数
extendArray: Array 用户自定义操作栏数组,每个数组对象代表一块按钮区域,包含按钮数组和底部描述字段 extendArray[i].button: Array 用户自定义按钮数组,每个按钮对象包含 title: string 标题,icon: string 图标地址,style: string 按钮样式 extendArray[i].description: string 用户自定义按钮区域底部描述字段
描述
ZwSetExtendButton 方法能以设置用户自定义的按钮,在点击对应按钮时会触发 ZwEvtExtendButtonClick 回调,用户可在回调事件中加入自定义方法
示例
ZwCloud2D.ZwEditor.ZwSetExtendButton(
[{
button: [{ title: '这是按钮提示', icon: './assets/icon1.svg', style: 'padding:4px' }],
description: '这是底部描述'
},
{
button: [{ title: '这是按钮提示', icon: './assets/icon1.svg' }, { title: '这是按钮提示', icon: './assets/icon2.svg' }],
description: '这是底部描述'
}])
# 2 ZwDataProcessor
ZwDataProcessor 为数据获取类,处理 SDK 中数据获取与图纸加载
# 2.1 ZwSetConnectUrl ()
简介
ZwSetConnectUrl 方法能够设置图纸加载的 URL、获取 ticket 的 URL
语法
ZwCloud2D.ZwDataProcessor.ZwSetConnectUrl(url1, url2);
参数
url1: string 图纸加载的 URL 为 http 链接 (可选)url2: string 用于获取单次请求需要的 ticket
描述
ZwSetConnectUrl 方法接受图纸的 URL 地址,一般可设置为后台 SDK 地址
示例
ZwCloud2D.ZwDataProcessor.ZwSetConnectUrl('http://192.168.51.174:9090,' http://192.168.51.174:9092');
# 2.2 ZwSetLoadDwg ()
简介
ZwSetLoadDwg 方法能够设置加载的图纸的 docId
语法
ZwCloud2D.ZwDataProcessor.ZwSetLoadDwg(docId);
参数
docId: string 需要加载的图纸的 docId
描述
ZwSetLoadDwg 方法接受图纸的 docId,用于图纸显示
示例
ZwCloud2D.ZwDataProcessor.ZwSetLoadDwg('13567864222');
# 2.3 ZwLoad ()
简介
ZwLoad 方法能够进行图纸的加载
语法
ZwCloud2D.ZwDataProcessor.ZwLoad();
参数
描述
ZwLoad 进行图纸的加载逻辑,内部需要实现相关的图纸显示的回调
示例
ZwCloud2D.ZwDataProcessor.ZwLoad();
# 2.4 ZwFcmpLoad ()
简介
ZwFcmpLoad 方法能够进行文件比较的加载
语法
ZwCloud2D.ZwDataProcessor.ZwFcmpLoad();
参数
描述
ZwFcmpLoad 进行图纸的加载逻辑,内部需要实现文件比较相关的图纸显示的回调
示例
ZwCloud2D.ZwDataProcessor.ZwFcmpLoad();
# 3 ZwDataManager
ZwDataManager 为数据加载类,处理 SDK 中数据处理与加载
# 3.1 ZwSetDwgInfo ()
简介
ZwSetDwgInfo 方法能够设置图纸的信息
语法
ZwCloud2D.ZwDataManager.ZwSetDwgInfo(object: { id, name, fonts, layouts});
参数
object.id: 图纸的唯一标识 object.name: 图纸的名称 object.fonts: 图纸的字体信息 object.fonts: 图纸的布局信息 返回:promise 对象,包含缺失的字体信息、缓存的 lmf 信息等
描述
ZwSetDwgInfo 方法接受包含图纸信息的 Object 对象,用于设置图纸信息
示例
ZwCloud2D.ZwDataManager.ZwSetDwgInfo({ id: docId, fonts: data.fontList, layouts: layouts, name: data.name })
# 3.2 ZwSetFontDataList ()
简介
ZwSetFontDataList 方法能够加载字体数据
语法
ZwCloud2D.ZwDataManager.ZwSetFontDataList(fontArr)
参数
fontList: Array<{name: string, type: string data: ArrayBuffer}> 字体数据,包含字体名称、字体类型(SHX、TTF)、二进制数据
描述
ZwSetFontDataList 方法能够接收一个字体数据数组,将字体数据保存在内部数据库中
示例
ZwCloud2D.ZwDataManager.ZwSetFontDataList(fontArr)
# 3.3 ZwSetDwgData ()
简介
ZwSetDwgData 方法能够加载 lmf 数据到 SDK 中进行读取
语法
ZwCloud2D.ZwDataManager.ZwSetDwgData(fileId, arrayBuffer, timestamp)
参数
fileId: string lmf 数据的唯一标识 (可选)arrayBuffer: ArrayBuffer 图纸二进制数据,是一个 ArrayBuffer 类型的值 (可选)timestamp: number lmf 生成的时间戳,用于缓存比较
描述
ZwSetDwgData 方法能够进行 lmf 数据的接收与加载,当不传递数据时,将尝试从内部数据库中读取,返回一个 promise 对象用于执行后续操作,能够将布局数据转化为需要的格式,并保存在内部数据库中
示例
ZwCloud2D.ZwDataManager.ZwSetDwgData(res.layout.handleId, lmfInfo, res.timestamp)
# 3.4 ZwSetXrefList ()
简介
ZwSetXrefList 方法能够加载外部参照列表
语法
ZwCloud2D.ZwDataManager. ZwSetXrefList (object: {docName, xrefRelations, srcMap})
参数
object. docName: 图纸的名字 object. xrefRelations: 图纸的外部参照列表 object. srcMap: 一个 Map 对象,存储了图纸各外部参照的路径与其对应的二进制数据的键值对,用于提前加载外部参照的缩略图
描述
ZwSetXrefList 方法能够接收一个对象,提供外部参照面板需要的相关数据
示例
ZwCloud2D.ZwDataManager.ZwSetXrefList (xrefList)
# 3.5 ZwSetXrefData ()
简介
ZwSetXrefData 方法能够加载图纸的外部参照
语法
ZwCloud2D.ZwDataManager.ZwSetXrefList (xrefData: ArrayBuffer)
参数
xrefData: 图纸中外部参照的二进制数据
描述
ZwSetXrefData 方法能够接收二进制数据,用于加载图纸中包含的外部参照
示例
ZwCloud2D.ZwDataManager.ZwSetXrefData (xrefData)
# 3.6 ZwSetImageData ()
简介
ZwSetImageData 方法能够加载图纸的插入图片
语法
ZwCloud2D.ZwDataManager.ZwSetImageData (imageMap: Map<string, ArrayBuffer>)
参数
imageMap: 一个 Map 对象,存储了图纸中插入图片的路径与其二进制数据的键值对
描述
ZwSetXrefData 方法能够接收一个 Map 对象,用于加载图纸中包含的图片
示例
ZwCloud2D.ZwDataManager.ZwSetImageData (imageMap)
# 3.7 ZwSetImageList ()
简介
ZwSetImageList 方法能够加载 image 命令依赖的图片列表
语法
ZwCloud2D.ZwDataManager.ZwSetImageList (object: {name, data, completePath})
参数
object.name: 图片的名称 object.data: 图片的二进制数据 object. completePath: 图片的路径
描述
ZwSetXrefData 方法能够接收一个包含单个图片信息的对象,添加到 sdk 内部图片列表
示例
ZwCloud2D.ZwDataManager.ZwSetImageList (item)
# 3.8 ZwSetExecuteCmd ()
简介
ZwSetExecuteCmd 方法能够通过调用执行对应的命令
语法
ZwCloud2D.ZwDataManager.ZwSetExecuteCmd (command:string)
参数
command:命令的名称与关键字(可选)组成的字符串,由”_”拼接,如”zoom_a”
描述
ZwSetExecuteCmd 方法能够接收一个命令字符串,调用后可执行对应的命令
示例
ZwCloud2D.ZwDataManager.ZwSetExecuteCmd("zoom_a")
# 3.9 ZwSetCommentData ()
简介
ZwSetCommentData 方法能够插入评论数据
语法
ZwCloud2D.ZwDataManager.ZwSetCommentData(jsonData: any)
参数
{commentList:commentList, memberList:memberList, user:user},其中 commentList 是必填字段,表示评论批注数据,memberList 和 user 可不传,memberList 指的是参加当前项目的群组成员列表,在评论时可用于@成员,user 表示当前登录的用户信息,用来判断能否编辑和删除评论(用户只能编辑和删除自己天机的评论)。
描述
ZwSetCommentData 方法能够接收一个对象,memberList 和 user 的数据由用户提供数据,只需要加载一次,比如首次加载的时候参数传{commentList:commentList,memberList:memberList, user:user},其他时候只需要{commentList:commentList},commentList 数据也需要用户自行管理(存储、获取等操作),对象结构见示例,调用后数据会更新并显示在评论面板中。 如果使用 Cloud2d 内置的评论面板,commentList 中的关键数据会通过接口 ZwEvtUpdateCommentData 抛出,用户接收数据后根据业务需求构造数据并存储,最后取出评论数据显示在面板中。 如果使用自定义面板,用户若绘制了气泡则需要从接口 ZwEvtDrawCommentBubble 接收气泡坐标数据,再根据样例构造、存储,最后取出评论数据显示在面板中。
示例
//变量说明
//commentList变量中rows是个数组,每个对象表示一条评论,对象中createBy表示用户id,creator表示用户名,createTime表示评论时间,id表示评论id,docId表示当前图纸的id,handleId表示当前布局的id,parentId表示当前评论的父级评论id,level表示评论层级(0表示评论,1表示回复),withAt表示是否包含了@用户,withMark表示是否有气泡批注,content表示经过处理后的评论内容,mark字段表示气泡数据。
//commentList变量中mark字段是一个对象数组转换的字符串,其中包含了每个气泡的id、类型type、坐标点(不同类型数据结构不同)和颜色color,气泡的数据格式请查看ZwSetBubblesData接口说明。
let commentList = {
msg: "操作成功",
code: 0,
data: {
total: 2,
rows: [
{
createBy: 1317, //必要,用户ID
creator: "177****2305", //必要,用户名
createTime: 1672040045000, //必要,评论创建时间
id: "1607278558678147072", //必要,评论标识ID
docId: "1607272401838333952", //必要,评论所关联的文档ID
handleId: "34", //必要,评论所在的图纸空间标识ID,比如模型空间标识ID、布局空间视口标识ID
parentId: "0", //必要,评论层级标识,例如已存在评论A(它的parentId是"0"),回复A后生成评论B,B的评论数据会包含parentId,B的parentId就是A的id
level: 0, //必要,表示评论层级关系,根评论为0,子评论为1(也就是回复的评论),目前只有0和1两级。
withAt: "NO", //必要,表示评论消息是否@了项目成员,"NO"表示没有@成员,"YES"表示有@成员,请详细查看这几个样例对象
withMark: "YES", //必要,表示评论消息是否添加了气泡,"YES"表示添加了气泡,并且必须要有mark字段,如果是"NO",则不需要传maek字段
content: "###梵蒂冈梵蒂冈发的", //必要,表示评论消息是否添加了气泡,#表示气泡的位置,解析数据时#会被替换成添加的评论气泡
mark: '[{"id":"9766d436-d3eb-1499-4fe0-ab500428e399","points":[353.8113862263275,951.5644448366519,0,517.5777582715559,886.9593622866994,0],"color":"cyan","type":2},{"id":"c7052551-ab5b-97d0-78de-d7a32bb8da47","pt":[235.1183275880426,850.9007115611445,0],"color":"green","type":0},{"id":"1231e48f-fa1a-98b0-a20e-698a21a49983","center":[738.4369939655797,921.5155692320228,0],"endPt":[822.5738456585411,870.4324807041535,0],"color":"rgb(255,0,255)","type":1}]', //非必要,根据withMark字段来判断是否需要
replyList: [], //非必要,表示当前评论是否有回复的消息,它是一个对象数组,它的长度表示回复的评论消息数,数据结构和评论数据相同,比如replyList: [{...}, {...}]
"avatarUrl": "http://test.resources.zwsoft.cn/prd/ZwsoftAccounts/public/userHeadImg/N9daFHvxBY4Pvz3m_Q3SyGH6H7yPuKalD9q1AZecZtVJY8Ts3wOMoGUxXOdGyzou/originalPic.png?v=1706008970" // 必要,用户头像图片所在的地址
},
{
createBy: 1317,
creator: "177****2305",
createTime: 1672040002000,
id: "1607278378998358016",
docId: "1607272401838333952",
handleId: "34",
parentId: "0",
level: 0,
withAt: "NO",
withMark: "YES",
content: "对符合法规和法国###",
mark: '[{"id":"7a4f4b9f-992d-15ef-9b17-7ca8abe833df","pt":[532.2265851288126,664.973293757502,0],"color":"red","type":0},{"id":"8bac4935-2e0b-444c-212e-bfca607c4f8e","points":[614.8609930415427,634.9244181528729,0,813.1835720320946,678.495287779585,0,834.217784955335,418.5725137995435,0,811.6811282518631,329.9283307658877,0],"color":"red","type":3},{"id":"a664f1ab-359b-87a0-7db9-f758e0e9e958","center":[294.8404678522429,338.9429934472764,0],"endPt":[365.45532552312125,275.84035467755535,0],"color":"cyan","type":1}]',
replyList: [],
"avatarUrl": "http://test.resources.zwsoft.cn/prd/ZwsoftAccounts/public/userHeadImg/N9daFHvxBY4Pvz3m_Q3SyGH6H7yPuKalD9q1AZecZtVJY8Ts3wOMoGUxXOdGyzou/originalPic.png?v=1706008970"
},
{
"createBy": 1027,
"creator": "renyi",
"createTime": 1713491272000,
"id": "1781137607340384256",
"docId": "1780894392326610944",
"handleId": "34",
"parentId": "0",
"level": 0,
"withAt": "YES", //必要,表示评论消息是否@了项目成员,"YES"表示有@成员
"withMark": "NO",
"atUserIds": "1045", //非必要,withAt为"YES"时必须要有该字段,否则无法正常显示@成员,它是一个字符串,多个用户用英文逗号隔开,比如@了三个成员该字段样例为"1045,123,365"
"content": "%24bgfhfgf%7B1045%7D",
"replyList": [],
"avatarUrl": "http://test.resources.zwsoft.cn/prd/ZwsoftAccounts/public/userHeadImg/N9daFHvxBY4Pvz3m_Q3SyGH6H7yPuKalD9q1AZecZtVJY8Ts3wOMoGUxXOdGyzou/originalPic.png?v=1706008970"
}
],
},
};
//设置群组成员列表,作为@用户列表供用户选择
let memberList = {
msg: "操作成功",
code: 0,
data: {
total: 2,
rows: [
{
memberId: "2138", //必要
phone: "",
email: "",
memberName: "张三", //必要
memberType: "USER",
lastTime: 1672039449000,
roleId: "1607272382833942531",
roleName: "查看者",
color: "#87CEFA",
},
{
memberId: "1317", //必要
phone: "",
email: "",
memberName: "177****2305", //必要
memberType: "PROJECT_ADMIN",
lastTime: 1672038572000,
roleId: "1607272382833942528",
roleName: "管理员",
color: "#87CEFA",
},
],
},
};
//当前登录的用户信息
let user = {
userId: 1317, //必要
userName: "177****2305",
phone: "",
email: "",
description: "",
type: "FREE",
};
<!-- 可以@成员,可以编辑和删除评论 -->
ZwCloud2D.ZwDataManager.ZwSetCommentData({
commentList: commentList,
memberList: memberList,
user: user
});
<!-- 不需要@成员 -->
ZwCloud2D.ZwDataManager.ZwSetCommentData({
commentList: commentList,
memberList: undefined,
user: user
});
<!-- 如果不需要@成员,不需要编辑和删除评论,可以仅设置评论数据 -->
ZwCloud2D.ZwDataManager.ZwSetCommentData({
commentList: commentList,
memberList: undefined
});
<!-- 已经设置过memberList和user了,则只需要传commentList -->
ZwCloud2D.ZwDataManager.ZwSetCommentData({
commentList: commentList
});
# 3.10 ZwSetDrawCommentBubble ()
简介
ZwSetDrawCommentBubble 方法能够通过调用执行对应的气泡命令
语法
ZwCloud2D.ZwDataManager. ZwSetDrawCommentBubble(command:string, color?: any)
参数
command:命令的名称与关键字(可选)组成的字符串,由”_”拼接,如圆形气泡”circle_0_1”, color 表示当前绘制的气泡颜色,格式为对象{str:'rgb(173,173,173)', num: 0xffadadad}
描述
ZwSetDrawCommentBubble 方法能够接收一个命令字符串和一个颜色对象,调用后可执行对应的气泡命令
示例
绘制圆形气泡:ZwCloud2D.ZwDataManager.ZwSetDrawCommentBubble(‘circle_0_1, {str:'red', num: 0xffff0000} )
绘制矩形气泡:ZwCloud2D.ZwDataManager.ZwSetDrawCommentBubble(‘rectangle_ _0', {str:'green', num: 0xff008000} )
绘制图钉:ZwCloud2D.ZwDataManager.ZwSetDrawCommentBubble(‘bubble', {str:'blue', num: 0xff0000ff} )
自由绘制气泡:ZwCloud2D.ZwDataManager.ZwSetDrawCommentBubble(‘pline', {str:'rgb(173,173,173)', num: 0xffadadad} )
# 3.11 ZwSetCommentBubblesOff ()
简介
ZwSetCommentBubblesOff 方法能够关闭和显示批注
语法
ZwCloud2D.ZwDataManager.ZwSetCommentBubblesOff(bubblesOff:boolean)
参数
bubblesOff:关闭气泡
描述
ZwSetCommentBubblesOff 方法能够接收一个布尔变量,true 表示关闭批注,false 表示显示批注
示例
关闭批注:ZwCloud2D.ZwDataManager.ZwSetCommentBubblesOff(true)
显示批注:ZwCloud2D.ZwDataManager.ZwSetCommentBubblesOff(false)
# 3.12 ZwSetBubblesData()
简介
ZwSetBubblesData 能设置气泡数据
语法
ZwCloud2D.ZwDataManager.ZwSetBubblesData(marks:any)
参数
marks:气泡数据
描述
marks 是一个对象数组或者对象数组转换的字符串,其中包含了每个气泡的 id、类型 type、坐标点(不同类型数据结构不同)和颜色 color,气泡的数据格式请参考示例。 示例中包含了四种类型的气泡数据,其中 type = 0 表示图钉气泡,type = 1 表示圆形气泡,type = 2 表示矩形气泡,type = 3 表示多段线气泡。 示例 1:marks 格式为对象数组
let marks1 = [{
id: "cb17d0da-53c9-129f-6359-c4a24cc400d3",
pt: [142.71803510380826,248.0451447432734,0], // pt表示图钉的位置,数据点按照x、y、z的顺序存储
color: "red",
type: 0
}, {
id: "70729bb9-06ba-940e-6912-53c85f75cbb7",
center: [28.532307806217773,650.7000778453031,0], // center表示圆心坐标,数据点按照x、y、z的顺序存储
endPt: [70.60073365269847,583.0901077348876,0], // endPt表示圆的半径端点,数据点按照x、y、z的顺序存储,可以根据endPt和center两点的距离计算半径,
color: "red",
type: 1
}, {
id: "59b263eb-b5ab-62db-a78e-843c5ca7dcad",
points: [13.507870003903221,589.0998828558136,0,180.27912960959463,492.94348092100046,0], // points表示矩形的两个对角点,数据点按照x、y、z的顺序存储
color: "red",
type: 2
}, {
id: "48b3f971-2b2a-d881-5b61-d6201de07784", // points表示多段线的多个点,数据点按照x、y、z的顺序存储
points: [54.07385207015247,497.4508122616948,0,5.995651102745953,308.14289595253155,0,172.76691070843736,550.0363445697957,0,192.29867985144625,214.9913815781814,0],
color: "red",
type: 3
}];
ZwCloud2D.ZwDataManager.ZwSetBubblesData(marks1);
示例 2:marks 格式为对象数组转换后的字符串
let marks2 = "[{\"id\":\"70729bb9-06ba-940e-6912-53c85f75cbb7\",\"center\":[28.532307806217773,650.7000778453031,0],\"endPt\":[70.60073365269847,583.0901077348876,0],\"color\":\"red\",\"type\":1},{\"id\":\"59b263eb-b5ab-62db-a78e-843c5ca7dcad\",\"points\":[13.507870003903221,589.0998828558136,0,180.27912960959463,492.94348092100046,0],\"color\":\"red\",\"type\":2},{\"id\":\"48b3f971-2b2a-d881-5b61-d6201de07784\",\"points\":[54.07385207015247,497.4508122616948,0,5.995651102745953,308.14289595253155,0,172.76691070843736,550.0363445697957,0,192.29867985144625,214.9913815781814,0],\"color\":\"red\",\"type\":3},{\"id\":\"cb17d0da-53c9-129f-6359-c4a24cc400d3\",\"pt\":[142.71803510380826,248.0451447432734,0],\"color\":\"red\",\"type\":0}]";
ZwCloud2D.ZwDataManager.ZwSetBubblesData(marks2);
# 3.13 ZwSetDeleteBubbles ()
简介
ZwSetDeleteBubbles 能删除气泡
语法
ZwCloud2D.ZwDataManager.ZwSetDeleteBubbles(ids:string[])
参数
ids:气泡 id
描述
ids 是由需要删除的气泡 id 组成的字符串数组
示例
let ids = ['9766d436-d3eb-1499-4fe0-ab500428e399', '1231e48f-fa1a-98b0-a20e-698a21a49983'];
ZwCloud2D.ZwDataManager.ZwSetDeleteBubbles(ids)
# 3.14 ZwSetLocateBubble ()
简介
ZwSetLocateBubble 能定位被点击的气泡
语法
ZwCloud2D.ZwDataManager.ZwSetLocateBubble(id: string})
参数
id 是字符串类型
描述
id 表示需要定位的气泡 id 示例
let id = '9766d436-d3eb-1499-4fe0-ab500428e399';
ZwCloud2D.ZwDataManager.ZwSetLocateBubble(id)
# 3.15 ZwSetBubbleHighlight ()
简介
ZwSetBubbleHighlight 能使指定 id 的气泡显示高亮
语法
ZwCloud2D.ZwDataManager.ZwSetBubbleHighlight(highlightBubble:{[key:string]: any})
参数
highlightBubble 表示需要高亮的气泡信息
描述
highlightBubble 对象包含了两个参数{ids: [], color: ""},字符串数组类型的气泡 ids(必传)和气泡颜色 color(非必传) 示例 1: 只传气泡 ids,则会按照默认颜色高亮
let highlightBubble = {ids: ['9766d436-d3eb-1499-4fe0-ab500428e399']};
ZwCloud2D.ZwDataManager.ZwSetBubbleHighlight(highlightBubble)
示例 2: 参数包含气泡 idsh 和气泡颜色 color
let highlightBubble = {
ids: ['9766d436-d3eb-1499-4fe0-ab500428e399'],
color: 'rgb(255,165,0)'
};
ZwCloud2D.ZwDataManager.ZwSetBubbleHighlight(highlightBubble)
# 3.16 ZwSetCancelBubbleHighlight ()
简介
ZwSetCancelBubbleHighlight 能取消指定气泡的高亮效果
语法
ZwCloud2D.ZwDataManager.ZwSetCancelBubbleHighlight(ids: [])
参数
ids 是字符串数组类型
描述
ids 表示取消高亮的气泡 id 示例
let ids = ['9766d436-d3eb-1499-4fe0-ab500428e399', '8866d436-d3eb-1499-4fe0-ab500428e300'];
ZwCloud2D.ZwDataManager.ZwSetCancelBubbleHighlight(ids)
# 3.17 ZwSetWatermark ()
简介
ZwSetWatermark 能在图纸内添加指定的水印
语法
ZwCloud2D.ZwDataManager.ZwSetWatermark({text:string,color,tiltAngle,fontSize,fontName,rowOffset,colOffset})
参数
text: string 类型,表示水印的内容 color: string 类型,表示水印的颜色 tiltAngle: number 类型,表示水印的倾斜角度 fontSize: string 类型,表示水印的文字大小 fontName: string 类型,表示水印的字体名称 rowOffset: number 类型,表示水印的行间距 colOffset: number 类型,表示水印的列间距
描述
通过调用 ZwSetWatermark 方法传递一个对象,可以向图纸添加指定水印(打印功能不会打印添加的水印),对应参数未设置时为系统默认值
示例
ZwCloud2D.ZwDataManager.ZwSetWatermark({
text:"这是默认文字",
color:"#FFFFFF3F",
tiltAngle:-30,
fontSize:"16px",
fontName:"微软雅黑",
rowOffset:150,
colOffset:200,
})
# 3.18 ZwSetInterruptCmd ()
简介
ZwSetInterruptCmd 能中断正在执行的命令
语法
ZwCloud2D.ZwDataManager.ZwSetInterruptCmd()
参数
无
描述
可以中断正在执行的命令,比如取消气泡绘制、取消编辑命令等。 示例
ZwCloud2D.ZwDataManager.ZwSetInterruptCmd()
# 3.19 ZwSetFcmpDwgInfo ()
简介
文件比较(fcmp)流程中设置文件比较图纸信息,使用方法类似于 ZwSetDwgInfo()
语法
ZwCloud2D.ZwDataManager.ZwSetFcmpDwgInfo (data: { baseFileName, baseFileInfo, compareFileName, compareFileInfo, fonts, layouts, fcmpDiffExt, fcmpErrorFlag, fcmpRcShape, fcmpRcMargin, fcmpHatch, fcmpText});
参数
data 的属性如下
data 属性 | 类型 | 描述 |
---|---|---|
data.baseFileName | string | 基准图纸的文件名 |
data.baseFileInfo | Array | 基准图纸的描述信息,该数组中的自定义的值会显示在选项卡中 |
data.compareFileName | string | 参照图纸的文件名 |
data.compareFileInfo | Array | 参照图纸的描述信息,该数组中的自定义的值会显示在选项卡中 |
data.fonts | Array | 文件比较的字体信息 |
data.layouts | Array | 基准图纸的布局信息 |
data.fcmpDiffExt | Array | 文件比较的差异位置包围盒数据 |
data.fcmpErrorFlag | number | 文件比较的异常标识 |
data.fcmpRcShape | number | 文件比较的云线形状,0 表示矩形,1 表示多边形 |
data.fcmpRcMargin | number | 文件比较的云线大小,范围:1~25 |
data.fcmpHatch | number | 文件比较是否显示图案填充,1 表示显示,0 表示不显示 |
data.fcmpText | number | 文件比较是否显示文字,1 表示显示,0 表示不显示 |
返回:promise 对象,包含缺失的字体信息、缓存的 lmf 信息等
描述
ZwSetFcmpDwgInfo 方法接受包含文件比较图纸信息的 Object 对象,用于设置文件比较信息
示例
ZwCloud2D.ZwDataManager.ZwSetFcmpDwgInfo({
baseFileName: "基准图纸.dwg",
baseFileInfo: [
{
lable: "名称",
value: "基准图纸.dwg",
},
{
lable: "所有者",
value: "小王",
},
],
compareFileName: "参照图纸.dwg",
compareFileInfo: [
{
lable: "名称",
value: "参照图纸.dwg",
},
{
lable: "所有者",
value: "小明",
},
],
fonts: [],
layouts: [],
fcmpDiffExt: [],
fcmpErrorFlag: 0,
fcmpRcShape: 0,
fcmpRcMargin: 5,
fcmpHatch: 1,
fcmpText: 1,
});
# 3.20 ZwSetFcmpDwgData ()
简介
文件比较(fcmp)流程中加载 lmf 数据到 SDK 中进行读取,使用方法类似于 ZwSetDwgData()
语法
ZwCloud2D.ZwDataManager.ZwSetFcmpDwgData (fileId, arrayBuffer, timestamp)
参数
- fileId: string lmf 数据的唯一标识
- arrayBuffer: ArrayBuffer 图纸二进制数据,是一个 ArrayBuffer 类型的值
- timestamp: string lmf 生成的时间戳,用于缓存比较
描述
ZwSetFcmpDwgData 方法能够进行 lmf 数据的接收与加载
示例
ZwCloud2D.ZwDataManager.ZwSetFcmpDwgData (res.layout.handleId, lmfArrayBuffer, res.timestamp)
# 3.21 ZwSetFcmpRegenData ()
简介
文件比较(fcmp)流程中加载重生成的 lmf 数据到 sdk 中
语法
ZwCloud2D.ZwDataManager.ZwSetFcmpRegenData(data:{ lmfData: fcmpLmfArrayBuffer, ...fcmpInfo, fcmpErrorFlag: 0 })
参数
data 的属性如下
data 属性 | 类型 | 描述 |
---|---|---|
data.lmfData | ArrayBuffer | 重生成的 lmf 的数据 |
data.fcmpDiffExt | Array | 新 lmf 的文件比较的差异位置包围盒数据 |
data.fcmpErrorFlag | number | 新 lmf 的文件比较的异常标识 |
描述
ZwSetFcmpRegenData 方法能够加载文件比较流程中的重生成 lmf
示例
ZwCloud2D.ZwDataManager.ZwSetFcmpRegenData({ lmfData: fcmpLmfArrayBuffer, fcmpDiffExt: [], fcmpErrorFlag: 0 });
# 3.22 ZwSetCatalogData ()
简介
加载元件库数据到 sdk 中
语法
ZwCloud2D.ZwDataManager.ZwSetCatalogData(data)
参数
data 的属性如下
data 属性 | 类型 | 描述 |
---|---|---|
data.pageNum | number | 当前页数 |
data.pageSize | number | 每一页显示的数据条目数量 |
data.rows | Array | 元件库的数据 |
data.total | number | 元件库的总数量 |
示例
**描述**
ZwSetCatalogData 方法能够加载元件库的数据
ZwCloud2D.ZwDataManager.ZwSetCatalogData(data);
# 3.23 ZwSetComponentsData ()
简介
加载元件数据到 sdk 中
语法
ZwCloud2D.ZwDataManager.ZwSetComponentsData(data)
参数
data 的属性如下
data 属性 | 类型 | 描述 |
---|---|---|
data.pageNum | number | 当前页数 |
data.pageSize | number | 每一页显示的数据条目数量 |
data.rows | Array | 元件数据 |
data.total | number | 元件的总数量 |
示例
**描述**
ZwSetComponentsData 方法能够加载元件库的数据
ZwCloud2D.ZwDataManager.ZwSetComponentsData(data);
# 3.24 ZwSetComponentThumbnailsData ()
简介
加载元件缩略图数据到 sdk 中
语法
ZwCloud2D.ZwDataManager.ZwSetComponentThumbnailsData(data:Array[])
参数
data 是{key:value}组成的数,key 表示图片的唯一标识符 id,value 是 base64 格式的图片数据
示例
**描述**
ZwSetComponentThumbnailsData 方法能够加载元件缩略图的数据
ZwCloud2D.ZwDataManager.ZwSetComponentThumbnailsData(data);
# 3.25 ZwSetLibraryTypeList ()
简介
加载元件库类别到 sdk 中,比如图块、图层、文字样式等。
语法
ZwCloud2D.ZwDataManager.ZwSetLibraryTypeList(data)
参数
data 是一个对象数组,每一个对象均包含如下属性
data 属性 | 类型 | 描述 |
---|---|---|
data.pageNum | number | 当前页数 |
data.pageSize | number | 每一页显示的数据条目数量 |
data.rows | Array | 元件库的数据 |
data.total | number | 元件库的总数量 |
示例
**描述**
ZwSetLibraryTypeList 方法能够加载元件库类别到sdk中
ZwCloud2D.ZwDataManager.ZwSetLibraryTypeList(data);
# 3.26 ZwSetComponentDwgData ()
简介
加载元件的 dwg 二进制数据流到 sdk 中,在插入图块时会用到该方法。
语法
ZwCloud2D.ZwDataManager.ZwSetComponentDwgData(data:ArrayBuffer)
参数
data 是二进制数据流
示例
**描述**
ZwSetComponentDwgData 方法能够加载元件的dwg二进制数据流到sdk中
ZwCloud2D.ZwDataManager.ZwSetComponentDwgData(data);
# 3.27 ZwSetCurrentLayer ()
简介
编辑模式下,将指定图层设置为当前图层。
语法
ZwCloud2D.ZwDataManager.ZwSetCurrentLayer(name:string)
参数
name 图层名称
示例
**描述**
ZwSetCurrentLayer 编辑模式下,将指定图层设置为当前图层。
ZwCloud2D.ZwDataManager.ZwSetCurrentLayer(name);
# 3.28 ZwChangeLayerVisibility ()
简介
编辑模式下,设置指定图层是否关闭。
语法
ZwCloud2D.ZwDataManager.ZwChangeLayerVisibility(name:string, isOff:boolean)
参数
name 图层名称 | isOff 是否关闭图层
示例
**描述**
ZwChangeLayerVisibility 编辑模式下,设置指定图层是否关闭。
ZwCloud2D.ZwDataManager.ZwChangeLayerVisibility(name, isOff);
# 3.29 ZwSetPlotStatus ()
简介
编辑模式下,设置指定图层是否要被打印。
语法
ZwCloud2D.ZwDataManager.ZwSetPlotStatus(name:string, isPlottable:boolean)
参数
name 图层名称 | isPlottable 是否要打印该图层
示例
**描述**
ZwSetPlotStatus 编辑模式下,设置指定图层是否要被打印。
ZwCloud2D.ZwDataManager.ZwSetPlotStatus(name, isPlottable);
# 3.30 ZwSetLayerColor ()
简介
编辑模式下,设置指定图层的颜色。
语法
ZwCloud2D.ZwDataManager.ZwSetLayerColor(name:string,color:number | [number, number, number])
参数
name 图层名称 | color 一个 number 则为颜色索引格式;数组形式的三个 number 则为 rgb 格式
示例
**描述**
ZwSetLayerColor 编辑模式下,设置指定图层的颜色。
ZwCloud2D.ZwDataManager.ZwSetLayerColor(name,number | [number, number, number]);
# 3.31 ZwSetLayerLType ()
简介
编辑模式下,设置指定图层的线型。
语法
ZwCloud2D.ZwDataManager.ZwSetLayerLType(name:string, linetypeName:string)
参数
name 图层名称 | linetypeName 线型名称
示例
**描述**
ZwSetLayerLType 编辑模式下,设置指定图层的线型。
ZwCloud2D.ZwDataManager.ZwSetLayerLType(name, linetypeName);
# 3.32 ZwSetLayerLineWeight ()
简介
编辑模式下,设置当前图层。
语法
ZwCloud2D.ZwDataManager.ZwSetLayerLineWeight(name:string, lineWeight:number)
参数
name 图层名称 | lineWeight 线宽索引
lineWeight | 宽度 |
---|---|
-3 | 默认 |
0 | 0.00mm |
5 | 0.05mm |
9 | 0.09mm |
13 | 0.13mm |
15 | 0.15mm |
18 | 0.18mm |
20 | 0.20mm |
25 | 0.25mm |
30 | 0.30mm |
35 | 0.35mm |
40 | 0.40mm |
50 | 0.50mm |
53 | 0.53mm |
60 | 0.60mm |
70 | 0.70mm |
80 | 0.80mm |
90 | 0.90mm |
100 | 1.00mm |
106 | 1.06mm |
120 | 1.20mm |
140 | 1.40mm |
158 | 1.58mm |
200 | 2.00mm |
211 | 2.11mm |
示例
**描述**
ZwSetLayerLineWeight 编辑模式下,设置当前图层。
ZwCloud2D.ZwDataManager.ZwSetLayerLineWeight(name, lineWeight);
# 3.33 ZwSetLayerName ()
简介
编辑模式下,修改指定图层的名称。
语法
ZwCloud2D.ZwDataManager.ZwSetLayerName(name:string, newName: string)
参数
name 旧图层名称 | newName 新图层名称
示例
**描述**
ZwSetLayerName 编辑模式下,修改指定图层的名称。
ZwCloud2D.ZwDataManager.ZwSetLayerName(name, newName);
# 3.34 ZwAddLayer ()
简介
编辑模式下,新增图层。
语法
ZwCloud2D.ZwDataManager.ZwAddLayer(name?:string)
参数
name 新建图层的名称(参数可选,若不传该参数,则自动生成图层名称)
示例
**描述**
ZwAddLayer 编辑模式下,新增图层。
ZwCloud2D.ZwDataManager.ZwAddLayer(name);
# 3.35 ZwDeleteLayer ()
简介
编辑模式下,删除指定的图层。
语法
ZwCloud2D.ZwDataManager.ZwDeleteLayer(name:string)
参数
name 图层名称
示例
**描述**
ZwDeleteLayer 编辑模式下,删除指定的图层。
ZwCloud2D.ZwDataManager.ZwDeleteLayer(name);
# 3.36 ZwSetVersionData ()
简介
加载版本列表数据。若加载的版本列表数据为空数组,则侧边栏“版本管理”面板不显示
语法
ZwCloud2D.ZwDataManager.ZwSetVersionData(data:[])
参数
data 是一个数组
示例
let data = [
{
description: "",
docId: "1759479689443524609",
isCurrent: true,
name: "当前",
operateTime: 1708327678000,
operator: "SDK超级用户",
operatorId: 1,
versionId: "1759479925570256896",
},
{
description: "",
docId: "1759479689443524609",
mark: "创建版本",
name: "v2",
operateTime: 1708327677000,
operator: "SDK超级用户",
operatorId: 1,
versionId: "1759479911817134880",
},
{
description: "",
docId: "1759479689443524689",
isOrigin: true,
mark: "上传图纸",
name: "起点",
operateTime: 1708327675000,
operator: "SDK超级用户",
operatorId: 1,
versionId: "1759479911829716992",
},
];
ZwCloud2D.ZwDataManager.ZwSetVersionData(data);
# 3.37 ZwVersionOperResult ()
简介
加载各个版本管理操作的结果
语法
ZwCloud2D.ZwDataManager.ZwVersionOperResult({type: number, res: boolean })
参数
type 是版本操作的类型。res 表示该操作是否成功 或 为该操作所需要的数据
type 值 | 描述 |
---|---|
0 | 打开版本 |
1 | 版本对比 |
2 | 版本对比中重生成 |
3 | 退出版本对比 |
4 | 恢复版本 |
5 | 编辑版本 |
6 | 创建版本 |
7 | 删除版本 |
8 | 切换版本 |
9 | 切换结束 |
10 | 设置版本管理操作权限 |
13 | 获取版本详情 |
示例
const VersionOperationType = {
Open: 0,
Compare: 1,
CompareRegen: 2,
CompareExit: 3,
Restore: 4,
EditVersion: 5,
CreateVersion: 6,
Delete: 7,
SwitchVersion: 8,
SwitchEnd: 9,
SetPermissions: 10,
detailReq: 13,
};
ZwCloud2D.ZwDataManager.ZwVersionOperResult({
type: VersionOperationType.Open,
res: true,
});
# 3.38 ZwSetViewportInfo ()
简介
本方法用于修改当前图纸视口的信息,可用于实现自定义的平移缩放效果。
语法
ZwCloud2D.ZwDataManager.ZwSetViewportInfo(center: Array, height?:Number )
参数
center 是一个数组,可传三个数值,对应坐标系的 x、y、z 坐标,不传时参数默认为零,表示调用本方法后图纸视口中心点所在的位置, 示例
[100,100], [200,200,200]; height 是一个数字,非必填项,表示调用本方法后图纸的视口高度。
示例
ZwCloud2D.ZwDataManager.ZwSetViewportInfo([100,100],800);
# 3.39 ZwCreateEntityByJson ()
简介
本方法用于通过 json 对象创建实体。
语法
ZwCloud2D.ZwDataManager.ZwCreateEntityByJson(jsonList)
参数
jsonList 是一个 json 对象,可配置参数包括:entityList、blockList、layerList、textStyleList;
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
entityList | 否 | List | 实体数据列表,参见具体的实体数据定义 |
blockList | 否 | List | 块数据列表,参见具体的块数据定义 |
layerList | 否 | List | 图层数据列表,参见具体的图层数据定义 |
textStyleList | 否 | List | 文字样式数据列表,参见具体的文字样式数据定义 |
示例 1:
ZwCloud2D.ZwDataManager.ZwCreateEntityByJson({
"blockList": [
[
{
"basePoint": [
0.0,
0.0,
0.0
],
"blockName": "pline"
}
]
],
"entityList": [
{
"color": 256,
"entityHandle": "564",
"layer": "基本实体",
"lineType": "ByLayer",
"lineTypeScale": 1.0,
"lineweight": -1,
"normal": [
0.0,
0.0,
1.0
],
"plotType": 0,
"point": [
94.0,
100.0,
0.0
],
"thickness": 0.0,
"transparency": -1,
"type": "ZcDbPoint"
}
],
"layerList": [
{
"layerColor": 7,
"layerIsCurrentLayer": false,
"layerIsFrozen": false,
"layerIsHidden": false,
"layerIsLocked": false,
"layerIsOff": false,
"layerIsPlottable": true,
"layerIsReconciled": false,
"layerLineWeight": -3,
"layerName": "0",
"layerPlotStyle": "Color_7",
"layerTransparency": 0
}
],
"textStyleList": [
{
"bigFontFileName": "",
"filename": "",
"flagBits": 0,
"isShape": false,
"isVertical": false,
"obliquingAngle": 0.0,
"priorSize": 2.5,
"textSize": 0.0,
"textStyleName": "Standard",
"ttfFlags": 34306,
"typeFace": "SimSun",
"xScale": 1.0
}
]
});
# 3.40 ZwUpdateEntityByJson ()
简介
本方法用于通过 json 对象修改实体,使用前需要获取目标实体的 entityHandle。
语法
ZwCloud2D.ZwDataManager.ZwUpdateEntityByJson(entityList)
参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
entityList | 是 | List | 实体数据列表,参见具体的实体数据定义 |
示例
ZwCloud2D.ZwDataManager.ZwUpdateEntityByJson(
[
{
"color": 256,
"entityHandle": "564",
"layer": "基本实体",
"lineType": "ByLayer",
"lineTypeScale": 1.0,
"lineweight": -1,
"normal": [
0.0,
0.0,
1.0
],
"plotType": 0,
"point": [
94.0,
100.0,
0.0
],
"thickness": 0.0,
"transparency": -1,
"type": "ZcDbPoint"
}
]
);
# 3.41 ZwGetPoint ()
简介
本方法用于获取图纸选中点的坐标。
语法
ZwCloud2D.ZwDataManager.ZwGetPoint()
参数
无
描述
该方法调用后页面进入等待选点模式,用户鼠标左键点击绘图区域后,页面会退出等点模式,并返回一个 promise 对象,在返回值的 data 中包含 point 属性,point 为选中点的坐标,格式为{mX:number,mY:number,mZ:number}
示例
ZwCloud2D.ZwDataManager.ZwGetPoint().then(res=>{
console.log(res.data.point)
//{ "mX": 141,"mY": 207,"mZ": 0}
})
# 4 ZwMessageCallback
ZwMessageCallback 为消息回调类,处理 SDK 中数据获取与图纸加载
# 4.1 ZwEvtLogInfo ()
简介
SDK 内部触发打印事件而抛出,传递出来的打印内容,可重写。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLogInfo = function(e){ //your code };
参数
msg: string 内部打印事件抛出的打印事件说明。
描述
ZwEvtLogInfo 可被重写,自定义函数,接受打印事件对象,处理自己的逻辑
示例
ZwCloud2D.ZwMessageCallback. ZwEvtLogInfo = function(e){
console.log(e) // 打印log事件的内容
};
# 4.2 ZwEvtDrawEnd ()
简介
在首次加载模型空间和切换布局空间时会触发该事件,可重写
语法
ZwCloud2D.ZwMessageCallback.ZwEvtDrawEnd = function(){ //your code };
参数
无
描述
ZwEvtDrawEnd 可被重写,自定义函数,用于在首次加载模型空间和切换布局空间执行用户操作
示例
ZwCloud2D.ZwMessageCallback.ZwEvtDrawEnd = function () {
// 用户操作
}
# 4.3 ZwEvtChangeSetting ()
简介
内部的 pageConfig 修改后产生的回调
语法
ZwCloud2D.ZwMessageCallback.ZwEvtChangeSetting = function(setting){ //your code };
参数
setting: Object 内部使用的界面数据
描述
ZwEvtChangeSetting 可被重写,自定义函数,用于界面修改后执行用户操作
示例
ZwCloud2D.ZwMessageCallback.ZwEvtChangeSetting = function (data) {
// 用户操作
}
# 4.4 ZwEvtChangeLayout()
简介
SDK 内部触发切换布局事件而抛出,传递出来的当前布局的 handleId,可重写
语法
ZwCloud2D.ZwMessageCallback.ZwEvtChangeLayout = function(layout){ //your code };
参数
layout: Object 内部切换布局事件抛出的布局 Object。
描述
ZwEvtLogInfo 可被重写,自定义函数,接受切换布局事件对象,处理自己的逻辑
示例
ZwCloud2D.ZwMessageCallback.ZwEvtChangeLayout = function(layout){
console.log(layout) // 打印当前布局的信息
};
# 4.5 ZwEvtLoadXrefData ()
简介
内部在处理到 xref 数据时产生的回调,可重写
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLoadXrefData = function(obj:{ handleId, xrefIds}){ //your code };
参数
obj. handleId 当前布局的 handleId obj. xrefIds 图纸包含的外部参照的 id 组成的数组
描述
ZwEvtLoadXrefData 可被重写,自定义函数,用于通知用户传入 xref 的二进制数据,可重写
示例
ZwCloud2D.ZwMessageCallback.ZwEvtLoadXrefData = function (data) {
// 用户操作
}
# 4.6 ZwEvtLoadImageData ()
简介
内部在处理到 image 数据时产生的回调,可重写
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLoadImageData = function(arr){ //your code };
参数
obj: Array <string>
内部抛出的一个数组,包含图纸内各个 image 的存储路径
描述
ZwEvtLoadImageData 可被重写,自定义函数,用于通知用户传入 image 的二进制数据
示例
ZwCloud2D.ZwMessageCallback.ZwEvtLoadImageData = function (data) {
// 用户操作
}
# 4.7 ZwEvtLoadImageList ()
简介
在首次执行 image 命令时触发,用于加载图片列表,可重写
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLoadImageList = function( ){ //your code };
参数
无
描述
ZwEvtLoadImageList 可被重写,自定义函数,在首次执行 image 命令时触发,通知用户传入图片列表数据
示例
ZwCloud2D.ZwMessageCallback.ZwEvtLoadImageList= function () {
// 用户操作
}
# 4.8 ZwEvtPlotDwg ()
简介
在 plot 命令执行完成时触发,用于抛出用户选择的打印配置项,可重写
语法
ZwCloud2D.ZwMessageCallback.ZwEvtPlotDwg = function(obj: {filename, params}){ //your code };
参数
obj. filename 图纸的文件名 obj. params 用户选择的打印配置项
描述
ZwEvtPlotDwg 可被重写,自定义函数,在 plot 命令执行完成时触发,为用户的打印接口提供参数
示例
ZwCloud2D.ZwMessageCallback.ZwEvtPlotDwg = function (data) {
// 用户操作
}
# 4.9 ZwEvtLoadCommentData ()
简介
在获取评论批注数据时触发,用于抛出查询评论批注的参数
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLoadCommentData= function(data:any){ //your code };
参数
{layoutHandle: string, pageSize:number, pageNum:number, initial:boolean},其中 layoutHandle 表示图纸当前布局的 handle,pageSize 表示每页查询的评论数量,pageSize 表示查询的页数,initial 表示是否是初次加载评论批注数据
描述
ZwEvtLoadCommentData 在获取评论批注数据时触发,用于接收抛出查询评论批注的参数,该参数用于查询评论批注数据
示例
根据回传的布局 Id 等参数通过自定义的 getCommentData 从数据库中查询评论批注的数据
ZwCloud2D.ZwMessageCallback.ZwEvtLoadCommentData= function (data) {
//your code: define a function and use the callback Params to query comment data
getCommentData(data.layoutHandle, data.pageSize, data.pageNum, data.initial);
}
# 4.10 ZwEvtUpdateCommentData ()
简介
在新增、删除、回复评论时触发,用于抛出用户更新的评论数据
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLoadCommentData= function(data:any){ //your code };
参数
data. type 数据类型,'create'、'reply'、'delete'用于区分新增、回复、删除评论三种不同的类型,data.data 是一条用户评论批注数据
描述
ZwEvtUpdateCommentData 可被重写,自定义函数,在新增、删除、回复评论时触发,为用户的更新评论批注提供参数
示例
ZwCloud2D.ZwMessageCallback.ZwEvtUpdateCommentData= function (data) {
// your code
switch(data.type) {
case 'create':
// 补充data.data中缺失的参数,保存新增的评论数据
addComment(data.data);
break;
case 'reply':
// 补充data.data中缺失的参数,保存回复的评论数据
replyComment(data.data);
break;
case 'delete':
// 删除评论数据
deleteComment(data.data.id);
break;
default: break;
}
}
# 4.11 ZwEvtDrawCommentBubble ()
简介
绘制气泡的命令结束后触发,用于抛出绘制的单个气泡数据
语法
ZwCloud2D.ZwMessageCallback.ZwEvtDrawCommentBubble= function(data:any){ //your code };
参数
data.type 表示气泡类型,数据类型是枚举类型,其中 0 表示图钉气泡,1 表示圆形气泡,2 表示矩形气泡,3 表示多段线气泡;data.data 是气泡的详细信息,包含气泡的 id、坐标点和颜色
描述
ZwEvtDrawCommentBubble 可被重写,自定义函数,用户可使用气泡数据进行逻辑处理 示例 1:
ZwCloud2D.ZwMessageCallback.ZwEvtDrawCommentBubble= function (data) {
// your code
}
示例 2: ZwEvtDrawCommentBubble 回调参数示例如下。
let data0 = {
type: 0,
data: {
id: "cb17d0da-53c9-129f-6359-c4a24cc400d3",
pt: {
mX: 142.71803510380826,
mY: 248.0451447432734,
mZ: 0
},
color: "red"
}
};
let data1 = {
type: 1,
data: {
id: "70729bb9-06ba-940e-6912-53c85f75cbb7",
center: {
mX: 28.532307806217773,
mY: 650.7000778453031,
mZ: 0
},
endPt: {
mX: 70.60073365269847,
mY: 583.0901077348876,
mZ: 0
},
color: "red"
}
};
let data2 = {
type: 2,
data: {
id: "59b263eb-b5ab-62db-a78e-843c5ca7dcad",
points: [{
mX: 13.507870003903221,
mY: 589.0998828558136,
mZ: 0
}, {
mX: 180.27912960959463,
mY: 492.94348092100046,
mZ: 0
}],
color: "red"
}
};
let data3 = {
type: 3,
data :{
id: "48b3f971-2b2a-d881-5b61-d6201de07784",
points: [{
mX: 54.07385207015247,
mY: 497.4508122616948,
mZ: 0
}, {
mX: 5.995651102745953,
mY: 308.14289595253155,
mZ: 0
}, {
mX: 172.76691070843736,
mY: 550.0363445697957,
mZ: 0
}, {
mX: 192.29867985144625,
mY: 214.9913815781814,
mZ: 0
}],
color: "red"
}
}
# 4.12 ZwEvtGetCommentDataForNextPage ()
简介
点击获取下一页评论的事件回调
语法
ZwCloud2D.ZwMessageCallback.ZwEvtGetCommentDataForNextPage= function(data:any){ //your code };
参数
data.pageNum 表示当前评论列表的页数
描述
ZwEvtGetCommentDataForNextPage 可被重写,自定义函数,在点击“更多评论”图标时触发,用户可以在该事件中设置下一页的评论数据
示例
ZwCloud2D.ZwMessageCallback.ZwEvtGetCommentDataForNextPage= function (data) {
let commentList = {...};
let memberList = {...};
let user = {...};
// 设置下一页评论数据(请参考ZwSetCommentData接口说明)
ZwCloud2D.ZwDataManager.ZwSetCommentData({commentList:commentList, memberList:memberList, user:user});
}
# 4.13 ZwEvtFileCompare ()
简介
文件比较事件的回调,有三种类型,启动文件对比、重生成。退出文件对比。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare= function(data: {state, params}){ //your code };
参数
handle 表示当前布局的 handle
描述
ZwEvtGetLayoutHandle 可被重写,自定义函数,在切换布局时触发,用户可以在该事件中获取当前布局的 handle
示例
ZwCloud2D.ZwMessageCallback.ZwEvtGetLayoutHandle= function (handle) {
<!-- 用户获取到当前handle后 -->
// your code
}
# 4.14 ZwEvtFileCompare ()
简介
文件比较事件的回调,有三种类型,启动文件对比、重生成。退出文件对比。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare= function(data: {state, params}){ //your code };
描述
ZwEvtFileCompare 可被重写,自定义函数,在文件比较触发,用户可以在该事件中获取当前布局的 handle
参数
data.state 表示文件比较的事件类型,值为"enterFcmp"或"getFcmpRegenData"或"exitFcmp"。data.params 表示文件比较重生成参数
参数示例
点击图纸对比按钮或输入 fcmp 命令,触发 ZwEvtFileCompare 回调,data.state 为"enterFcmp",参数示例如下
{
"state": "enterFcmp",
"params": null
}
在文件比较中,修改选项卡中的云线形状、云线尺寸、图案填充、文字参数,点击确认后触发 ZwEvtFileCompare 回调,data.state 为"getFcmpRegenData",参数示例如下
{
"state": "getFcmpRegenData",
"params": {
"data": {
//云线形状,0表示矩形,1表示多边形
"fcmpRcShape": 0,
//云线大小,范围:1~25
"fcmpRcMargin": 14,
//是否显示图案填充,1表示显示,0表示不显示
"fcmpHatch": 1,
//是否显示文字,1表示显示,0表示不显示
"fcmpText": 1
},
//当前的视口数据
"viewport": {
"viewportId": "442",
"centerPoint": [211.4844363195523, 579.4345886647325, 0],
"viewDirection": [0, 0, 1],
"viewCenter": [0, 0],
"height": 22.640023719654437,
"width": 23.336243127889823,
"twistAngle": 0,
"viewHeight": 22.640023719654437
},
"handleId": "34"
}
}
在文件比较中,点击工具栏中的退出按钮,触发 ZwEvtFileCompare 回调,data.state 为"exitFcmp",data 参数示例如下
{
"state": "exitFcmp",
"params": null
}
回调用法 示例
ZwCloud2D.ZwMessageCallback.ZwEvtFileCompare = async (data) => {
if (data.state === "enterFcmp") {
//示例代码,获取文件比较数据
let fcmpInfo = await req.transferFcmp({ sourcePath, compareFilePath });
//设置文件比较数据
let res = await ZwCloud2D.ZwDataManager.ZwSetFcmpDwgInfo(fcmpInfo);
//示例代码,获取文件比较的lmf显示数据
let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(
compareFilePath,
sourcePath
);
//加载文件比较的lmf显示数据
ZwCloud2D.ZwDataManager.ZwSetFcmpDwgData(
res.layout.handleId,
fcmpLmfArrayBuffer,
res.timestamp || new Date().getTime()
);
}
if (data.state === "getFcmpRegenData") {
//示例代码,获取重生成的数据
let fcmpInfo = await req.transferFcmp({
sourcePath,
compareFilePath,
...data.params,
});
let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(
compareFilePath,
sourcePath
);
//加载重生成的lmf显示数据和文件比较数据
ZwCloud2D.ZwDataManager.ZwSetFcmpRegenData({
lmfData: fcmpLmfArrayBuffer,
...fcmpInfo,
fcmpErrorFlag: 0,
});
}
if (data.state === "exitFcmp") {
//示例代码,此处示例为退出文件比较的后续流程是重新加载基准图纸
ZwCloud2D.ZwDataProcessor.ZwLoad();
}
};
# 4.15 ZwEvtExtendButtonClick ()
简介
用户自定义按钮的回调事件。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtExtendButtonClick= function(data:{section,index,button}){ //your code };
参数
data.section 表示包含用户点击的按钮的对象,在用户设置的 extendArray 的区域索引; data.index 表示包含用户点击的按钮,在用户设置的 extendArray 的对应对象的索引; data.button 表示用户点击的按钮对象。
描述
ZwEvtExtendButtonClick 是用户自定义按钮的回调事件,用户可以通过该事件,获取用户点击的索引和按钮对象,从而实现自定义功能。
示例
ZwCloud2D.ZwMessageCallback.ZwEvtExtendButtonClick= function (data:{section,index,button}) {
// your code
}
# 4.16 ZwEvtGetCatalogData ()
简介
触发获取元件库数据事件的回调,例如数据初始化、数据搜索等应用场景。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtGetCatalogData= function(queryParams){ //your code };
描述
ZwEvtGetCatalogData 可被重写,自定义函数,在初始化元件库面板或在元件库面板中执行搜索时触发,用户可以在该事件中获取所有的元件库数据
示例
参数
queryParams 是查询参数,包含的属性如下
queryParams 属性 | 类型 | 描述 |
---|---|---|
queryParams.pageNum | number | 页码,默认为 1,可为空 |
queryParams.pageSize | number | 每页展示数量,默认为 10,可为空 |
queryParams.queryName | string | 查询名称关键字,可为空 |
queryParams.pageFlag | boolean | 是否分页,默认为 true,为 false 时不分页并返回全量数据 |
回调用法 示例
ZwCloud2D.ZwMessageCallback.ZwEvtGetCatalogData = async (queryParams) => {
let req = new Request();
req.getLibraryByPage(queryParams).then((res) => {
res && ZwCloud2D.ZwDataManager.ZwSetCatalogData(res);
});
};
# 4.17 ZwEvtGetLibraryTypeList ()
简介
触发获取元件库包含的元件类别事件的回调,例如初始化元件数据、搜索元件等应用场景。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtGetLibraryTypeList= function(){ //your code };
描述
ZwEvtGetLibraryTypeList 可被重写,自定义函数,在初始化元件数据、搜索元件时触发,用户可以在该事件中获取所有的元件类别
示例
回调用法 示例
ZwCloud2D.ZwMessageCallback.ZwEvtGetLibraryTypeList = async () => {
let req = new Request();
req.getLibraryTypeList().then((res) => {
res && ZwCloud2D.ZwDataManager.ZwSetLibraryTypeList(res);
});
};
# 4.18 ZwEvtGetComponents ()
简介
触发获取元件数据事件的回调,例如数据初始化、数据搜索等应用场景。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtGetComponents= function(queryParams){ //your code };
描述
ZwEvtGetComponents 可被重写,自定义函数,在初始化元件面板或在元件面板中执行搜索时触发,用户可以在该事件中获取所有的元件数据
示例
参数
queryParams 是查询参数,包含的属性如下
queryParams 属性 | 类型 | 描述 |
---|---|---|
queryParams.id | string | 元件库 id,必填 |
queryParams.type | number | 元件类型,可为空 |
queryParams.pageNum | number | 页码,默认为 1,可为空 |
queryParams.pageSize | number | 每页展示数量,默认为 10,可为空 |
queryParams.queryName | string | 查询名称关键字,可为空 |
queryParams.pageFlag | boolean | 是否分页,默认为 true,为 false 时不分页并返回全量数据 |
回调用法 示例
ZwCloud2D.ZwMessageCallback.ZwEvtGetComponents = async (queryParams) => {
let req = new Request();
req.getComponents(queryParams).then((res) => {
if (res) {
res && ZwCloud2D.ZwDataManager.ZwSetComponentsData(res);
// 获取缩略图
let promiseList = new Array();
res &&
res.rows &&
res.rows.length > 0 &&
res.rows.forEach((element) => {
promiseList.push(
new Promise((resolve, reject) => {
req
.getThumbnailById({ id: element.thumbnailFileId })
.then((res) => {
resolve(res);
});
})
);
});
promiseList.length > 0 &&
Promise.all(promiseList)
.then((finalResult) => {
finalResult &&
ZwCloud2D.ZwDataManager.ZwSetComponentThumbnailsData(finalResult);
})
.catch(() => {
alert("缩略图获取失败");
});
}
});
};
# 4.19 ZwEvtInsertComponent ()
简介
触发插入元件事件的回调,例如在元件库面板右键插入图块的应用场景。
语法
ZwCloud2D.ZwMessageCallback.ZwEvtInsertComponent= function(item){ //your code };
描述
ZwEvtInsertComponent 可被重写,自定义函数,在右键插入元件时触发,用户可以在该事件中获取当前待插入的元件信息
示例
参数
item 是当前待插入的元件,包含的属性如下
item 属性 | 类型 | 描述 |
---|---|---|
item.id | string | 元件唯一标识符 id |
item.name | string | 元件名称 |
回调用法 示例
ZwCloud2D.ZwMessageCallback.ZwEvtInsertComponent = async (queryParams) => {
let req = new Request();
req.downloadComponentById({ id: item.id }).then((res) => {
res && ZwCloud2D.ZwDataManager.ZwSetComponentDwgData(res, item.name);
});
};
# 4.20 ZwEvtLoadVersionData ()
简介
触发此回调时,需要加载该图纸的版本列表数据
语法
ZwCloud2D.ZwMessageCallback.ZwEvtLoadVersionData= function(){ // your code };
描述
ZwEvtLoadVersionData 可被重写,自定义函数,在版本管理面板初始化的时候触发,用户需要在该事件中加载版本列表数据
示例
参数
无参数
回调用法 示例
ZwCloud2D.ZwMessageCallback.ZwEvtLoadVersionData = () => {
let req = new Request();
let versionList = req.getVersionList(docId);
ZwCloud2D.ZwDataManager.ZwSetVersionData(versionList);
};
# 4.21 ZwEvtVersionOperation ()
简介
版本管理操作的回调
语法
ZwCloud2D.ZwMessageCallback.ZwEvtVersionOperation= function(OperationData){ // your code };
描述
ZwEvtVersionOperation 可被重写,自定义函数。触发版本管理的各个操作时触发,用户需要在该事件中执行各个操作的逻辑,并加载该操作的执行结果
示例
参数
OperationData: {type: number , data : any}, type 是版本操作的类型
type 值 | 描述 |
---|---|
0 | 打开版本 |
1 | 版本对比 |
2 | 版本对比中重生成 |
3 | 退出版本对比 |
4 | 恢复版本 |
5 | 编辑版本 |
6 | 创建版本 |
7 | 删除版本 |
8 | 切换版本 |
9 | 切换结束 |
10 | 设置版本管理操作权限 |
13 | 获取版本详情 |
回调用法 示例
const VersionOperationType = {
Open: 0,
Compare: 1,
CompareRegen: 2,
CompareExit: 3,
Restore: 4,
EditVersion: 5,
CreateVersion: 6,
Delete: 7,
SwitchVersion: 8,
SwitchEnd: 9,
SetPermissions: 10,
detailReq: 13,
};
ZwCloud2D.ZwMessageCallback.ZwEvtLoadVersionData = (data) => {
let req = new Request()
let res = false
let type = OperationData.type
switch (type) {
case VersionOperationType.CreateVersion:
res = await req.createVersion({ ...OperationData.data })
break;
case VersionOperationType.EditVersion:
res = await req.editVersion({ ...OperationData.data })
break;
case VersionOperationType.Delete:
res = await req.deleteVersion({ ...OperationData.data })
break;
case VersionOperationType.SwitchVersion:
{
res = await req.switchVersion({
docId: OperationData.data.docId,
versionId: OperationData.data.versionId
})
if (!res) {
getVersions()
ZwCloud2D.ZwEditor.ZwSetLoadingState(false)
return
}
versionId = OperationData.data.versionId
let { layouts, lmfId, xrefs, fonts } = res
if (xrefs) {
let xrefPromises = [];
let srcMap = new Map();
xrefs.forEach((xrefRelation) => {
if (xrefRelation.fileId) {
xrefPromises.push(
new Promise((res, rej) => {
req.getThumbnail(xrefRelation.fileId)
.then(xrefThumb => {
if (xrefThumb) {
srcMap.set(xrefRelation.fileId, xrefThumb);
}
res(true);
});
})
);
}
});
Promise.all(xrefPromises)
.then(() => {
let params = {
docName: docName,
xrefRelations: xrefRelations,
srcMap: srcMap,
docSize
};
ZwCloud2D.ZwDataManager.ZwSetXrefList(params);
})
}
let dwgInfo = await ZwCloud2D.ZwDataManager
.ZwSetDwgInfo({
id: docId,
name: docName,
fonts: fonts,
layouts: layouts
})
await ZwCloud2D.ZwDataProcessor.ZwProcessFontData(dwgInfo.missingFonts)
getVersionLmfData({ fileId: lmfId, versionId: versionId }, { type, res: versionId })
}
break;
case VersionOperationType.Restore:
res = await req.restoreVersion({ ...OperationData.data })
break;
case VersionOperationType.detailReq:
res = await req.getVersionDetail(OperationData.data)
break;
case VersionOperationType.Compare:
{
let fcmpRes = await req.vcmp({
...OperationData.data,
data: {
fcmpRcShape: 0,
fcmpRcMargin: 5,
fcmpHatch: 1,
fcmpText: 1,
}
})
let fcmpDwgInfo = {
...fcmpRes,
baseFileName: `${fcmpRes.baseVersionName}`,
baseFileInfo: [
{ lable: '版本名称', value: fcmpRes.baseVersionName },
],
compareFileName: fcmpRes.compareVersionName,
compareFileInfo: [
{ lable: '版本名称', value: fcmpRes.compareVersionName },
],
fcmpDiffExt: fcmpRes.fcmpDiffExt,
fcmpErrorFlag: fcmpRes.fcmpErrorFlag,
fonts: (fcmpRes.fontList || []),
layouts: fcmpRes.layouts.map(item => ({
...item,
isDefault: item.isDefault === 1 ? 'YES' : 'NO',
name: item.layoutName,
tabOrder: item.order
})),
fcmpRcShape: 0,
fcmpRcMargin: 5,
fcmpHatch: 1,
fcmpText: 1,
id: docId,
}
let res = await ZwCloud2D.ZwDataManager.ZwSetFcmpDwgInfo(fcmpDwgInfo)
await ZwCloud2D.ZwDataProcessor.ZwProcessFontData(res.missingFonts)
ZwCloud2D.ZwDataProcessor.ZwProcessXrefData(fcmpDwgInfo.docid, fcmpRes.baseVersionName, fcmpRes.size)
let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(fcmpRes.lmfFileId);
ZwCloud2D.ZwDataManager.ZwSetFcmpDwgData(res.layout.handleId, fcmpLmfArrayBuffer, res.timestamp || new Date().getTime());
}
break;
case VersionOperationType.CompareRegen:
{
if (!OperationData.data) {
return
}
let fcmpRes = await req.vcmp({
...OperationData.data,
})
let fcmpLmfArrayBuffer = await req.getFcmpDisplayData(fcmpRes.lmfFileId);
ZwCloud2D.ZwDataManager.ZwSetFcmpRegenData({ lmfData: fcmpLmfArrayBuffer, fcmpDiffExt: fcmpRes.fcmpDiffExt });
}
break;
case VersionOperationType.CompareExit:
ZwCloud2D.ZwMessageCallback.ZwEvtLoadVersionData({
type: VersionOperationType.SwitchVersion,
data: OperationData.data
})
break;
default:
break;
}
//加载该操作的执行结果
ZwCloud2D.ZwDataManager.ZwVersionOperResult({ type, res })
};
# 4.22 ZwEvtEntitySelect()
简介
实体选中或取消时的回调事件
语法
ZwCloud2D.ZwMessageCallback.ZwEvtEntitySelect = function(entities){ //your code };
参数
无
描述
在实体选择或取消事件时触发,会将当前图纸中选中的实体列表以数组形式抛出,用户可在本回调方法中进行自定义处理。
示例
ZwCloud2D.ZwMessageCallback.ZwEvtEntitySelect = function(entities){
console.log(entities) // 打印当前选中的实体信息
};