• <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>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            OpenCascade Sweep Algorithm

            Posted on 2018-04-26 21:22 eryar 閱讀(3126) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

            OpenCascade Sweep Algorithm

            eryar@163.com

            Abstract. Sweeps are the objects you obtain by sweeping a profile along a path. Sweep is a very useful modeling algorithm. The paper focus on the introduction of the sweep algorithms in the opencascade. 

            Key Words. Sweep, Prism, Revol, Pipe, Frenet Trihedron, 

            1. Introduction

            隨著計算機技術的發(fā)展和普及,計算機輔助設計與制造(CAD/CAM)技術也得到了迅猛發(fā)展,它們推動許多領域的設計革命,計算機輔助設計與制造技術的發(fā)展和應用水平已經成為衡量一個國家現(xiàn)代化水平的重要標志之一。

            最近中興事件在國內引起了大家的廣泛討論,由于目前國內還制造不出能替代的芯片,所以可以從中找到與發(fā)達國家之間的差距,其實在CAD領域又何嘗不是這樣呢?不過在通用CAD方面,國內有一些軟件廠家,有替代產品。而在行業(yè)CAD方面,一直是國外軟件的天下。

            原來國內有些聲音是“造不如買,買不如租”,引進了許多國外軟件。這些國外軟件是很優(yōu)秀,極大地提高了生產力。如果一直買,不思進取,結果應該會像中興一樣。如果自己造,剛開始是需要投入很大的成本,但是后面優(yōu)勢是不言而喻的。

            國際上的三維內核目前功能相對齊全,開源的只有OpenCASCADE。國內的相關內核只從《計算機圖形學》的書上見過,沒有看過實物。還有一些軟件廠商收購的國外內核。開源的OpenCASCADE用來學習造型相關算法還是很不錯的。通過學習源碼,不僅可以知其然,還可以做到知其所以然。

            本文主要對OpenCASCADE中的Sweep掃掠算法的用法進行介紹,先會正確使用。正確使用是研究其實現(xiàn)原理的基礎。

            掃掠算法是圖形學中很常見的造型算法,就是將指定的輪廓Profile沿著一條路徑Path掃掠來得到模型。點掃掠得到邊;邊掃掠得到面;面掃掠得到體。

            wps_clip_image-23837

            Figure 1. Generating a sweep

            類BRepPrimAPI_MakeSweep是掃掠算法的基類,如下圖所示:

            wps_clip_image-9215

            從其派生的幾個類分別用于:

            l BRepPrimAPI_MakePrism:生成線性掃掠;

            l BRepPrimAPI_MakeRevol:生成旋轉掃掠;

            l BRepOffsetAPI_MakePipeShell: 生成通用的掃掠;

            下面對這幾種情況分別進行說明。

            2.Prism

            通過類BRepPrimAPI_MakePrism可以創(chuàng)建線性掃掠,也就是拉伸體。在Draw Test Harness中可以使用命令prism來創(chuàng)建拉伸體。

            polyline p  0 0 0 1 0 0 1 2 0 0 1 0 0 0 0
            prism r p 0 0 1
            vdisplay p r

            在Draw Test Harness中運行上述命令,可以得到一個線性拉伸體,如下圖所示:

            wps_clip_image-31373

            其中紅色為輪廓Profile,經過線性掃掠得到右邊所示的拉伸體。

            3.Revol

            通過類BRepPrimAPI_MakeRevol可以創(chuàng)建旋轉掃掠,也就是旋轉體。在Draw Test Harness中可以使用命令revol來創(chuàng)建旋轉體。

            polyline p  0 0 0 1 0 0 1 2 0 0 1 0 0 0 0
            revol r p 3 0 0 0 1 0 280
            vdisplay p r

            在Draw Test Harness中運行上述命令,可以得到一個旋轉體,如下圖所示:

            wps_clip_image-31096

            其中紅色為輪廓Profile,經過旋轉掃掠得到右邊所示的旋轉體。

            4.Pipe Shell

            通用的掃掠算法使用類BRepOffAPI_MakePipeShell,在Draw Test Harness中使用如下命令:

            l mksweep

            l addsweep

            l deletesweep

            l sestsweep

            l buildsweep

            其中setsweep命令有如下選項:

            setsweep options [arg1 [arg2 [...]]] : options are :
               -FR : Tangent and Normal are given by Frenet trihedron
               -CF : Tangente is given by Frenet, the Normal is computed to minimize the torsion
               -DT : discrete trihedron
               -DX Surf : Tangent and Normal are given by Darboux trihedron,
                   Surf have to be a shell or a face
               -CN dx dy dz : BiNormal is given by dx dy dz
               -FX Tx Ty TZ [Nx Ny Nz] : Tangent and Normal are fixed
               -G guide  0|1(Plan|ACR)  0|1|2(no contact|contact|contact on border) : with guide

            -FR選項:切矢和法向由Frenet標架確定;

            -CF選項:切矢由Frenet標架指定,法向通過計算最小扭轉來確定;

            -DT選項:切矢和法向由Darboux標架確定;

            -CN選項:副法向由指定的dx, dy, dz確定;

            -FT:切矢和法向是固定的;

            下面通過例子來說明setsweep中這些標架選項的原理。

            polyline p  0 0 0 1 0 0 1 2 0 0 1 0
            circle c 0 0 0 1 0 0 0.2
            mkedge e c
            wire w e
            mksweep p
            addsweep w
            setsweep -FX 1 0 0
            buildsweep r -C
            vdisplay p w r

            運行上述Draw Test Harness腳本得到如下圖所示模型:

            wps_clip_image-10339

            通過setsweep -FX 1 0 0 使輪廓Profile沿著掃掠路徑Path移動時,法向始終為X軸方向。

            將setsweep設置為FR,即使Profile沿著Path移動時采用Frenet標架,更改后的腳本如下:

            mksweep p
            addsweep w
            setsweep -FR
            buildsweep r -C
            vdisplay p w r

            wps_clip_image-15947

            由上圖可以看出,輪廓Profile沿著路徑Path移動時,輪廓的法向始終與路徑平行,即與路徑的切線一致。

            通過上面命令的對比可以理解setsweep中的選項原理了。關于更多形式的標架,如Darboux標架之類的,可以自己搜索學習。

            其中buildsweep命令有如下選項:

            buildsweep result [-M/-C/-R] [-S] [tol] : options are
               -M : Discontinuities are treated by Modfication of
                    the sweeping mode : it is the default
               -C : Discontinuities are treated like Right Corner
                    Treatement is Extent && Intersect
               -R : Discontinuities are treated like Round Corner
                    Treatement is Intersect and Fill
               -S : To build a Solid

            buildsweep有指定不連續(xù)的處理方式及是否生成實體。其中

            n -C:將路徑Path中不連續(xù)的地方通過延長和相交進行處理;

            n -R:將路徑Path中不連續(xù)的地方通過相交和填充進行處理;

            下面通過例子來說明buildsweep中選項的用法。通過運行下面的Draw 腳本:

            polyline p  0 0 0 1 0 0 1 2 0 0 1 0 0 0 0
            circle c 0 0 0 1 0 0 0.2
            mkedge e c
            wire w e
            mksweep p
            addsweep w
            buildsweep r -C
            vdisplay p w r

            在buildsweep時使用-C選項,得到效果如下圖所示:

            wps_clip_image-25485

            將上述腳本中更改一下buildsweep的選項,由-C改為-R,即:

            buildsweep r -R

            得到的效果如下圖所示:

            wps_clip_image-4615

            由上面兩個結果對比可以理解buildsweep的-C和-R選項了。

            5.Conclusion

            OpenCASCADE提供了掃掠造型的算法。對于掃掠造型的兩個特例Prism和Revol,提供了類BrepPrimAPI_MakePrism和BRepPrimAPI_MakeRevol來分別生成拉伸體和和旋轉體。

            對于通用的掃掠造型算法,提供了類BRepOffsetAPI_MakePipeShell來生成。使用這個類的時候需要注意輪廓Profile在掃掠路徑Path上的標架及掃掠路徑曲線不連續(xù)的處理。

            6.References

            1. OpenCASCADE Modeling Algorithms.

            2. 詹海生. 李光鑫. 馬志欣. 基于ACIS的幾何造型技術與系統(tǒng)開發(fā). 清華大學出版社. 2002

            3. 陳維桓. 微分幾何. 北京大學出版社. 



            為了方便大家在移動端也能看到我的博文和討論交流,現(xiàn)已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
            Shing Liu(eryar@163.com)

             

            少妇人妻综合久久中文字幕| 亚洲天堂久久精品| 日本亚洲色大成网站WWW久久| 色综合色天天久久婷婷基地| 精品久久久久久无码免费| 久久乐国产精品亚洲综合| 久久嫩草影院免费看夜色| 久久影院亚洲一区| 久久精品国产清高在天天线| 国内精品人妻无码久久久影院| 久久精品国产91久久综合麻豆自制| 久久播电影网| 亚洲中文字幕久久精品无码APP| 久久不射电影网| 国内精品伊人久久久久妇| 久久精品午夜一区二区福利| 欧美一区二区精品久久| 99精品国产99久久久久久97 | 久久精品无码午夜福利理论片| 国产精品无码久久四虎| 久久香蕉国产线看观看精品yw| 久久亚洲视频| 香蕉久久夜色精品国产小说| 亚洲国产精品成人久久| 久久久精品视频免费观看| 国产精品久久自在自线观看| 亚洲欧美成人久久综合中文网 | 亚洲精品无码久久千人斩| 99精品伊人久久久大香线蕉| 看久久久久久a级毛片| 欧美久久久久久| 久久精品国产亚洲Aⅴ香蕉| 久久99久久99小草精品免视看 | 久久久久噜噜噜亚洲熟女综合 | 久久强奷乱码老熟女网站 | 久久久久97国产精华液好用吗| 欧美黑人激情性久久| 久久精品国产AV一区二区三区| 日韩久久无码免费毛片软件| 国产成人久久777777| 国产99久久久国产精品~~牛|