青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE入門指南

Posted on 2017-12-22 21:49 eryar 閱讀(12385) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE入門指南

eryar@163.com

一、概述

荀子說“君子性非異也,善假于物也”。當你會用英語,就可以與世界各國的人交流;當你會用編程語言,就可以與計算機交流;當你會用數學語言,就可以精確的描述世界。當你會用OpenCASCADE這個開發包(SDK),就可以在計算機中創造一個三維世界。大學期間,偶然在圖書館翻到一本發黃的書,講的是用Turbo C2.0 C語言graphics.h頭文件來畫圖的計算機圖形學的書,隨即對計算機圖形學有了興趣。后來一直在圖書館里面看計算機圖形學方面的書,都沒有得其要領。一方面是國內的教材上來都是抽象的理論,沒有相對具體實現的例子;另一方面是因為自己數學也一直沒有入門。

從小學到大學都要學數學,雖然高中和大學都開了物理課,但是還是沒能理解抽象的數學,其實物理就是數學在現實生活中的具體應用,即用數學來解釋自然現象。數學的美妙就在于用簡單的文字描述自然規律。如:

wps_clip_image-18619

這個方程可以描述一個位于坐標原點處半徑為R的一個圓。再如:

wps_clip_image-24949

這是一個簡單的微分方程,描述了自由落體的運動規律。規律的意思是對于地球上任意一個自由落體運動,不考慮空氣阻力等因素,可以利用此公式精確計算出它在降落的過程中的狀態數據,如在某個點處的速度,距離降落點的長度等。掌握到微分方程這個工具,可以解釋很多物理問題,如運動學、電學、力學。如:

wps_clip_image-2329

上式是一個偏微分方程。理解偏微分方程,就可以…… 言歸正傳,如何來學習和使用OpenCASCADE呢?

二、OpenCASCADE是什么

根據OpenCASCADE源碼中的ReadMe可知,OpenCASCADE是一個提供三維曲面造型和實體建模、CAD數據交換及可視化的軟件開發平臺。OpenCASCADE的大部分功能都是以C++的庫的形式提供。OpenCASCADE可用于開發CAD、CAM及CAE相關的軟件。

從OpenCASCADE6.8開始授權協議改為LGPL協議,這樣就可以用OpenCASCADE開發商用程序而不用開源代碼了,其使用更自由。

Open CASCADE Technology 是為特定領域快速開發程序而設計的面向對象的C++類庫。可以使用OCCT來開發二維和三維的通用幾何造型的計算機輔助設計程序CAD(Computer Aided Design),計算機輔助制造程序CAM(Computer Aided Manufacturing)和計算機輔助分析程序CAA(Computer Aided Analysis);仿真程序和繪圖程序。OCCT庫可以明顯快速程序的開發進度。

OCCT庫提供如下功能:

l 2D和3D幾何造型工具箱,可對任何物體造型;

n 創建基本圖元,如prism,cylinder, cone, torus;

n 對實體進行布爾操作,addition, subtraction and intersection;

n 根據倒圓、倒角、草圖拉伸出幾何實體;

n 使用偏移offsets、成殼shelling、挖空hollowing和擠壓sweeps構造幾何實體;

n 計算幾何實體屬性,如表面積、體積、重心、曲率半徑;

n 使用插值interpolation、逼近approximation、投影projection計算出幾何體;

l 可視化功能提供對幾何實體的顯示、控制功能,例如:

n 三維旋轉3D rotation;

n 縮放Zoom;

n 著色Shading;

l 程序框架提供如下功能:

n 將非幾何數據與幾何實體關聯;

n 參數化模型;

n Java Application Desktop(JAD);

OCCT庫是由Open CASCADE公司開發和市場運作的。庫被設計成模塊化和易擴展。將C++類與以下內容分離:

l 定義數據結構(幾何建模、顯示和交互選擇);

l 實現復雜算法;

l 提供編程接口;

wps_clip_image-8551

圖1. OpenCascade架構圖

相關的類由包來分組,避免了類名的沖突。C++類名前加上包名作為前綴。如包Geom中所有的3D幾何體,實現Bezier曲面的類為BezierSurface,其全稱為Geom_BezierSurface。

包組成庫,即提供給程序鏈接使用。

最的,庫分組成六個模塊,最小的模塊Foundation Classes包含兩個庫,最大的模塊Modeling Algorithms,包含八個庫。(eryar: 可能是早期版本,最新版本的庫的數量有變化。)這些模塊如下圖所示:

圖2:Object Libraries modules and their contents

image

另外,Draw Test Harness(Draw)為可視化、建模算法、程序框架和數據交換模塊提供測試。

三、學習過程

下面對OpenCASCADE相應模塊進行簡單介紹,并推薦一些參考書籍,結合參考書籍可以深入理解OpenCASCADE源碼。

3.1 FoundationClasses

FoundationClasses基礎類模塊中主要包含兩個工具集Toolkit:數學工具TKMath和核心工具TKernel。TKernel中主要是一些類型定義、自定義容器、內存管理等。理解起來需要C++編程基礎知識,推薦以下幾本經典教材:

