• <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 閱讀(3066) 評論(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

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

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

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

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

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

            掃掠算法是圖形學中很常見的造型算法,就是將指定的輪廓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可以創建線性掃掠,也就是拉伸體。在Draw Test Harness中可以使用命令prism來創建拉伸體。

            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可以創建旋轉掃掠,也就是旋轉體。在Draw Test Harness中可以使用命令revol來創建旋轉體。

            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有指定不連續的處理方式及是否生成實體。其中

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

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

            下面通過例子來說明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上的標架及掃掠路徑曲線不連續的處理。

            6.References

            1. OpenCASCADE Modeling Algorithms.

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

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



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

             

            成人久久免费网站| 精品一区二区久久久久久久网站| 72种姿势欧美久久久久大黄蕉| 婷婷伊人久久大香线蕉AV| 99久久无色码中文字幕| 久久九九免费高清视频| 亚洲国产精品综合久久一线 | 久久久久97国产精华液好用吗| 人妻少妇精品久久| 伊人久久大香线蕉AV色婷婷色| 久久综合综合久久97色| 久久精品国产亚洲AV影院 | 久久中文字幕人妻丝袜| 国产精品成人99久久久久| 国产成人久久777777| 久久乐国产综合亚洲精品| 99久久免费国产特黄| 一97日本道伊人久久综合影院| 久久久久久狠狠丁香| 日韩人妻无码一区二区三区久久 | 久久精品国产99国产精品澳门| 久久久久国产亚洲AV麻豆| 久久精品国产99久久无毒不卡 | 久久99精品久久久久久久不卡| 精品国产综合区久久久久久| 久久精品无码专区免费青青| 漂亮人妻被中出中文字幕久久 | 欧美激情精品久久久久久久九九九| 亚洲精品tv久久久久久久久 | 97精品依人久久久大香线蕉97| 91精品国产91久久久久久青草| 国产精品无码久久久久久| 无码超乳爆乳中文字幕久久| 久久免费大片| 一本久久a久久精品综合夜夜 | 亚洲精品高清一二区久久| 91久久精品视频| 久久播电影网| 色播久久人人爽人人爽人人片aV| 国产综合免费精品久久久| 久久强奷乱码老熟女网站|