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

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>
            亚洲区在线播放| 亚洲综合电影一区二区三区| 欧美精品激情| 欧美激情麻豆| 欧美日韩一区二区三区四区在线观看 | 亚洲免费高清视频| 9色porny自拍视频一区二区| 亚洲专区国产精品| 久久久精品2019中文字幕神马| 久久综合伊人77777麻豆| 欧美大片在线影院| 国产精品网站在线| 亚洲国产精品va| 亚洲一区免费网站| 久久婷婷影院| 亚洲精选一区| 久久爱www久久做| 欧美精品日韩精品| 国产自产v一区二区三区c| 日韩一级大片| 久久久久免费视频| 亚洲精品视频在线观看网站| 亚洲一区二区视频在线| 美女精品自拍一二三四| 国产精品成人v| 亚洲欧洲一区二区三区| 午夜一区不卡| 亚洲精品一区二区三区婷婷月| 香蕉成人久久| 欧美体内she精视频在线观看| 国产亚洲欧美在线| 亚洲一区自拍| 亚洲日本一区二区三区| 久久久久国产一区二区三区| 国产精品久久久久久影院8一贰佰| 亚洲电影免费| 久久精品国产综合| 亚洲视频图片小说| 欧美日韩国产一区二区三区| 亚洲国产精品久久人人爱蜜臀| 久久国产精品久久久久久| 亚洲精品国产系列| 蜜桃精品久久久久久久免费影院| 国产一区二区三区四区在线观看| 国产日韩欧美制服另类| 亚洲欧美成人一区二区三区| 久久婷婷丁香| 亚洲天堂av高清| 欧美日韩另类在线| 一区二区三区高清视频在线观看| 免费91麻豆精品国产自产在线观看| 亚洲一区二区三区成人在线视频精品| 欧美经典一区二区三区| 亚洲美洲欧洲综合国产一区| 欧美 日韩 国产 一区| 久久精品夜色噜噜亚洲aⅴ| 国产视频精品xxxx| 久久精品欧美| 久久成人在线| 欲色影视综合吧| 欧美成人亚洲成人| 欧美国产先锋| 亚洲视频你懂的| 亚洲午夜国产一区99re久久| 国产精品欧美日韩一区二区| 午夜精品福利在线观看| 亚洲欧美日韩精品| 国产亚洲午夜高清国产拍精品| 久久精品99国产精品| 久久精品免费电影| 亚洲国产欧美一区二区三区丁香婷| 欧美黑人一区二区三区| 欧美刺激性大交免费视频 | 欧美激情视频给我| 亚洲免费观看| 亚洲视频axxx| 国语精品中文字幕| 欧美成人精品在线| 欧美日韩精品一区二区在线播放 | 欧美一区二区三区四区视频| 国产一区二区三区在线观看视频 | 国产精品一区亚洲| 裸体歌舞表演一区二区| 欧美xart系列高清| 亚洲婷婷在线| 久久激情中文| 亚洲精品永久免费精品| 亚洲永久网站| 亚洲人成在线观看一区二区| 亚洲少妇中出一区| 亚洲大片精品永久免费| 亚洲影院色在线观看免费| 亚洲免费一在线| 欧美1区3d| 一区二区三区免费看| 国产精品久久久久久久午夜片| 欧美一区二区视频在线观看2020 | 在线日韩av永久免费观看| 久久精品中文| 亚洲香蕉在线观看| 免费在线欧美视频| 欧美一区二区三区日韩| 亚洲国产成人av| 国产精品你懂的在线| 欧美日韩精品福利| 麻豆成人综合网| 一区二区三区精品久久久| 欧美激情精品久久久久久蜜臀 | 亚洲国产精品传媒在线观看 | 国产亚洲视频在线| 亚洲理伦在线| 亚洲国产综合视频在线观看| 亚洲一区在线免费| 日韩视频国产视频| 久久综合电影| 久久亚洲一区| 国产一区 二区 三区一级| 正在播放欧美视频| 99re66热这里只有精品3直播| 久久婷婷国产综合尤物精品 | 日韩手机在线导航| 亚洲国产日韩在线一区模特| 午夜精品久久久久久久99樱桃 | 久久久国产91| 久久精品视频网| 国产欧美欧美| 午夜精品福利一区二区蜜股av| 亚洲小视频在线观看| 欧美日韩国产色视频| 亚洲韩国日本中文字幕| 国产无一区二区| 一区免费观看| 久久爱www久久做| 久久久成人网| 国产亚洲欧美日韩美女| 久久国产视频网| 久久综合激情| 亚洲第一黄色| 免费亚洲电影在线观看| 亚洲成人在线网| 亚洲美女毛片| 欧美日韩精品欧美日韩精品一| 亚洲日本无吗高清不卡| 中国亚洲黄色| 国产麻豆日韩欧美久久| 欧美一区日本一区韩国一区| 久久精品伊人| 在线观看欧美日韩| 欧美成人黄色小视频| 亚洲精品综合精品自拍| 亚洲性夜色噜噜噜7777| 国产精品免费久久久久久| 午夜在线精品| 免费观看不卡av| 日韩视频免费观看| 国产精品久久久久毛片软件| 欧美呦呦网站| 亚洲激情影视| 欧美在线视频播放| 最新亚洲激情| 国产麻豆综合| 欧美国产成人精品| 午夜激情亚洲| 亚洲国产经典视频| 亚洲免费视频一区二区| 亚洲欧洲日本一区二区三区| 国产精品99久久久久久久vr| 国产日产欧产精品推荐色| 欧美xxx成人| 亚洲欧美国产77777| 欧美成人中文字幕在线| 亚洲视频在线一区观看| 黑人操亚洲美女惩罚| 欧美日韩亚洲一区二区三区在线观看| 午夜在线观看免费一区| 亚洲精品影院| 欧美激情亚洲一区| 欧美一区二区精品久久911| 亚洲精品亚洲人成人网| 国产自产v一区二区三区c| 欧美日本高清| 久久在线免费| 午夜精品一区二区三区在线| 日韩亚洲国产欧美| 欧美韩日精品| 欧美福利专区| 国产自产高清不卡| 久久久噜噜噜| 校园春色综合网| 中日韩美女免费视频网址在线观看 | 欧美日韩精选| 免费一区视频| 久久国产精品一区二区| 亚洲视频你懂的| 亚洲激情六月丁香| 欧美~级网站不卡| 久久一区免费| 欧美在线free| 蜜桃av久久久亚洲精品| 亚洲靠逼com|