SView for Windos Control为OCX控件提供三维模型基本的浏览、模型属性操作、基本三维对象操作、动画播放等功能的实现接口,可实现基本的 三维模型展示功能,以便于用户个性化定制属于自己的产品。文档主要介绍了OCX控件提供的接口说明。SView for Windows Control控件集成说明的介绍请查看SView for Windows Control 集成说明文档
功能模块 类型 接口 描述 备注
界面 方法 void ShowPanel(BSTR showPanel , VARIANT_BOOL showPorperty) 面板显隐
方法 VARIANT_BOOL ShowToolbar(BSTR toolbarName, VARIANT_BOOL visible) 工具栏显隐
方法 VARIANT_BOOL DoActions(SHORT viewID, BSTR actions) 执行原子操作
方法 VARIANT_BOOL DoCommand(SHORT viewID, BSTR commandJson) 执行命令
方法 void FullScreen(VARIANT_BOOL isFullScreen) 全屏
配置 方法 void SetParameters(BSTR configJson) 设置多个SView配置
方法 BSTR GetParameters() 获取多个SView配置
方法 void SetViewParameters(SHORT viewID, BSTR paramJson) 设置多个view配置
方法 void SetViewParameter(SHORT viewID, BSTR name, BSTR value) 设置单个view配置
文件 方法 void Open(SHORT viewID,BSTR fileUris) 打开文件或网页路径
方法 void Close(SHORT viewID) 关闭模型
基本浏览 方法 void RefreshWindow(SHORT viewID) 刷新视口
void SetPerspective(SHORT viewID,SHORT viewType) 设置基本视图
void SetOrbitMode(SHORT viewID, SHORT modelType) 设置观察模式
void RestoreView(SHORT viewID) 复位视口,复位整个场景,回到初始化完成状态
void Restore(SHORT viewID, BSTR shapeIDs, SHORT type) 复位模型,根据参数决定复位哪个属性
void Focus(SHORT viewID, BSTR svlPath) 聚焦显示
void SetWheelDirection(SHORT viewID, SHORT direction) 滚轮方向
void SetUpDirection(SHORT viewID, SHORT axis) 向上方向
void TakeScreenPicture(BSTR savePath) 快照
选择 方法 VARIANT_BOOL IsHighlight(SHORT viewID, BSTR svlPath) 是否高亮
方法 void Highlight(SHORT viewID, BSTR shapeID,VARIANT_BOOL highlight) 设置高亮
方法 BSTR GetSelectedModels(SHORT viewID) 获取选中的模型
方法 void DeselectModels(SHORT viewID, BSTR modelIDs) 取消选中模型
方法 void SelectShapes(SHORT viewID, BSTR shapeIDs, SHORT type) 选中对象
方法 BSTR GetSelectedShapes(SHORT viewID, SHORT type) 获取选中的对象
方法 void DeselectShapes(SHORT viewID, BSTR shapeIDs, SHORT type) 取消选中对象
模型 方法 BSTR GetModelName(SHORT viewID, BSTR svlPath) 获取模型名称
方法 void SetModelName(SHORT viewID, BSTR modelID, BSTR name) 重命名模型  
方法 BSTR GetModelSubModels(SHORT viewID, BSTR address) 获取所有子模型  
方法 BSTR GetModelParent(SHORT viewID, BSTR address) 获取父Model  
方法 VARIANT_BOOL IsModelAssembly(SHORT viewID, BSTR modelID) 是否为装配件  
方法 BSTR GetModelWorldPosition(SHORT viewID, BSTR modelID) 获取模型位置  
方法 void SetModelWorldPosition(SHORT viewID, BSTR modelID, BSTR pos) 设置模型位置  
方法 void SetModelVisible(SHORT viewID, BSTR modelID, VARIANT_BOOL visible) 显示或隐藏模型  
方法 void RestoreModel(SHORT viewID, BSTR modelPath) 复位模型  
方法 void FocusModel(BSTR svlPath) 设置模型居中显示  
模型属性 方法 BSTR GetModelProperties(SHORT viewID, BSTR modelID) 获取模型所有自定义属性  
方法 void SetModelProperties(SHORT viewID, BSTR modelPath,BSTR propertiesStr) 设置模型所有自定义属性  
方法 BSTR GetModelProperty(SHORT viewID, BSTR modelID, BSTR name) 获取模型单个自定义属性  
方法 void SetModelProperty(SHORT viewID, BSTR svlPath, BSTR name, BSTR value) 设置模型单个自定义属性  
方法 VARIANT_BOOL RemoveModelProperty(SHORT viewID, BSTR modelPath, BSTR propertyName) 删除模型单个自定义属性  
视图 方法 BSTR GetModelViews(SHORT viewID) 获取视图列表  
方法 BSTR ToModelViewJson(SHORT viewID, BSTR modelViewID) 保存视图为Json串  
方法 BSTR FromModelViewJson(SHORT viewID, BSTR jsonStr) 从Json串添加视图  
方法 SHORT CreateModelView(SHORT viewID, SHORT type) 添加自定义视图  
方法 VARIANT_BOOL RemoveModelView(SHORT viewID, SHORT measureShapeID) 删除视图  
方法 SHORT GetCurrentModelView(SHORT viewID) 获取当前视图  
方法 void ShowModelView(SHORT viewID, SHORT modelViewID, VARIANT_BOOL bAnimationPlay) 显示视图  
方法 SHORT GetDefaultModelView(SHORT viewID) 获取默认视图  
方法 void SetDefaultModelView(SHORT viewID, SHORT modelViewID) 设置默认视图  
方法 BSTR GetModelViewPMIs(SHORT viewID, SHORT modelViewID) 获取视图关联的PMI  
方法 BSTR GetModelViewNotes(SHORT viewID, SHORT modelViewID) 获取视图关联的批注  
方法 BSTR GetModelViewModels(SHORT viewID, SHORT modelViewID) 获取视图关联的模型  
方法 BSTR GetModelViewClips(SHORT viewID, SHORT modelViewID) 获取视图关联的剖切  
PMI 方法 BSTR GetModelAllPMIs(SHORT viewID, BSTR modelPath) 获取模型PMI列表  
批注 方法 BSTR FromNoteJson(BSTR jsonStr) 反序列化批注
方法 BSTR ToNoteJson(BSTR noteIDs) 序列化批注  
方法 BSTR GetModelAllNotes(SHORT viewID, BSTR modelPath) 获取所有批注  
方法 void RemoveNote(SHORT viewID, BSTR noteIDs) 删除批注  
热点 方法 BSTR CreateHotSpot(SHORT viewID, BSTR locationX, BSTR locationY, BSTR name) 创建热点  
方法 void SetHotSpotImage(SHORT viewID, BSTR hotSpotId, BSTR imagePath) 设置热点图片  
方法 void ToHotSpotJson(SHORT viewID, BSTR hotSpotId) 反序列化热点  
方法 VARIANT_BOOL RemoveHotSpot(SHORT viewID, BSTR hotSpotId) 热点删除  
测量 方法 VARIANT_BOOL RemoveMeasure(SHORT viewID, BSTR measureShapeID) 删除距离  
方法 BSTR ToMeasureJson(BSTR measureIDs) 反序列化测量对象  
方法 void FromMeasureJson(BSTR jsonStr) 序列化测量对象  
智能测量 方法 void PreView(SShape shape, bool isPreView) 设置预选状态
方法 bool isPreView(SShape shape) 获取预选状态
方法 void ClearPreView() 清除预选状态
方法 bool IsStraightLine(SLine shape) 是否直线
方法 bool IsCircleLine(SLine shape) 是否圆弧线
方法 bool IsParallel(SShape sShape1, SShape sShape2) 是否平行
方法 bool IsPlaneFace(SFace sFace) 是否平面
方法 bool IsCoplane(SLine firstLine, SLine secondLine) 是否共面
方法 bool IsCylindFace(SShape shape) 是否圆柱面
方法 bool IsConeFace(SShape shape) 是否圆锥面
方法 bool IsRevolutionFace(SShape shape) 是否旋转面
方法 void GetShapeProjectLength(SFace sFace, ref double x, ref double y, ref double z) 获取投影长度
方法 bool GetFacePerimeter(SFace sFace, ref double perimeter) 获取面的周长
方法 void SetPickTypes(SShape.ShapeType[] arr) 设置拾取对象的类型
方法 Dictionary<ShapeType, SShape> GetPickShape(float x, float y) 获取拾取到的shape集
方法 SPoint CreatePntPoint() 创建点测量需要的点对象
方法 void RemovePoint(SShape sShape) 删除点对象
方法 void SetDeviationAccuracy(@FloatRange(from = 0f, to = 600f) int accuracy) 设置拾取精度偏差
方法 SMeasure CreatePntPntDistanceMeasure(SPoint firstPoint, SPoint secondPoint) 创建点点距离测量
方法 SMeasure CreatePntLineDistanceMeasure(SPoint sPoint, SLine sLine) 创建点线距离测量
方法 SMeasure CreatePntCircleLineDistanceMeasure(SPoint sPoint, SLine sLine) 创建点圆弧线距离测量
方法 SMeasure CreatePntFaceDistanceMeasure(SPoint sPoint, SFace sFace) 创建点面距离测量
方法 SMeasure CreateLineLineDistanceMeasure(SLine firstLine, SLine secondLine) 创建线线距离测量
方法 SMeasure CreateLineFaceDistanceMeasure(SLine sLine, SFace sFace) 创建线面距离测量
方法 SMeasure CreateLineRevolutionFaceDistanceMeasure(SLine sLine, SFace sFace) 创建线旋转面距离测量
方法 SMeasure CreateFaceFaceDistanceMeasure(SFace firstFace, SFace secondFace) 创建面面距离测量
方法 SMeasure CreateFaceRevolutionFaceDistanceMeasure(SFace planeFace, SFace revolutionFace) 创建面旋转面距离测量
方法 SMeasure CreateCenterCenterDistanceMeasure(SLine firstLine, SLine secondLine) 创建圆心距离测量
方法 SMeasure CreateShaftShaftDistanceMeasure(SFace firstFace, SFace secondFace) 创建轴距测量
方法 SMeasure CreateLineLineAngleMeasure(SLine firstLine, SLine secondLine) 创建线线角度测量
方法 SMeasure CreateLineFaceAngleMeasure(SLine sLine, SFace sFace) 创建线面角度测量
方法 CreateFaceFaceAngleMeasure(SFace firstFace, SFace secondFace) 创建面面角度测量
方法 SMeasure CreateCircleRadiusMeasure(SLine sLine) 创建圆的半径测量
方法 SMeasure CreateCircleDiameterMeasure(SLine sLine) 创建圆的直径测量
剖切 方法 void Clip(SHORT viewID, BSTR paramJson) 剖切  
方法 void MultiClip(SHORT viewID, BSTR paramJson) 多剖切  
方法 void CancelClip(SHORT viewID) 关闭剖切  
执行爆炸 方法 void Explosive(SHORT viewID, BSTR explosiveParamJson) 浏览爆炸图,调节爆炸间距  
方法 void CancelExplosive(SHORT viewID) 关闭爆炸  
动画 方法 void Restore(SHORT viewID, BSTR shapeIDs, SHORT type) 模型恢复初始位置  
方法 void PlayAnimation(SHORT viewID) 播放某一步骤  
方法 void PauseAnimation(SHORT viewID) 暂停动画  
方法 void ContinueAnimation(SHORT viewID) 继续播放动画  
方法 void SetAnimationParameter(SHORT viewID, BSTR type, BSTR isLoop) 是否重复播放动画  
方法 void SetAnimationParameter(SHORT viewID, BSTR type, BSTR isLoop) 设置播放速度  
方法 VARIANT_BOOL OpenAnimation(SHORT viewID, BSTR animationFilePath) 打开动画文件
方法 void CloseAnimation(SHORT viewID) 关闭动画  
方法 void RewindAnimation(SHORT viewID) 倒带  
方法 VARIANT_BOOL IsPlayingAnimation(SHORT viewID) 是否正在播放  
方法 VARIANT_BOOL ExistAnimation(SHORT viewID) 是否有动画
漫游命令 方法 VARIANT_BOOL SetWalkThroughParameters(SHORT viewID,BSTR json) 设置漫游参数
方法 BSTR GetWalkThroughParameters(SHORT viewID) 获取漫游参数  
方法 void CancelWalkThrough(SHORT viewID) 关闭漫游  
形状对象 方法 SVARIANT_BOOL GetVisible(SHORT viewID, BSTR shapeID, SHORT shapeType) 获取显隐状态
方法 void SetVisible(SHORT viewID, BSTR shapeID, SHORT shapeType, VARIANT_BOOL visible) 设置显隐状态  
方法 BSTR GetColor(SHORT viewID, BSTR shapeID, SHORT shapeType) 获取对象颜色  
方法 void SetColor(SHORT viewID, BSTR shapeIDs, SHORT shapeType, BSTR color) 设置对象颜色  
模型渲染 方法 FLOAT GetAlpha(SHORT viewID, BSTR shapeIDs) 获取模型透明度
方法 void SetAlpha(SHORT viewID, BSTR shapeID, FLOAT alpha) 设置模型透明度  
方法 void SetModelColor(SHORT viewID,BSTR shapeID, BSTR colorStr) 设置模型颜色  
方法 void RestoreColor(SHORT viewID,BSTR svlPath, SHORT type) 选中模型恢复初始颜色  
渲染相机 方法 BSTR GetCameraStates(SHORT viewID, SHORT cameraID) 获取相机状态值
方法 void SetCameraStates(SHORT viewID, SHORT camaraID, BSTR states) 设置摄像机状态值  
渲染背景 方法 void SetBackgroundColor(SHORT viewID, BSTR topColor, BSTR bottomColor) 设置背景颜色
事件 事件 OnRightMouseDownEvent(locationX,locationY) 鼠标右键点击事件
事件 OnRestoreViewEvent(restoreViewInfo) 模型复原事件
事件 OnModelSelectedChanged(svlPath,isSelected) 模型选中事件
事件 OnModelPreSelectChanged(svlPath,isSelected) 模型预选事件
事件 OnLoaded(loadInfo) 控件加载完成事件
事件 OnFileLoadEndEvent(fileLoadInfo) 模型加载完成事件
事件 OnLeftMouseDownEvent(locationX,locationY) 鼠标左键点击事件
方法 void SetMoseHover(VARIANT_BOOL isHover) 鼠标悬停事件开关  
方法 void OnMouseHoverEvent(LPCTSTR locationX,LPCTSTR locationY) 鼠标悬停事件  
面板显隐
方法
void ShowPanel(BSTR showPanel , VARIANT_BOOL showPorperty)
说明
面板显隐
参数
参数 是否必须 说明
showPanel 面板名称
showPorperty 是否显示,True/False
返回值
bool 显隐成功/失败
备注
面板名称 参数
装配 AssemblyPanel
视图 ViewPanel
属性 PropertyPanel
图层 LayerPanel
工具栏显隐
方法
VARIANT_BOOL ShowToolbar(BSTR toolbarName, VARIANT_BOOL visible)
说明
工具栏显隐
参数
参数 是否必须 说明
toolbarName 工具栏名称
visible 是否显示,True/False
返回值
bool 显隐成功/失败
备注
工具栏名称 参数
上部工具栏 TopBar
右侧工具栏 RightBar
底部工具栏 BottomBar
批注工具栏 AnnotationBar
手绘批注工具栏 GestureNoteBar
剖切工具栏 ClipBar
爆炸工具栏 ExplodeBar
测量工具栏 MesuareBar
动画工具栏 AnimateBar
执行操作
方法
VARIANT_BOOL DoActions(SHORT viewID, BSTR actions)
说明
执行操作
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
actions json见Action定义
返回值
bool 执行操作成功/失败
备注
执行命令
方法
VARIANT_BOOL DoCommand(SHORT viewID, BSTR commandJson)
说明
执行命令
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
actions json见Command定义
返回值
bool 执行操作成功/失败
备注
全屏
方法
void FullScreen(VARIANT_BOOL isFullScreen)
说明
全屏
参数
参数 是否必须 说明
isFullScreen 是否全屏显示,True/False
返回值
void
备注
设置多个SView配置
方法
void SetParameters(BSTR configJson)
说明
设置多个SView配置
参数
参数 是否必须 说明
configJson 多个参数json字符串
返回值
void
备注
Json格式示例:
{
 "GLES": "2",
 "coordinate": "True",
 "antialiasing": "0",
 "isPlayScene": "True"
}
获取多个SView配置
方法
BSTR GetParameters()
说明
获取多个SView配置
参数
返回值
BSTR 返回多个参数值的json字符串
备注
设置多个View配置
方法
void SetViewParameters(SHORT viewID, BSTR paramJson)
说明
设置多个View配置
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
paramJson 多个参数json字符串
返回值
void
备注
Json格式示例:
{
 "ShowBox":"True",    //显示包围盒
 "MultiSelect":"True", //多选
 "UpDirection":"0",//模型上方向0=+X;1=-X;2=+Y;3=-Y;4=+Z;5=-Z;
 "AutoSelectRotateCenter":"True" //指定旋转
 "DrawMode":"0",//渲染模式 0着色模式、1半透明模式、3线框模式、4边着色模式、5显示网格、6取消半透明模式、7显示/取消显示包围盒
 "modelSelectedColor":"1,0,0,1"//模型选中颜色
}
设置单个View配置
方法
void SetViewParameter(SHORT viewID, BSTR name, BSTR value)
说明
设置单个View配置
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
name 参数名,如"ShowBox"
value 参数值,如"True"
返回值
void
备注
打开文件
方法
void Open(SHORT viewID,BSTR fileUris)
说明
打开本地文件/打开网络文件
参数
参数 是否必须 说明
viewID 是,默认是0 视口ID
fileUris 本地文件路径/网络文件路径多个文件用;;分割
返回值
void
备注
本地文件路径示例 D:\\1.svl 打开D盘下的1.svl文件 网络文件示例 http://192.168.75.1:8080/svlfiles/1.svl
关闭模型
方法
void Close(SHORT viewID)
说明
关闭模型
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
返回值
void
备注
刷新视口
方法
void RefreshWindow(SHORT viewID)
说明
刷新视口
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
返回值
void
备注
设置基本视图
方法
void SetPerspective(SHORT viewID,SHORT viewType)
说明
设置基本视图
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
viewType viewType:视图方向
返回值
void
备注
设置基本视图,如正视图、轴侧图等
视图方向:0前视图,1后视图,2左视图,3右视图,4仰视图,5俯视图,6轴测图,7默认视图,8后轴测图
设置观察模式
方法
void SetOrbitMode(SHORT viewID, SHORT modelType)
说明
设置观察模式
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
viewType modelType:观察类型
返回值
void
备注
设置观察类型
观察类型:0 自由观察, 1 动态观察,2 受约束的动态观察
复位视口
方法
void RestoreView(SHORT viewID)
说明
复位视口
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
返回值
void
备注
复位视口,复位整个场景,回到初始化完成状态
复位模型
方法
void Restore(SHORT viewID, BSTR shapeIDs, SHORT type)
说明
复位模型
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
shapeIDs shapes数组,需要复位的对象数组,为空则复位所有对象。
shapeIDs为对象路径。
type 复位的属性类型。0=All,1=transform,2=color,3=visible
返回值
void
备注
复位模型,根据参数决定复位哪个属性
聚焦显示
方法
void Focus(SHORT viewID, BSTR svlPath)
说明
聚焦显示
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
svlPath 聚焦显示的对象路径
返回值
void
备注
滚轮方向
方法
void SetWheelDirection(SHORT viewID, SHORT direction)
说明
滚轮方向
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
direction 滚轮方向对应数值。
direction:1,后滚放大;—1,前滚放大。
返回值
void
备注
向上方向
方法
void SetUpDirection(SHORT viewID, SHORT axis)
说明
向上方向
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
axis 向上方向对应的数值大小。
axis:0 右方向;1 左方向;2 上方向;3 下方向;4 前方向;5 后方向
返回值
void
备注
快照
方法
void TakeScreenPicture(BSTR savePath)
说明
快照
参数
参数 是否必须 说明
savePath 快照保存的本地路径。
返回值
void
备注
方法
VARIANT_BOOL IsHighlight(SHORT viewID, BSTR svlPath)
说明
根据svlPath来获取模型是否高亮;
参数
参数 是否必须 说明
viewID 是/默认是0 视口ID
svlPath 模型唯一标识
返回值
True/False 高亮/不高亮
备注
svlPath 示例"PATH|0|3|2|3",此svlPath只支持单个唯一标识处理;
方法
void Highlight(SHORT viewID, BSTR shapeID,VARIANT_BOOL highlight)
说明
根据shapeID模型标识,highlight是否高亮来设置高亮
参数
参数 是否必须 说明
viewID 视口ID默认为0
shapeID 模型唯一标识(见备注)
highlight 是否高亮显示,True/False高亮/不高亮
返回值
void
备注
shapeID 示例"PATH|0|3|2|3" 如果有多个需要用","分隔开例如:"PATH|0|3|2|3,PATH|0|17|6,PATH|0|2";
方法
BSTR GetSelectedModels(SHORT viewID)
说明
获取当前视口中选中的模型。
参数
参数 是否必须 说明
viewID 视口ID默认为0
返回值
类型:BSTR
描述:返回的模型数组,OCX中为模型id列表的字符串,以英文逗号间隔。
备注
方法
void DeselectModels(SHORT viewID, BSTR modelIDs)
说明
取消选中指定的多个模型。
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelIDs modelIDs:要取消选中的模型数组。为Null则取消选中所有已选模型。
OCX中为对象id列表的字符串,以英文逗号间隔。
返回值
void
备注
方法
void SelectShapes(SHORT viewID, BSTR shapeIDs, SHORT type)
说明
在视口中高亮指定的对象,如果有对应面板,则在面板中选中指定对象。
参数
参数 是否必须 说明
viewID 视口ID默认为0
shapeIDs 指定的对象数组
type 指定的类型,如:0=模型、1=批注、2=测量、3=PMI、4=热点、5=几何等
返回值
void
备注
方法
BSTR GetSelectedShapes(SHORT viewID, SHORT type)
说明
获取当前视口中选中的对象。
参数
参数 是否必须 说明
viewID 视口ID默认为0
type 指定的类型,如:1=批注、2=测量、3=PMI、4=热点、5=几何等
返回值
类型:BSTR
描述:shapes:指定的对象数组,OCX中为对象id列表的字符串,以英文逗号间隔。
备注
方法
void DeselectShapes(SHORT viewID, BSTR shapeIDs, SHORT type)
说明
取消选中对象
参数
参数 是否必须 说明
viewID 视口ID默认为0
shapeIDs shapeIDs:要取消选中的指定的对象数组
type type:指定的类型,如:1=批注、2=测量、3=PMI、4=热点、5=几何等
返回值
void
备注
获取模型名称
方法
BSTR GetModelName(SHORT viewID, BSTR svlPath)
说明
通过svlPath获取模型名称;
参数
参数 是否必须 说明
viewID 视口ID默认为0
svlPath 模型唯一标识
返回值
类型:BSTR
描述:模型名称
备注
svlPath 示例"PATH|0|3|2|3",此svlPath只支持单个唯一标识处理;
重命名模型
方法
void SetModelName(SHORT viewID, BSTR modelID, BSTR name)
说明
重命名模型与设置模型名称相同,同时会更新装配树中的模型名称;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
name 重命名模型的名字
返回值
void
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
获取所有的子模型
方法
BSTR GetModelSubModels(SHORT viewID, BSTR address)
说明
获取所有子模型;
参数
参数 是否必须 说明
viewID 视口ID默认为0
address address:模型唯一标识
返回值
类型:BSTR
描述:模型唯一标识,路径
备注
address 示例"PATH|0",此address只支持单个唯一标识处理;
获取父Model
方法
BSTR GetModelParent(SHORT viewID, BSTR address)
说明
获取父Model;
参数
参数 是否必须 说明
viewID 视口ID默认为0
address address:模型唯一标识
返回值
类型:BSTR
描述:模型唯一标识,路径
备注
address 示例"PATH|0|3|2|3",此address只支持单个唯一标识处理;
是否为装配件
方法
VARIANT_BOOL IsModelAssembly(SHORT viewID, BSTR modelID)
说明
是否为装配件;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
返回值
True/False 是否为装配件
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
获取模型位置
方法
BSTR GetModelWorldPosition(SHORT viewID, BSTR modelID)
说明
获取模型位置;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
返回值
paramJson为json格式数据:
{
  "positionX": 3042.774,
  "positionY": -549.5999,
  "positionZ": -904.6703
}
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
设置模型位置
方法
void SetModelWorldPosition(SHORT viewID, BSTR modelID, BSTR pos)
说明
设置模型位置;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
pos pos:世界坐标系中的模型中心点位置。
ocx中为位置xyz坐标值字符串"x,y,z"
返回值
void
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
显示或隐藏模型
方法
void SetModelVisible(SHORT viewID, BSTR modelID, VARIANT_BOOL visible)
说明
显示或隐藏模型;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
visible visible:是否可见。
返回值
void
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
复位模型
方法
void RestoreModel(SHORT viewID, BSTR modelPath)
说明
复位模型;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelPath modelPath:模型唯一标识
返回值
void
备注
modelPath 示例"PATH|0|3|2|3",此modelPath只支持单个唯一标识处理;
设置模型居中显示
方法
void FocusModel(BSTR svlPath)
说明
设置模型居中显示;
参数
参数 是否必须 说明
svlPath svlPath:模型唯一标识
返回值
void
备注
svlPath 示例"PATH|0|3|2|3",此svlPath只支持单个唯一标识处理;
获取模型所有自定义属性
方法
BSTR GetModelProperties(SHORT viewID, BSTR modelID)
说明
获取模型所有自定义属性;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
返回值
string ret,json格式的属性列表
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
设置模型所有自定义属性
方法
void SetModelProperties(SHORT viewID, BSTR modelPath,BSTR propertiesStr)
说明
设置模型所有自定义属性;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelPath modelPath:模型唯一标识
propertiesStr modelID:模型唯一标识
返回值
void
备注
modelPath 示例"PATH|0|3|2|3",此modelPath只支持单个唯一标识处理。
propertiesStr为json格式数据:
{
	"visible": "true",
	"description": "gdfgdfg",
	"viewName": "",
	"animationName": "",
	"voiceFileName": "",
	"cameraProjectionType": "0",
	"position": [-126.909454, -113.450348, 280.300476]
}
获取模型单个自定义属性
方法
BSTR GetModelProperty(SHORT viewID, BSTR modelID, BSTR name)
说明
获取模型单个自定义属性;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelID modelID:模型唯一标识
name string name,属性名
返回值
string ret:属性值
备注
modelID 示例"PATH|0|3|2|3",此modelID只支持单个唯一标识处理;
设置模型单个自定义属性
方法
void SetModelProperty(SHORT viewID, BSTR svlPath, BSTR name, BSTR value)
说明
设置模型单个自定义属性;
参数
参数 是否必须 说明
viewID 视口ID默认为0
svlPath svlPath:模型唯一标识
name 属性名
value 属性值
返回值
void
备注
svlPath 示例"PATH|0|3|2|3",此svlPath只支持单个唯一标识处理。
删除模型单个自定义属性
方法
VARIANT_BOOL RemoveModelProperty(SHORT viewID, BSTR modelPath, BSTR propertyName)
说明
删除模型单个自定义属性;
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelPath modelPath:模型配置路径
propertyName 属性名称
返回值
void
备注
modelPath 示例"PATH|0|3|2|3",此modelPath只支持单个唯一标识处理。
方法
BSTR GetModelViews(SHORT viewID)
说明
获取视图列表
参数
参数 是否必须 说明
viewID 视口ID默认为0
返回值
类型:BSTR
描述:视图集合,OCX中为视图id拼接字符串。
备注
方法
BSTR ToModelViewJson(SHORT viewID, BSTR modelViewID)
说明
根据视图ID序列化生成视图Json数据
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 视图ID,为All则获取全部视图,多个modelViewID用逗号隔开,例如:1001,1002,1003,1004
返回值
类型:BSTR
描述:视图json数据。
备注
方法
BSTR FromModelViewJson(SHORT viewID, BSTR jsonStr)
说明
根据视图Json数据生成视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
jsonStr 视图Json数据
返回值
类型:BSTR
描述:视图ID,多个ID用逗号隔开,例如:1001,1002,1003,1004。
备注
方法
SHORT CreateModelView(SHORT viewID, SHORT type)
说明
根据当前场景创建视图。
参数
参数 是否必须 说明
viewID 视口ID默认为0
type type:1=相机,2=零件位置,4=批注,8=热点。。。
返回值
类型:SHORT
描述:视图ID
备注
方法
VARIANT_BOOL RemoveModelView(SHORT viewID, SHORT measureShapeID)
说明
删除视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
measureShapeID 要删除的视图ID
返回值
类型:VARIANT_BOOL
描述:视图删除成功/失败 True/False
备注
方法
SHORT GetCurrentModelView(SHORT viewID)
说明
获取当前视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
返回值
类型:SHORT
描述:当前视图ID
备注
方法
void ShowModelView(SHORT viewID, SHORT modelViewID, VARIANT_BOOL bAnimationPlay)
说明
显示视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
返回值
void
备注
方法
SHORT GetDefaultModelView(SHORT viewID)
说明
获取默认视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
返回值
视图对象,默认视图ID
备注
方法
void SetDefaultModelView(SHORT viewID, SHORT modelViewID)
说明
设置默认视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 默认视图ID
返回值
void
备注
方法
BSTR GetModelViewPMIs(SHORT viewID, SHORT modelViewID)
说明
获取视图关联的PMI
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 视图ID
返回值
PMI集合,ocx中为pmiID数组字符串
备注
方法
BSTR GetModelViewNotes(SHORT viewID, SHORT modelViewID)
说明
获取视图关联的批注
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 默认视图ID
返回值
批注集合,ocx中为ID数组字符串
备注
方法
BSTR GetModelViewModels(SHORT viewID, SHORT modelViewID)
说明
获取视图关联的模型
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 默认视图ID
返回值
模型集合,ocx中为ID数组字符串
备注
方法
BSTR GetModelViewClips(SHORT viewID, SHORT modelViewID)
说明
设置默认视图
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 默认视图ID
返回值
剖切集合,ocx中为ID数组字符串
备注
方法
BSTR GetModelViewClips(SHORT viewID, SHORT modelViewID)
说明
获取指定model下的PMI数组,如果model为Null,则获取PMI文件中所有PMI。
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelViewID 默认视图ID
返回值
指定模型PMI数据
备注
反序列化批注
方法
BSTR FromNoteJson(BSTR jsonStr)
说明
根据批注Json数据反序列化生成文本批注
参数
参数 是否必须 说明
jsonStr 文本批注Json数据
返回值
文本批注ID,多个ID用逗号隔开,例如:55410,55411,55412
备注
序列化批注
方法
BSTR ToNoteJson(BSTR noteIDs)
说明
根据批注ID,文本批注序列化成Json数据
参数
参数 是否必须 说明
noteIDs 文本批注ID,All为获取全部文本批注,多个ID用逗号隔开,例如:55410,55411,55412
返回值
为json格式数据
备注
获取所有批注
方法
BSTR GetModelAllNotes(SHORT viewID, BSTR modelPath)
说明
获取指定model下的Note数组,如果model为Null,则获取note文件中所有note。
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelPath 模型唯一标识
返回值
获取指定model下的Note数组
备注
modelPath 示例"PATH|0|3|2|3";
删除批注
方法
void RemoveNote(SHORT viewID, BSTR noteIDs)
说明
删除指定模型的批注
参数
参数 是否必须 说明
viewID 视口ID默认为0
modelPath 模型唯一标识
返回值
void
备注
modelPath 示例"PATH|0|3|2|3";
创建热点
方法
BSTR CreateHotSpot(SHORT viewID, BSTR locationX, BSTR locationY, BSTR name)
说明
创建热点
参数
参数 是否必须 说明
viewID 视口ID默认为0
locationX 屏幕坐标点X值
locationY 屏幕坐标点Y值
name 热点名称
返回值
创建的热点ID
备注
设置热点图片
方法
void SetHotSpotImage(SHORT viewID, BSTR hotSpotId, BSTR imagePath)
说明
设置热点图片
参数
参数 是否必须 说明
viewID 视口ID默认为0
hotSpotId 热点id
imagePath 图片文件路径
返回值
void
备注
图片文件路径例:C:\\123.png;
反序列化热点
方法
void ToHotSpotJson(SHORT viewID, BSTR hotSpotId)
说明
反序列化热点
参数
参数 是否必须 说明
viewID 视口ID默认为0
hotSpotId 热点id
返回值
void
备注
热点删除
方法
VARIANT_BOOL RemoveHotSpot(SHORT viewID, BSTR hotSpotId)
说明
删除指定的热点
参数
参数 是否必须 说明
viewID 视口ID默认为0
hotSpotId 热点id
返回值
热点删除成功/失败 True/False
备注
删除距离
方法
VARIANT_BOOL RemoveMeasure(SHORT viewID, BSTR measureShapeID)
说明
删除指定的距离对象
参数
参数 是否必须 说明
viewID 视口ID默认为0
measureShapeID 测量对象的集合。
返回值
测量对象删除成功/失败 True/False
备注
反序列化测量对象
方法
BSTR ToMeasureJson(BSTR measureIDs)
说明
反序列化测量对象
参数
参数 是否必须 说明
viewID 视口ID默认为0
measureIDs 测量对象的集合
返回值
json格式测量数据;
备注
序列化测量对象
方法
void FromMeasureJson(BSTR jsonStr)
说明
序列化测量对象
参数
参数 是否必须 说明
jsonStr json格式测量数据;
返回值
void
备注
设置预选状态
方法
void PreView(SShape shape, bool isPreView)
说明
设置shape预选状态
参数
参数 是否必须 说明
pickShape 要设置状态的shape
isPreView 状态
返回值
备注
获取预选状态
方法
bool isPreView(SShape shape)
说明
获取shape预选状态
参数
参数 是否必须 说明
shape 要获取状态的shape
返回值
预选状态
备注
清除预选状态
方法
void ClearPreView()
说明
清除预选状态
参数
返回值
备注
是否直线
方法
bool IsStraightLine(SLine shape)
说明
是否直线
参数
参数 是否必须 说明
shape 线对象
返回值
是否是直线类型
备注
是否圆弧线
方法
bool IsCircleLine(SLine shape)
说明
是否圆弧线
参数
参数 是否必须 说明
shape 线对象
返回值
是否是圆弧线类型
备注
是否平行
方法
bool IsParallel(SShape sShape1, SShape sShape2)
说明
是否平行
参数
参数 是否必须 说明
sShape1 第一个对象
sShape2 第二个对象
返回值
是否平行
备注
参数只能是线、面对象
是否平面
方法
bool IsPlaneFace(SFace sFace)
说明
是否平面
参数
参数 是否必须 说明
sFace 面对象
返回值
是否平面
备注
是否共面
方法
bool IsCoplane(SLine firstLine, SLine secondLine)
说明
是否共面
参数
参数 是否必须 说明
firstLine 第一个线对象
secondLine 第二个线对象
返回值
是否共面
备注
参数只能是直线对象
是否圆柱面
方法
bool IsCylindFace(SShape shape)
说明
是否圆柱面
参数
参数 是否必须 说明
shape 面对象
返回值
是否圆柱面
备注
是否圆锥面
方法
bool IsConeFace(SShape shape)
说明
是否圆锥面
参数
参数 是否必须 说明
shape 面对象
返回值
是否圆锥面
备注
是否旋转面
方法
bool IsRevolutionFace(SShape shape)
说明
是否圆锥面
参数
参数 是否必须 说明
shape 面对象
返回值
是否旋转面
备注
获取投影长度
方法
void GetShapeProjectLength(SFace sFace, ref double x, ref double y, ref double z)
说明
获取投影长度
参数
参数 是否必须 说明
sFace 面对象
x ref double
y ref double
z ref double
返回值
备注
获取面的周长
方法
bool GetFacePerimeter(SFace sFace, ref double perimeter)
说明
获取面的周长
参数
参数 是否必须 说明
sFace 面对象
perimeter ref double
返回值
备注
设置拾取对象的类型
方法
void SetPickTypes(SShape.ShapeType[] arr)
说明
设置拾取对象的类型
参数
参数 是否必须 说明
arr 类型集
返回值
备注
获取拾取到的shape集
方法
Dictionary<ShapeType, SShape> GetPickShape(float x, float y)
说明
获取拾取到的shape集
参数
参数 是否必须 说明
x 坐标
y 坐标
返回值
拾取到的数据集 key:类型 value:shape对象
备注
创建点测量需要的点对象
方法
SPoint CreatePntPoint()
说明
创建点测量需要的点对象
参数
返回值
创建的点对象
备注
删除点对象
方法
void RemovePoint(SShape sPoint)
说明
删除点对象
参数
参数 是否必须 说明
sPoint 点对象
返回值
备注
设置拾取精度偏差
方法
void SetDeviationAccuracy(@FloatRange(from = 0f, to = 600f) int accuracy)
说明
设置拾取精度偏差
参数
参数 是否必须 说明
accuracy 精度值
返回值
备注
创建点点距离测量
方法
SMeasure CreatePntPntDistanceMeasure(SPoint firstPoint, SPoint secondPoint)
说明
创建点点距离测量
参数
参数 是否必须 说明
firstPoint 点对象
secondPoint 点对象
返回值
创建的测量对象
备注
创建点线距离测量
方法
SMeasure CreatePntLineDistanceMeasure(SPoint sPoint, SLine sLine)
说明
创建点线距离测量
参数
参数 是否必须 说明
sPoint 点对象
sLine 线对象
返回值
创建的测量对象
备注
创建点圆弧线距离测量
方法
SMeasure CreatePntCircleLineDistanceMeasure(SPoint sPoint, SLine sLine)
说明
创建点圆弧线距离测量
参数
参数 是否必须 说明
sPoint 点对象
sLine 线对象
返回值
创建的测量对象
备注
创建点面距离测量
方法
SMeasure CreatePntFaceDistanceMeasure(SPoint sPoint, SFace sFace)
说明
创建点面距离测量
参数
参数 是否必须 说明
sPoint 点对象
sFace 面对象
返回值
创建的测量对象
备注
创建线线距离测量
方法
SMeasure CreateLineLineDistanceMeasure(SLine firstLine, SLine secondLine)
说明
创建线线距离测量
参数
参数 是否必须 说明
firstLine 线对象
secondLine 线对象
返回值
创建的测量对象
备注
创建线面距离测量
方法
SMeasure CreateLineFaceDistanceMeasure(SLine sLine, SFace sFace)
说明
创建线面距离测量
参数
参数 是否必须 说明
sLine 线对象
sFace 面对象
返回值
创建的测量对象
备注
创建线旋转面距离测量
方法
SMeasure CreateLineRevolutionFaceDistanceMeasure(SLine sLine, SFace sFace)
说明
创建线旋转面距离测量
参数
参数 是否必须 说明
sLine 线对象
sFace 面对象
返回值
创建的测量对象
备注
创建面面距离测量
方法
SMeasure CreateFaceFaceDistanceMeasure(SFace firstFace, SFace secondFace)
说明
创建面面距离测量
参数
参数 是否必须 说明
firstFace 面对象
secondFace 面对象
返回值
创建的测量对象
备注
创建面旋转面距离测量
方法
SMeasure CreateFaceRevolutionFaceDistanceMeasure(SFace planeFace, SFace revolutionFace)
说明
创建面旋转面距离测量
参数
参数 是否必须 说明
planeFace 面对象
revolutionFace 面对象
返回值
创建的测量对象
备注
创建圆心距离测量
方法
SMeasure CreateCenterCenterDistanceMeasure(SLine firstLine, SLine secondLine)
说明
创建圆心距离测量
参数
参数 是否必须 说明
firstLine 线对象
secondLine 线对象
返回值
创建的测量对象
备注
创建轴距测量
方法
SMeasure CreateShaftShaftDistanceMeasure(SFace firstFace, SFace secondFace)
说明
创建轴距测量
参数
参数 是否必须 说明
firstFace 面对象
secondFace 面对象
返回值
创建的测量对象
备注
创建线线角度测量
方法
SMeasure CreateLineLineAngleMeasure(SLine firstLine, SLine secondLine)
说明
创建线线角度测量
参数
参数 是否必须 说明
firstLine 线对象
secondLine 线对象
返回值
创建的测量对象
备注
创建线面角度测量
方法
SMeasure CreateLineFaceAngleMeasure(SLine sLine, SFace sFace)
说明
创建线面角度测量
参数
参数 是否必须 说明
firstLine 线对象
sFace 面对象
返回值
创建的测量对象
备注
创建面面角度测量
方法
SMeasure CreateFaceFaceAngleMeasure(SFace firstFace, SFace secondFace)
说明
创建面面角度测量
参数
参数 是否必须 说明
firstFace 面对象
secondFace 面对象
返回值
创建的测量对象
备注
创建圆的半径测量
方法
SMeasure CreateCircleRadiusMeasure(SLine sLine)
说明
创建圆的半径测量
参数
参数 是否必须 说明
sLine 线对象
返回值
创建的测量对象
备注
创建圆的直径测量
方法
SMeasure CreateCircleDiameterMeasure(SLine sLine)
说明
创建圆的直径测量
参数
参数 是否必须 说明
sLine 线对象
返回值
创建的测量对象
备注
剖切
方法
void Clip(SHORT viewID, BSTR paramJson)
说明
基于坐标平面创建剖面,可调节剖切深度,展示剖切面内容
参数
参数 是否必须 说明
viewID 视口ID默认为0
paramJson viewID传默认值0,paramJson为json格式数据如备注所示。
direction 剖切方向:1:X;2:Y;3:Z; -1:-X;-2:-Y;-3:-Z;
position 剖切深度(0~100)
showClipPlane 是否显示示意面 显示为True,不显示为False
showCutPlane 是否显示盖面 显示为True,不显示为False
reverseClip 是否反向剖切 显示为True,不显示为False
返回值
void
备注
paramJson为json格式数据:
{
	"direction": "1",
	"position": 50,
	"showClipPlane": false,
	"showCutPlane": true,
	"reverseClip": "false"
}