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

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 閱讀(12386) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE入門指南

eryar@163.com

一、概述

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

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

wps_clip_image-18619

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

wps_clip_image-24949

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

wps_clip_image-2329

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

二、OpenCASCADE是什么

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

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

Open CASCADE Technology 是為特定領(lǐng)域快速開發(fā)程序而設(shè)計的面向?qū)ο蟮腃++類庫。可以使用OCCT來開發(fā)二維和三維的通用幾何造型的計算機(jī)輔助設(shè)計程序CAD(Computer Aided Design),計算機(jī)輔助制造程序CAM(Computer Aided Manufacturing)和計算機(jī)輔助分析程序CAA(Computer Aided Analysis);仿真程序和繪圖程序。OCCT庫可以明顯快速程序的開發(fā)進(jìn)度。

OCCT庫提供如下功能:

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

n 創(chuàng)建基本圖元,如prism,cylinder, cone, torus;

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

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

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

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

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

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

n 三維旋轉(zhuǎn)3D rotation;

n 縮放Zoom;

n 著色Shading;

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

n 將非幾何數(shù)據(jù)與幾何實體關(guān)聯(lián);

n 參數(shù)化模型;

n Java Application Desktop(JAD);

OCCT庫是由Open CASCADE公司開發(fā)和市場運(yùn)作的。庫被設(shè)計成模塊化和易擴(kuò)展。將C++類與以下內(nèi)容分離:

l 定義數(shù)據(jù)結(jié)構(gòu)(幾何建模、顯示和交互選擇);

l 實現(xiàn)復(fù)雜算法;

l 提供編程接口;

wps_clip_image-8551

圖1. OpenCascade架構(gòu)圖

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

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

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

圖2:Object Libraries modules and their contents

image

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

三、學(xué)習(xí)過程

下面對OpenCASCADE相應(yīng)模塊進(jìn)行簡單介紹,并推薦一些參考書籍,結(jié)合參考書籍可以深入理解OpenCASCADE源碼。

3.1 FoundationClasses

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

wps_clip_image-15547

錢能著. C++程序設(shè)計教程. 清華大學(xué)出版社。 學(xué)習(xí)C++程序開發(fā)的基本語法,面向?qū)ο蟪绦蛟O(shè)計的基本思想。

wps_clip_image-18487

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

wps_clip_image-11974

Scott Meyers. More Effective C++. 

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

wps_clip_image-15297

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

wps_clip_image-32717

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

3.2 ModelingData & ModelingAlgorithms

wps_clip_image-11234

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

wps_clip_image-21350

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

wps_clip_image-23623

wps_clip_image-31564

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

wps_clip_image-2418

朱心雄. 自由曲線曲面造型技術(shù). 科學(xué)出版社. 主要介紹了B樣條曲線曲面的基礎(chǔ)理論及相關(guān)的算法,如求交算法,光順?biāo)惴ǎc云數(shù)據(jù)擬合曲面算法等。

3.3 Visualization

wps_clip_image-5324

wps_clip_image-11023

在理解了OpenCASCADE中顯示數(shù)據(jù)的產(chǎn)生后,再結(jié)合上面兩本OpenGL的經(jīng)典書,OpenGL的學(xué)習(xí)應(yīng)該更輕松。

wps_clip_image-29253

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

3.4 ApplicationFramework

wps_clip_image-9684

Gof的設(shè)計模式,將前人編程開發(fā)中的經(jīng)驗以模式的方式進(jìn)行總結(jié),可以提高面向?qū)ο蟪绦蜷_發(fā)水平。

wps_clip_image-14854

MARTIN REDDY. API design for C++. 學(xué)習(xí)其中API的設(shè)計,使其模塊化,見名知義等。

3.5 DataExchange

wps_clip_image-20863

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

3.6 Draw

wps_clip_image-11479

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

四、結(jié)論

OpenCASCADE的源碼比較龐大,學(xué)習(xí)起來涉及的內(nèi)容較多。希望能將學(xué)習(xí)的過程當(dāng)作數(shù)據(jù)理論的實踐,體驗數(shù)學(xué)理論可視化過程中的樂趣。另外將OpenCASCADE中解決一些問題的思路拿來解決自己在學(xué)習(xí)、工作中遇到的問題。

 

