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

             

            久久国产精品无码HDAV| 狠狠久久综合| 久久久久久久亚洲Av无码| 久久精品中文騷妇女内射| 2021久久国自产拍精品| 伊人久久大香线焦综合四虎| 九九热久久免费视频| 精品国产乱码久久久久久呢| 国产精品一久久香蕉产线看| 国产精品无码久久四虎| 少妇精品久久久一区二区三区| 2021国产成人精品久久| 色综合久久久久综合体桃花网| 久久精品国产一区| 99精品国产综合久久久久五月天| 91性高湖久久久久| 久久er99热精品一区二区| 日韩久久无码免费毛片软件| 99久久er这里只有精品18| 久久久久久午夜精品| 99久久国产热无码精品免费久久久久 | 久久水蜜桃亚洲av无码精品麻豆 | 久久久久波多野结衣高潮| 久久福利青草精品资源站| 亚洲日韩欧美一区久久久久我 | 久久精品国产一区二区| 狠狠色丁香久久婷婷综合五月 | 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产亚洲Aⅴ蜜臀色欲| 久久久久亚洲精品天堂| 奇米综合四色77777久久| 99精品国产免费久久久久久下载| 激情综合色综合久久综合| 亚洲国产成人久久精品影视| 99久久综合狠狠综合久久止| 国产精品久久久久无码av| 国产精品99精品久久免费| 久久久精品国产sm调教网站| 亚洲成色www久久网站夜月| 97久久婷婷五月综合色d啪蜜芽| 久久受www免费人成_看片中文|