A Simple OpenCASCADE Qt Demo-occQt

摘要:
ASimpleOpenCASCADEQtDemo-occQteryar@163.comAbstract.OpenCASCADEhaveprovidedtheQtsamplesinthesamplesdirectory,但不太复杂。因此,可以为OpenCASCADE开始执行OpenCASCADEQ

A Simple OpenCASCADE Qt Demo-occQt

eryar@163.com

Abstract. OpenCASCADE have provided the Qt samples in the samples directory, but they are a little complicated. So I decide write a simple OpenCASCADE Qt demo for the OpenCASCADE beginners. 

Key Words. OpenCASCADE6.8.0, Qt5.4

1. Introduction

OpenCASCADE is a software development platform providing services for 3D surface and solid modeling, CAD data exchange, and visualization. Most of OCCT functionality is avaiable in the form of C++ libraries. OCCT can be best applied in development of software dealing with 3D modeling(CAD), manufacturing/measuring(CAM) or numerical simulation(CAE). 

OpenCASCADE Technology is free software; you can redistribute it and or modify it under the terms of the GNU Lesser General Public License(LGPL) version 2.1, with additional exception. You can get the OpenCASCADE from here: http://www.opencascade.org/

wps_clip_image-20312

Figure 1.1 OpenCASCADE6.8.0 Release Notes

Qt is a cross-platform application framework that is widely used for developing application software with graphical user interface(GUI). Qt is free and open source software distributed under the terms of the GNU Lesser General Public License. 

Qt Services

Qt is a powerful framework that lets you create stunning user interfaces with amazing performance. We want to help you to achieve optimal results by using Qt building blocks in the best possible way, which is why we offer an extensive range of Qt advisory services. 

Code Less, Create More. Easily create connected devices, UIs and applications that run anywhere on any device. 

wps_clip_image-25919

Figure 1.2 Qt Ads

You can develop your program in the following manner:

wps_clip_image-19414

Figure 1.3 A application based on Qt and OpenCASCADE

You can use Qt for the GUI development, and for data management such as restore data from file or undo/redo support, you can choose OCAF, and for modeling algorithms, you can use OpenCASCADE. 

You can also use the Model/View/Controller of Qt to manage the data and undo/redo mechnism, to accelarate the developing.

OpenCASCADE have provided many samples to show its functions, but there are a lots codes, it is a little complicated for the beginner. I write a simple program to try OpenCASCADE in a straightforward way. I hope the demo can help you to understand the usage of OpenCASCADE.

The demo is based on OpenCASCADE6.8.0 and Qt5.4. Because of there are many bug fixes in OpenCASCADE new version6.8.0, especially the visualization module. So I update the code for the previous demo Qt with OpenCASCADE and add something new: 

http://www.cppblog.com/eryar/archive/2013/08/18/202617.aspx

2.View Operations

In occQt there are three operations to manipulate the view: pan, zoom and rotate, the following picture is the main window of occQt:

wps_clip_image-12250

Figure 2.1 occQt GUI

The options is for the middle button of the mouse, you can dragged the middle button of the mouse to pan, zoom and rotate the view. And the mouse left button is used for the pick and multi-select operation, single click you can pick a shape; drag left button will select all the shapes in the rectangle.

wps_clip_image-19038

Figure 2.2 Click mouse left button to pick

wps_clip_image-15699

Figure 2.3 Drag mouse left button to multi-select

The selected shapes will be hilighted, but now do not provide any operations for the selected shapes.

And also provide the Reset and Fit All function for the view:

wps_clip_image-6756

Figure 2.4 Reset and Fit all for the view

3.Make Primitives

OpenCASCADE provides simple API for the construction of primitives, such as box, cone, sphere, cylinder, and torus, .etc. You can make a primitive by a simple class in OpenCASCADE, the sample code as follows:

TopoDS_Shape aTopoBox = BRepPrimAPI_MakeBox(3.04.05.0);
TopoDS_Shape aTopoCone = BRepPrimAPI_MakeCone(3.00.05.0);
TopoDS_Shape aTopoSphere = BRepPrimAPI_MakeSphere(3.0);
TopoDS_Shape aTopoCylinder = BRepPrimAPI_MakeCylinder(3.05.0);
TopoDS_Shape aTopoTorus = BRepPrimAPI_MakeTorus(3.01.0);

And the shapes in the viewer is in the following picture:

wps_clip_image-10519

Figure 3.1 Primitives in occQt

4.Modeling Algorithms

Modeling algorithms is the outstanding advantage of OpenCASCADE. But in occQt just give a example for the usage, you can check the documents and OpenCASCADE reference manual to have a look. The modeling algorithms in the occQt are:

v Fillet;

v Chamfer; 

v Extrude;

v Revol;

v loft.

wps_clip_image-29758

Figure 4.1 Modeling Algorithms in occQt

5.Boolean Operations

Boolean operations are used to create new shapes from the combinations of two shapes,

wps_clip_image-12858

The class to perform this is simple to use, they are:

TopoDS_Shape aFusedShape = BRepAlgoAPI_Fuse(S1, S2);
TopoDS_Shape aCommonShape = BRepAlgoAPI_Common(S1, S2);
TopoDS_Shape aCuttedShape = BRepAlgoAPI_Cut(S1, S2);

You can try this in occQt:

wps_clip_image-19041

Figure 5.1 Boolean operations in occQt

6. Conclusion

From the simple code demo, I hope it will help you to understand OpenCASCADE easily. Thanks for OpenCASCADE and Qt the amazing work. 

I put the code to GitHub: https://github.com/eryar/occQt/. You can download and have a try, then you can feedback or track the modification of occQt.

Enjoy!

免责声明:文章转载自《A Simple OpenCASCADE Qt Demo-occQt》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Clang教程之实现源源变化(4)day049--jQuery文档操作示例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Topology and Geometry in OpenCascade-Vertex

Topology and Geometry in OpenCascade-Vertex eryar@163.com 摘要Abstract:本文简要介绍了几何造型中的边界表示法(BRep),并结合程序说明OpenCascade中的边界表示的具体实现,即拓朴与几何的联系。对具有几何信息的拓朴结构顶点(vertex)、边(edge)、面(face)进行了详细说明...

OpenCASCADE动画功能2

OpenCASCADE动画功能2eryar@163.com OpenCASCADE是一个开发平台,主要提供三维曲面和实体建模、CAD数据交换及可视化等功能。OCCT最适用于开发三维建模CAD软件、加工制造或测量(CAM)软件及数值仿真软件。对于一些加工制造软件,需要简单的动画仿真功能。本文主要就来说说OCCT的动画功能。 OCCT从7.1.0版本引入了类A...

OpenCASCADE 参数曲面面积

OpenCASCADE 参数曲面面积 eryar@163.com Abstract. 本文介绍了参数曲面的第一基本公式,并应用曲面的第一基本公式,结合OpenCASCADE中计算多重积分的类,对任意参数曲面的面积进行计算。 Key Words. Parametric Curve, Parametric Surface, Gauss Integration,...