歡迎大家關(guān)注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>
            欧美人在线视频| 欧美人与禽猛交乱配| 久久综合色8888| 欧美午夜精品理论片a级大开眼界| 久久久久国产精品厨房| 久久婷婷综合激情| 亚洲高清视频中文字幕| 尤物精品国产第一福利三区| 亚洲国产精品成人一区二区| 亚洲三级网站| 99视频在线观看一区三区| 亚洲手机视频| 久久精品在线| 91久久精品视频| 亚洲国产婷婷综合在线精品| 亚洲图片自拍偷拍| 久久国产欧美| 欧美日本在线看| 国产一区二区福利| 亚洲乱码国产乱码精品精可以看| 麻豆精品视频在线观看| 激情亚洲一区二区三区四区| 欧美韩日视频| 国产精品久久久久久久久久直播| 久久夜色精品国产噜噜av| 欧美精品电影在线| 狠狠88综合久久久久综合网| 国产精品三级视频| 亚洲国产精品高清久久久| 国产欧美韩日| 亚洲高清中文字幕| 欧美中文在线视频| 亚洲看片免费| 免费91麻豆精品国产自产在线观看| 亚洲国产影院| 国产精品多人| 在线看片第一页欧美| 亚洲专区在线| 欧美成人首页| 欧美在线视频一区| 在线视频观看日韩| 中文亚洲免费| 亚洲成在线观看| 久久精品国产清高在天天线| 欧美视频在线不卡| 亚洲区一区二| 免费成人高清| 欧美在线视频一区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 亚洲国产精品综合| 欧美一区二区三区成人| 欧美视频一区在线观看| 妖精视频成人观看www| 欧美国产高清| 蜜桃久久精品乱码一区二区| 日韩视频二区| 欧美剧在线观看| 最新国产乱人伦偷精品免费网站| 国产主播精品| 亚洲国产日韩在线| 亚洲裸体俱乐部裸体舞表演av| 亚洲激情视频在线| 亚洲精品一级| 老司机免费视频一区二区三区| 亚洲二区视频在线| 麻豆精品传媒视频| 欧美深夜福利| 亚洲乱码一区二区| 一本久久综合| 国产精品系列在线| 亚洲第一天堂av| 麻豆91精品| 免费看亚洲片| 一区二区精品在线观看| 亚洲欧洲日本在线| 午夜影院日韩| 黄色成人免费观看| 欧美xart系列在线观看| 噜噜噜在线观看免费视频日韩| 国产精品美女久久| 久久精品国产77777蜜臀| 久久国产综合精品| 国产伦精品一区二区三区免费迷| 韩日视频一区| 久久精品日韩| 亚洲精品在线观| 91久久在线| 欧美日韩影院| 欧美一区国产二区| 午夜精品久久99蜜桃的功能介绍| 久久国产黑丝| 国内精品久久久| 欧美激情视频一区二区三区不卡| 亚洲视频在线二区| 欧美先锋影音| 亚洲欧洲日产国产综合网| 亚洲一区久久久| 久久不射电影网| 一本大道久久精品懂色aⅴ| 久久久久久自在自线| 免费不卡欧美自拍视频| 亚洲一区二区三区免费在线观看| 欧美激情精品久久久久久| 欧美片第一页| 蜜桃av综合| 国产精品亚洲综合一区在线观看 | 亚洲国产欧美久久| 亚洲欧美日韩精品一区二区 | 欧美国产视频在线| 亚洲高清一二三区| 一本色道久久综合狠狠躁篇怎么玩| 欧美电影在线观看| 欧美一区二区在线免费播放| 免费日韩视频| 久久久青草婷婷精品综合日韩| 午夜精品影院| 国产欧美日韩精品专区| 亚洲电影下载| 狠狠噜噜久久| 亚洲已满18点击进入久久| 999在线观看精品免费不卡网站| 欧美a级片网站| 国产日韩欧美一区二区三区四区| 欧美一级视频精品观看| 欧美高清视频一区二区| 久热精品在线视频| 欧美黑人多人双交| 99国产精品久久久久久久| 亚洲毛片网站| 亚洲激情啪啪| 欧美xx69| 91久久精品国产91久久性色| 亚洲国产欧美另类丝袜| 日韩视频在线观看国产| 国产精品毛片高清在线完整版| 亚洲伊人久久综合| 欧美精品免费播放| 日韩亚洲精品在线| 亚洲一区二区三区国产| 国产精品久久久久免费a∨大胸 | 狠狠色2019综合网| 亚洲视频一区二区在线观看| 久久精品综合网| 国产精品久久久久久久久借妻 | 欧美中文字幕不卡| 欧美另类视频| 欧美高清成人| 亚洲国产激情| 欧美成人免费视频| 亚洲国产综合视频在线观看 | 欧美视频免费| 亚洲天堂成人| 久久久国产精品一区二区三区| 久久久美女艺术照精彩视频福利播放| 亚洲大胆人体视频| 久久久蜜桃精品| 在线综合亚洲| 国产精品成人一区二区网站软件 | 久久婷婷丁香| 99re6这里只有精品| 久久精品人人做人人爽电影蜜月| 亚洲一区二区毛片| 午夜精品在线| 国外成人免费视频| 欧美a级理论片| 最新成人av在线| 亚洲欧美日韩国产一区二区三区| 久久精品亚洲一区| 亚洲国产精品久久久久婷婷老年| 国产夜色精品一区二区av| 欧美一区二区精品久久911| 欧美xxx在线观看| 亚洲一区二区三区成人在线视频精品| 久久精品av麻豆的观看方式| 毛片基地黄久久久久久天堂| 欧美黄网免费在线观看| 亚洲另类在线视频| 久久久久国色av免费观看性色| 欧美视频亚洲视频| 性视频1819p久久| 免费永久网站黄欧美| 欧美韩国在线| 欧美一区二区女人| 亚洲私拍自拍| 欧美激情久久久久久| 久久久www成人免费毛片麻豆| 国产毛片精品视频| 久久亚洲精品一区二区| 亚洲一区www| 亚洲欧洲日韩综合二区| 久久精品亚洲乱码伦伦中文| 99国产一区| 一区二区三区在线高清| 国产精品久久久久久妇女6080| 欧美一区二区三区精品电影| 久久久久免费观看| 亚洲人体大胆视频| 国产一区二区三区成人欧美日韩在线观看 | 国产视频一区三区| 亚洲欧美日韩爽爽影院|