OpenCASCADE AIS Manipulator
OpenCASCADE AIS Manipulator
Abstract. OpenCASCADE7.1.0 introduces new built-in interactive object AIS_Manipulator providing interface for moving objects within 3D viewer. The class features three kinds of transformation modes for attached objects: translation through axis, scaling within axis, rotation around axis. The object can be activated using vmanipulator command within Draw Test Harness.
Key Words. OpenCASCADE, 3D Viewer Interactive, Model Editor, Manipulator
1. Introduction
三维造型是几何内核关键功能,对于三维模型如果有良好的用户交互体验,那么对于模型的布置调整就像玩游戏一样便利,给用户带来更高效率。对于工程应用类软件,如造船、工厂CAD设计软件,建完模型后一个重要步骤就是调整模型的位置,即对模型的合理的布置,这就涉及到模型的交互布置。
有的CAD设计软件调整模型位置用一个对话框,将平移、旋转的参数都列出在对话框中,当选中一个要调整的模型时,就显示出这个对话框,输入移动矢量,或旋转轴及角度数据,来对模型的位置进行调整。这种对话框中数据很多,有的数据还需要用户去计算,用户较差。
有的CAD设计软件调整模型位置用到了模型编辑器(Model Editor),即只需要通过鼠标的交互操作就可以轻松将模型调整到想要的位置。如下图所示:
![]()
Figure 1. Model Editor of AVEVA Plant(PDMS)
如上图所示为AVEVA Plant(PDMS)的操纵器可以只通过鼠标交互来完成模型方位的调整,给用户以良好的体验。不需要去计算那么多数据。OpenSceneGraph中也有类似的操纵器功能。
OpenCASCADE7.1.0也引入了操纵器这个激动人心的功能,可见OpenCASCADE的开发团队正提升用户体验,本文通过在Draw Test Harness中来测试这个功能。基于这个功能,可以给自己的三维建模软件的模型调整提供良好的用户体验。
2. Test in Draw Harness
OpenCASCADE的Draw Test Harness的文档还没有更新,从命令的帮助中可以看到vmanipulator的用法如下图所示:
![]()
Figure 2. vmanipulator help info
使用vmanipulator命令需要先关联attach一个模型,如下图所示:
![]()
Figure 3. Attach manipulator to an ais object
当鼠标移动到坐标轴或旋转圆上的时候,就可以对模型进行位置的调整了:
![]()
Figure 4. Translate the AIS Object
如上图所示为将鼠标移动到X轴上,高亮后将模型沿着X轴方向进行移动。也可以将鼠标移动到旋转圆上,等高亮后,即可以绕轴进行旋转。
3. Conclusion
OpenCASCADE7.1.0版本中引入了模型操纵器的功能,使OpenCASCADE三维视图中的模型位置调整更加方便。由些可以看出OpenCASCADE在可视化方面的改进还是很大的,希望更多的行业能应用上这个开源库,在应用中去创造价值。
PDF Version: OpenCASCADE AIS Manipulator
OpenCASCADE AIS Manipulator的更多相关文章
- OpenCASCADE View Manipulator
OpenCASCADE View Manipulator eryar@163.com Abstract. When you finish modeling objects in the scene, ...
- OpenCascade MeshVS Usage
OpenCascade MeshVS Usage eryar@163.com Abstract. MeshVS means Mesh Visualization Service. It can be ...
- Convert BSpline Curve to Arc Spline in OpenCASCADE
Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...
- OpenCASCADE Shape Location
OpenCASCADE Shape Location eryar@163.com Abstract. The TopLoc package of OpenCASCADE gives resources ...
- OpenCASCADE BRep Projection
OpenCASCADE BRep Projection eryar@163.com 一网友发邮件问我下图所示的效果如何在OpenCASCADE中实现,我的想法是先构造出螺旋线,再将螺旋线投影到面上. ...
- OpenCASCADE Expression Interpreter by Flex & Bison
OpenCASCADE Expression Interpreter by Flex & Bison eryar@163.com Abstract. OpenCASCADE provide d ...
- OpenCASCADE Data Exchange - 3D PDF
OpenCASCADE Data Exchange - 3D PDF eryar@163.com Abstract. Today most 3D engineering model data are ...
- OpenCASCADE Interpolations and Approximations
OpenCASCADE Interpolations and Approximations eryar@163.com Abstract. In modeling, it is often requi ...
- OpenCASCADE Ring Type Spring Modeling
OpenCASCADE Ring Type Spring Modeling eryar@163.com Abstract. The general method to directly create ...
随机推荐
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 学习ASP.NET Core, 怎能不了解请求处理管道[3]: 自定义一个服务器感受一下管道是如何监听、接收和响应请求的
我们在<服务器在管道中的"龙头"地位>中对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了介绍,为了让读者朋友们对管道中的服务器具有更 ...
- 模拟AngularJS之依赖注入
一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...
- 小兔JS教程(四)-- 彻底攻略JS数组
在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- javascript动画系列第一篇——模拟拖拽
× 目录 [1]原理介绍 [2]代码实现 [3]代码优化[4]拖拽冲突[5]IE兼容 前面的话 从本文开始,介绍javascript动画系列.javascript本身是具有原生拖放功能的,但是由于兼容 ...
- C++ 事件驱动型银行排队模拟
最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在 ...