Wincc8.0更新后提供了一个Wincc 3D Control控件来显示3D图像,但是该控件实际体验下来现阶段还存在功能不足、运行不稳定的问题。接下来会展现该控件在测试中可以实现怎么样的功能。
一、在Blender中导出模型
Blender作为一款开源软件免费且功能强大,针对简单的建模需求教程丰富。点击链接前往官网下载
打开软件后选择新建常规文件,删除默认的立方体、灯光和摄像机。在布局界面选择添加——网格,进行建模;也可以点击文件——导入,选择导入需要的模型文件。
选择编辑模式,全选模型,点击网格→分离→按材质,分离出不同的部件(不同的部件最好使用不同的材质)。
修改完成后注意把材质中的Alpha值改为小于1的值,这里改成了0.9。(影响在Wincc 3D Control中透明度的修改)。
如果没有定制光照的需求,这一步可以跳过:点击添加→灯光→日光,选择一个合适的角度。(注意强度/力度必须在1以下,否则在Wincc 3D Control中渲染会过曝导致模型变白)
修改完成后点击文件→导出,这里导出为dae文件。
二、Wincc 3D Control控件使用步骤
1.控件设置
新建画面,插入Wincc 3D Control控件。如果之前没有在Blender中自定义光照,EnableBackground属性选择“是”,Wincc 3D Control会按一个均匀的光照强度渲染。
再把导出的dae文件复制进Wincc项目的GraCS文件夹中,文件名称复制进控件的SceneFile属性里。
点击“激活运行系统”,可以看到模型在Wincc中显示出来。
如果之前有在Blender中自定义了光照,EnableBackground属性选择“否”
2.设置相机位置
一般情况下在画面运行时可以直接鼠标左键移动视角,滚轮缩放大小,鼠标右键移动模型。当想要回到初始视角时可以使用SetCameraPositionExt()设置视角。
Sub OnClick(ByVal Item)
Dim obj
Set obj = ScreenItems("CustomWebControl1").SetCameraPositionExt(8,2, 0,0,0,0, 2000)
'设置相机位置 CustomWebControl1为控件名称 8,2,0为相机方向 0,0,0为相机位置 2000为相机转到该视角的时间为2000ms
End Sub
3.改变模型颜色透明度
Sub OnClick(ByVal Item)
Dim obj
Set obj = ScreenItems("CustomWebControl1").SetObjectMaterialColorExt("腔体",True,"rgb(255, 255, 255)" ,1,0.2)
'改变模型颜色透明度 "腔体"是Blender中该物体的名称 0.2是设置的该物体透明度,范围0~1
End Sub
4.改变模型位置
Sub OnClick(ByVal Item)
Dim obj
Set obj = ScreenItems("CustomWebControl1").SetObjectPositionExt("上盖" , "0" , "0" , "5")
End Sub
5.旋转物体
Sub OnClick(ByVal Item)
Dim obj
Set obj = ScreenItems("CustomWebControl1").SetObjectRotationExt("上盖" , "0" , "-1" , "0")
End Sub
6.物体闪烁
Sub OnClick(ByVal Item)
Dim obj,Time
Set Time = HMIRuntime.Tags("闪烁时间")
Time.Read
Set obj = ScreenItems("CustomWebControl1").SetObjectBlinkExt("柱体", Time.value, "rgb(0, 255, 0)" , "rgb(0, 255, 0)", 1, 0.5)
End Sub