wps_clip_image-15547

錢能著. C++程序設計教程. 清華大學出版社。 學習C++程序開發的基本語法,面向對象程序設計的基本思想。

wps_clip_image-18487

Scott Meyers. Effective C++. C++程序員可以分成兩類:讀過Effective C++和沒讀過的。

wps_clip_image-11974

Scott Meyers. More Effective C++. 

TKMath工具集主要是一些數值算法庫,如矩陣變換、微分積分、解方程(組)、非線性方程組等。推薦浙大出版的《數值分析引論》:

wps_clip_image-15297

易大義, 陳道琦. 數值分析引論. 浙江大學出版社。主要介紹插值法、函數與數據的逼近、數值積分與微分、解方組,非線性方程(組)數值解法、矩陣計算等。OpenCASCADE的math包中基本上就是這些算法的具體實現。

wps_clip_image-32717

Fletcher Dunn, Ian Parberry. 3D Math Primer for Graphics and Game Development. 主要用來學習向量和矩陣用于圖形變換。

3.2 ModelingData & ModelingAlgorithms

wps_clip_image-11234

陳維桓. 微分幾何. 北京大學出版社. 主要用來學習將曲線和曲面看成矢量函數及其分析方法。

wps_clip_image-21350

Les Piegl, Wayne Tiller. The NURBS Book. 想從事CAD,必須理解NURBS。這本書可以說是NURBS的經典之作,幾個博士的翻譯也很到位。

wps_clip_image-23623

wps_clip_image-31564

王仁宏, 李崇君, 朱春鋼. 計算幾何教程. 科學出版社。主要還是介紹B樣條曲線的基礎知識。

wps_clip_image-2418

朱心雄. 自由曲線曲面造型技術. 科學出版社. 主要介紹了B樣條曲線曲面的基礎理論及相關的算法,如求交算法,光順算法,點云數據擬合曲面算法等。

3.3 Visualization

wps_clip_image-5324

wps_clip_image-11023

在理解了OpenCASCADE中顯示數據的產生后,再結合上面兩本OpenGL的經典書,OpenGL的學習應該更輕松。

wps_clip_image-29253

汪嘉業. 王文平. 屠長河. 楊承磊. 計算幾何及應用. 科學出版社。主要學習其中點集的Delaunay三角剖分算法,OpenCASCADE中由造型數據到可視化數據的生成就是使用了這個算法。

3.4 ApplicationFramework

wps_clip_image-9684

Gof的設計模式,將前人編程開發中的經驗以模式的方式進行總結,可以提高面向對象程序開發水平。

wps_clip_image-14854

MARTIN REDDY. API design for C++. 學習其中API的設計,使其模塊化,見名知義等。

3.5 DataExchange

wps_clip_image-20863

李原. 張開富. 余劍峰. 計算機輔助幾何設計技術及應用. 西北工業大學出版社。其中也有一些曲線曲面的知識,不過都是簡單地一帶而過,主要學習其中對IGES文件的解析,有了一種格式的解析經驗,其三維格式可以查找其規格書來進行解析。

3.6 Draw

wps_clip_image-11479

Tcl/Tk同Python類似,都是腳本語言。OpenCASCADE中使用Tcl/Tk的目的就是為了跨平臺的測試造型算法。看看本書,學習Tcl/Tk的基本語法,及如何在程序中自定義命令。理解這之后,就可以完全理解Draw這個模塊的實現原理。

四、結論

OpenCASCADE的源碼比較龐大,學習起來涉及的內容較多。希望能將學習的過程當作數據理論的實踐,體驗數學理論可視化過程中的樂趣。另外將OpenCASCADE中解決一些問題的思路拿來解決自己在學習、工作中遇到的問題。

 

歡迎大家關注OpenCASCADE公眾號:

