2D Viewer集成API详细说明
1. 控制类属性说明
这些属性在控制类 nd_viewCtrl 设置好后即可使用。
属性名 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
src | 设置模型地址 | String | 必填,如:相对路径,绝对路径,http地址 | - |
fingerHttp | 设置云api地址 | String | 必填,如:http地址 | - |
language | 中英文配置 | String | 非必填,如zh,en | zh |
hidebtnCfg | 设置功能按钮隐藏,showbtnCfg未定义或者空时生效 | Array | 非必填,隐藏按钮的id合集, 配置见枚举值 | - |
showBtnCfg | 设置工具栏按钮集合,按顺序排列,用于显示需要的操作按钮,传值为对应按钮id,按按钮显示顺序排列 | Array | 非必填, 配置见枚举值 | 不做设置的时默认显示所有项 |
bgColor | 设置背景颜色,优先级低于bgImg,bgImg有值时背景颜色不生效 | String | 非必填,十六进制颜色值或者RGB值,例如#F8F8FF或者248,248,255 | #F2F2F2 |
unitType | 设置模型单位 | String | 非必填,'原始模型的单位 :‘’,毫米(公制单位):'mm',英尺(英制单位):'in' | - |
configNum | 设置多配置模型默认显示第几个配置 | Number | 非必填,如:0,1,2等 | -1 |
logoConfig | 配置logo参数,规则: 1,不传入src将无法预览, 2,不传入width,height以图片宽高为准, 3,不传入位置默认距离底部85px,距离左侧16px, 4,同时传作左右或上下,优先读取左和下,只传一个就读取一个值 |
Object | 非必填,如:{src: 'http://****',
left: '100px', bottom:
'100px'} src:图片地址, top:距离顶部距离与bottom互斥, left:距离左侧距离,与right互斥。 width,height:宽高设置 |
- |
vipBtnCfg | 配置哪些功能使用vip图标,仅中英文模式下生效 | Array | 非必填,如,['#ico-Tagging'] |
- |
themeMenu | 配置主题功能图标文件夹名称,与ico-zh同级,功能图标会优先从配置的文件夹名称中读取 | string | 非必填,如:test |
- |
viewports | 初始化时设置视图列表信息。配合视图相关接口使用 | Array | 非必填,如[] |
- |
measureSetting | 初始化前进行测量设置 | Object | - | - |
measureList | 初始化时回显测量数据 | Array | - | - |
viewerReqHeader | 对轻量化文件如Configurations.json配置请求头,业务端可以在在此配置中进行安全校验 | Object | 非必填, 如:{'token':
'test'} |
- |
waterInfo | 设置水印信息,如水印字体大小,水印横行纵向距离等 | Object | 非必填,如:
|
- |
magnifyingSetting | 测量放大镜配置 | Num | 0-默认;1-左上; 2-右上; 3-右下; 4-左下 | - |
newAnnoList | 批注数据(非热点批注) | Array | 非必填,参考批注接口返回数据 | - |
2. 控制类方法说明
这些方法在控制类 nd_viewCtrl 设置好后即可使用。
方法名 | 方法说明 | 入参 | 入参说明 | 返回值 |
---|---|---|---|---|
initLoad | 模型加载完成的通知 | - | - | - |
loadFaild | 模型加载失败的通知 | - | - | - |
loadedEvent | 模型加载过程的通知 | Function(info) | geometry,brep,pmi信息加载完成后会进行通知 | - |
checkEvent | 菜单按钮点击前触发的通知 | Function(id,cc) | id:菜单按钮的唯一标识, cc:回调函数,执行后才能进入菜单功能 |
- |
checkEventAfter | 菜单按钮点击生效后触发的通知 | Function(id) | id:菜单按钮的唯一标识 | - |
beSelectPoint | 在模型区域点击后,返回屏幕坐标值 | Function(point) | point:坐标值,可以根据此坐标值去调用接口,创建批注信息, point.x:x坐标值, point.y:y坐标值 |
- |
addModelview | 添加视图回调 | Function(d, i, cc) | d:视图信息, i:截图信息, cc:回调函数 |
- |
delModelview | 删除视图回调 | Function(id, cc) | id:视图id, cc:回调函数 |
- |
renameModelview | 编辑视图回调 | Function(id, viewport) | id:视图id, viewport:视图信息 |
- |
editTreeNodeName | 编辑结构树名称 | Function(treeNode) | treeNode:被编辑的节点信息 | - |
measureChange | 当测量数据发生变化时的通知 | Function({type, data}) | type: 'delete': 删除数据-单条 'edit': 修改数据-单条 'add': 新增数据-单条 'deletes': 批量删除 'editList': 批量修改 'addContinuous': 批量新增 data: 单条数据 -- 返回object 批量数据--返回array |
- |
exportExcel | 表格提取点击导出excel,接受提取数据 | Function(blob, fileName, cc) | blob:文件流 fileName:轻量化文件名称 cc:回调函数 |
- |
compareInsertModel | viewer通知点击了模型对比-添加模型。配合nd_compareInsertModel使用插入模型 | function() | - | - |
exitModelCompare | viewer通知点击了退出图纸对比功能 | function () | - | - |
addPostil | 非热点批注新增 | Function (data, cc) {} | data: 批注数据 cc: 回调函数 |
- |
editPostil | 非热点版批注编辑 | Function (data, cc) {} | data: 批注数据 cc: 回调函数 |
- |
delPostil | 非热点版批注删除 | Function (data, cc) {} | data: 批注数据 cc: 回调函数 |
- |
3. 控制类接口说明
以下方法需要获取Viewer全局对象后再调用,参考快速集成中 viewer.js的截图方法。
方法名 | 说明 | 类型 | 参数 | 返回值 |
---|---|---|---|---|
nd_screenCapture | 生成模型预览截图,支持是否显示水印 | Function(cc, showWater) | cc:回调函数Function(imgbase64),用于接收返回结果。imgbase64是base64格式的图片数据。 showWater:截图是否显示水印 |
void |
nd_screenMainContent | 屏幕截图 | Function(cc) | cc:回调函数Function(imgbase64),用于接收返回结果。imgbase64是base64格式的图片数据 | void |
nd_getMeasuringScale | 获取测量比例 | Function | — | Array |
nd_createPicTag | 创建批注信息。集成方传入批注基本信息info,通过回调函数可以拿到完整批注信息,存储批注数据后执行cc回调函数通知viewer模型区域添加批注。info坐标点可通过beSelectPoint获取,或自行获取,坐标点要求是模型区域的相对坐标。 | Fucntion(info, callback) | info:
批注信息,包含x,y坐标点(必传) text文本信息(非必传) imgURL图片信息(非必传) 例如: {x:
200, y:200, text: '文本', imgURL: 'http://***'} callback(tag,
cc) tag是viewer回传的批注信息,需要集成方存储起来 cc是回调函数执行后viewer区域会添加批注,存储操作通常是异步的,执行完后调用cc函数。 例子: nd_createPicTag({text:
'批注文本', x: 475, y: 251, imgURL: ''}, (info, cc) => {
console.log(info); setTimeout(() => {cc()},
500)}) |
- |
nd_resize | 显示区域自适应 | Function | — | void |
nd_render | 刷新渲染 | Function | — | void |
nd_getViewportList | 获取视图列表信息 | Function | — | Array:全部视图列表 |
nd_updateViewportById | 编辑视图 | Function | uuid:视图id(必填) name:视图名称(必填) |
void |
nd_setAllModelViewData | 加载视图 | Function | Array对象数据,参照获取试图信息返回数据格式 | void |
nd_deleteViewport | 删除视图 | Function | uuid:视图id(必填) | void |
nd_getMeasureList | 获取所有测量数据 | Function | - | Array:所有测量数据 |
nd_delMeasureResult | 通过uuid删除指定测量数据 | Function(uuid) | 指定测量数据的uuid | - |
nd_compareInsertModel | 模型对比-插入模型 | Function(path) | path:模型地址, 如,http://xx.xx.xx.xx/models/物流机器人/ | - |
nd_getNewAnnoList | 获取所有批注(非热点)信息 | Function | — | Array:所有批注数据 |
4. 枚举值说明
hideBtnCfg完整配置:
说明:集成方可以自定义配置,隐藏不需要的功能菜单。示例:hidebtnCfg: ['#ico-Tagging']
'#ico-Tagging', // 1批注
'#ico-measure', // 1测量
'#ico-viewports', // 1视图
'#ico-structure', // 1图层
'#ico-show', // 1显示隐藏批注
'#ico-lineWeight', // 1线宽
'#ico-textFind', // 1文字查找
'#ico-excelGet', // 1表格提取
'#ico-blockSearch', // 1图块查找
'#ico-zoomwindow', // 1框选放大
'#ico-home', // 1重置
'#ico-full', // 1全屏
'#ico-settings', // 1设置
'#ico-coordinate', // 2坐标
'#ico-distance', // 2距离
'#ico-continuousArea', // 2面积
'#ico-facade', // 2立面
'#ico-radius', // 2半径
'#ico-lineAngel', // 2角度
'#ico-statisticalResult', // 2结果统计
'#ico-meaScale', // 2测量设置
'#ico-tagGraphic', // 2热点批注
'#ico-annoText', // 2文字批注
'#ico-freehandLine', // 2手绘批注
'#ico-cloudLine', // 2云线批注
'#ico-circleAnno', // 2圆批注
'#ico-rectangleAnno', // 2矩形批注
'#ico-lineAnno', // 2直线批注
'#ico-annoArrow', // 2箭头批注
'#ico-pt2pt', // 3距离-点到点
'#ico-continuousLine', // 3连续测量
'#ico-edges', // 3线段长度
'#ico-arcLength',// 3 3点弧长
'#ico-pt2line', // 3距离-点到线
'#ico-line2line', // 3距离-线到线
'#ico-Lineargauge', // 3距离-线性测量
showBtnCfg配置:
说明:showBtnCfg是一个功能数组集合。每个功能按钮为一个对象,有3个属性,id:功能,list:子功能,imgUrl:功能图标。所有功能按钮见hideBtnCfg枚举配置。可调整数据下标位置来调整viewer功能菜单位置。例子如下:
showBtnCfg: [
{
id: 'ico-structure',
imgUrl: 'https://img2.baidu.com/it/u=3378489420,685425476&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500'
},
{
id: 'ico-measure',
list: [
{
id: 'ico-distance',
list: [
{
id: 'ico-smartdis'
}
]
}
]
},
],
measureType测量类型
坐标: 'coordinate'
点到点: 'pt2pt'
点到线: 'PointToLine'
线到线: 'LineToLine'
连续测量(总长): 'continuousEnd'
线段长度: 'measureEdges'
线型测量: 'Lineargauge'
面积: 'contourarea'
角度: 'LineAngle'
半径: 'radius'
三点弧长: 'ThreeptArc'
立面: 'facade'