OpenCASCADE微信公眾號

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久综合| 久久av在线看| 久久久久久黄| 性欧美精品高清| 午夜激情综合网| 久久国产精品一区二区三区| 久久久中精品2020中文| 欧美特黄一级大片| 亚洲国产天堂久久综合网| 免费看av成人| 欧美激情精品久久久久久久变态| 欧美国产极速在线| 亚洲美女在线视频| 欧美一级免费视频| 你懂的网址国产 欧美| 欧美理论电影在线观看| 欧美亚一区二区| 国产一区二区三区四区三区四| 国内久久精品视频| 日韩一级裸体免费视频| 欧美在线亚洲一区| 亚洲国产午夜| 久久精品99久久香蕉国产色戒| 欧美成人精品一区二区| 国产精品亚洲第一区在线暖暖韩国| 国产午夜一区二区三区| 亚洲最快最全在线视频| 久久久久久亚洲精品杨幂换脸| 亚洲国产精品久久久久秋霞影院| 亚洲一区二区三区中文字幕在线| 麻豆9191精品国产| 国产视频一区免费看| aa日韩免费精品视频一| 免费看亚洲片| 欧美亚洲视频在线观看| 欧美日韩高清区| 亚洲国产精品久久91精品| 久久久精品久久久久| 一区二区欧美在线| 欧美日韩国产成人在线观看| 在线观看日韩专区| 久久久人成影片一区二区三区| 亚洲毛片一区| 欧美国产精品劲爆| 136国产福利精品导航网址| 性欧美超级视频| 亚洲视频免费看| 欧美日韩一区二区国产| 亚洲美女精品久久| 亚洲成色www8888| 久久视频免费观看| 国内精品国语自产拍在线观看| 欧美一区二区三区婷婷月色| 中文精品视频| 欧美系列精品| 午夜亚洲视频| 亚洲男人的天堂在线aⅴ视频| 欧美日韩一二区| 夜夜夜精品看看| 亚洲精品在线看| 欧美日韩直播| 亚洲一区在线播放| 亚洲美女在线一区| 欧美午夜视频| 亚洲欧美在线播放| 亚洲综合另类| 久久成人免费电影| 亚洲九九爱视频| 欧美偷拍一区二区| 亚洲一区二区日本| 亚洲先锋成人| 国产一区二区三区在线观看网站| 久久精品国产精品亚洲| 久久精品免视看| 亚洲日本电影在线| 99热免费精品在线观看| 国产精品ⅴa在线观看h| 欧美一区二区在线观看| 欧美一区二区视频97| 在线成人av网站| 亚洲丰满在线| 欧美性片在线观看| 久久成人国产| 欧美bbbxxxxx| 亚洲综合色在线| 久久国产精品久久精品国产| 亚洲福利视频在线| 亚洲每日在线| 国产三级精品三级| 欧美激情精品久久久久久蜜臀| 欧美日韩免费观看一区| 午夜在线视频观看日韩17c| 欧美一区二区三区精品| 在线观看日韩av| 99精品国产在热久久婷婷| 国产亚洲精品久久久久动| 欧美激情第4页| 国产精品美女久久久浪潮软件 | 欧美一级二级三级蜜桃| 国产一区二区三区在线观看视频| 欧美国产日韩精品免费观看| 欧美日韩在线三区| 牛人盗摄一区二区三区视频| 国产精品高潮呻吟久久av无限| 久久综合九色综合久99| 欧美视频一区二| 欧美激情精品久久久久久大尺度| 欧美四级在线| 亚洲国产日韩欧美一区二区三区| 国产精品一区一区| 日韩网站在线| 亚洲美洲欧洲综合国产一区| 久久激情网站| 久久av在线看| 国产精品免费视频xxxx| 亚洲精品社区| 99成人精品| 欧美不卡在线视频| 免费在线观看一区二区| 国产一级一区二区| 欧美一区91| 久久精品99国产精品| 国产精品女人网站| av成人老司机| 亚洲一区二区免费看| 欧美日韩一区免费| 日韩写真视频在线观看| 99re热这里只有精品免费视频| 亚洲网址在线| 夜夜狂射影院欧美极品| 美女精品在线观看| 久久免费高清| 今天的高清视频免费播放成人| 一区二区三区四区精品| 夜色激情一区二区| 欧美激情综合亚洲一二区| 欧美激情一区二区三级高清视频| 国内伊人久久久久久网站视频| 亚洲欧美中文日韩在线| 欧美在线日韩精品| 国产午夜精品麻豆| 久久精品视频播放| 农夫在线精品视频免费观看| 黑人巨大精品欧美一区二区| 欧美综合国产精品久久丁香| 麻豆国产精品777777在线| 在线观看欧美日韩国产| 美国三级日本三级久久99| 欧美高清视频一区二区| 亚洲精品欧美日韩| 国产精品成人一区二区网站软件| 99re亚洲国产精品| 欧美专区福利在线| 在线成人h网| 欧美美女操人视频| 亚洲一二三区精品| 久久久综合网站| 亚洲精品精选| 国产精品素人视频| 卡通动漫国产精品| 亚洲免费福利视频| 久久国产日韩| 日韩午夜电影| 国产日韩亚洲| 欧美久久视频| 午夜免费久久久久| 欧美成年人视频网站| 亚洲天堂成人在线观看| 国产亚洲一区二区三区在线播放| 老司机午夜精品视频在线观看| 亚洲国产一区二区三区高清| 午夜精品视频在线| 亚洲国产精品一区制服丝袜 | 久久女同精品一区二区| 亚洲第一在线综合在线| 亚洲欧美电影在线观看| 在线看片第一页欧美| 欧美视频在线看| 久久人人97超碰国产公开结果 | 欧美不卡视频一区发布| 亚洲一区二区毛片| 欧美激情在线有限公司| 午夜精品av| 亚洲国产精品热久久| 国产日韩欧美一区二区三区在线观看 | 亚洲国产天堂网精品网站| 欧美中文日韩| 亚洲午夜免费福利视频| 狠狠色丁香久久综合频道| 国产精品99一区二区| 久久免费高清视频| 一本色道久久| 国产精品日韩一区二区三区| 久久亚洲一区二区| 性做久久久久久免费观看欧美 | 午夜精品剧场| 一区二区日韩精品| 亚洲日本一区二区| 欧美mv日韩mv国产网站| 欧美在线播放|