• <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 布爾運(yùn)算簡(jiǎn)介

            Posted on 2022-02-25 09:27 eryar 閱讀(1752) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 2.OpenCASCADE

            OpenCASCADE 布爾運(yùn)算簡(jiǎn)介

            eryar@163.com

            布爾運(yùn)算(Boolean Operations)是根據(jù)兩組模型的組合創(chuàng)建出新的模型的造型方法。兩組模型Objects/Tools之間有三種布爾算子:

            • 布爾并:FUSE,將兩組模型合并成一個(gè);
            • 布爾減:CUT,從Objects中減去Tools模型;
            • 布爾交:COMMON,即兩組模型的共有部分;

            布爾運(yùn)算的輸入是兩組模型,分別叫Objects和Tools。因?yàn)閮蓚€(gè)參數(shù)的前后順序容易混淆,借用機(jī)械加工類(lèi)比來(lái)加深記憶:Objects類(lèi)比為待加工的工件,Tools類(lèi)比為機(jī)床刀具。當(dāng)執(zhí)行布爾減運(yùn)算時(shí),相當(dāng)于工件Object被刀具Tool切割。

            在OpenCASCADE中布爾運(yùn)算第一個(gè)參數(shù)Objects也叫Arguments,第二個(gè)參數(shù)也是Tools。對(duì)應(yīng)源碼如下:

            布爾運(yùn)算的大概流程是先對(duì)兩個(gè)模型進(jìn)行求交計(jì)算,求交結(jié)果主要是Edge邊。然后再根據(jù)求交計(jì)算新得到的Edge邊進(jìn)行定位分類(lèi)Classification處理,排除不需要的Edge邊,面等。最后根據(jù)邊重構(gòu)出新的BREP模型。

            布爾運(yùn)算的健壯性及效率依賴(lài)一些底層算法,如求交算法Intersection Algorithm,投影算法Projection Algorithm,擬合算法Approximation Algorithm及定位算法Classification Algorithm等。求交算法主要有面面求交、面邊求交、邊邊求交等。投影和擬合算法主要用于計(jì)算邊在面中的P-Curves。定位算法主要用于重構(gòu)階段,通過(guò)定位排除不需要的邊、面等。

            關(guān)于重構(gòu)模型OpenCASCADE提供了一些算法,如通過(guò)使用函數(shù)BOPAlgo_Tools::EdgesToWires 和 BOPAlgo_Tools::WiresToFaces從線(xiàn)框模型生成面。

            關(guān)于定位算法,提供BOPTools_AlgoTools::ComputeState計(jì)算點(diǎn)、邊、面相對(duì)于其他模型的位置狀態(tài)。提供BOPTools_AlgoTools::IsHole來(lái)判斷面FACE上的環(huán)WIRE是不是孔。

            通過(guò)查看源碼,可以看到其實(shí)現(xiàn)原理:即根據(jù)環(huán)WIRE中的邊EDGE的PCurve是順時(shí)針還是逆時(shí)針來(lái)判斷。通過(guò)對(duì)PCurve采樣點(diǎn)得到一個(gè)多邊形,通過(guò)計(jì)算多邊形面積的正負(fù)來(lái)判斷。

            OpenCASCADE中關(guān)于布爾運(yùn)算有詳細(xì)的文檔Boolean Operations Specification,若對(duì)布爾運(yùn)算感興趣,可以結(jié)合源碼來(lái)看這些文檔。開(kāi)源的好處是可以了解算法背后的實(shí)現(xiàn)原理,如果有更好的方法,還可以參與貢獻(xiàn),讓其變得更好。

             

            久久人人爽人人爽人人av东京热| 久久99久久无码毛片一区二区| 久久伊人五月丁香狠狠色| 亚洲人AV永久一区二区三区久久| 波多野结衣久久精品| 日本免费久久久久久久网站| 久久97久久97精品免视看| 久久久久久久精品成人热色戒| 国产精品对白刺激久久久| 久久久国产精华液| 精品免费久久久久久久| 久久天天日天天操综合伊人av| 久久久久人妻精品一区二区三区| 久久国产福利免费| 久久91精品国产91久久户| 久久久久久精品久久久久| 国内精品伊人久久久久影院对白 | WWW婷婷AV久久久影片| 久久久久国产一区二区三区| 99国产欧美精品久久久蜜芽| 久久精品国产亚洲AV不卡| 色99久久久久高潮综合影院 | 国产69精品久久久久观看软件| 青青草国产精品久久久久| 色诱久久久久综合网ywww| 日韩AV毛片精品久久久| 国产精品伊人久久伊人电影| A狠狠久久蜜臀婷色中文网| 久久婷婷国产剧情内射白浆 | 无码久久精品国产亚洲Av影片| 久久男人中文字幕资源站| 亚洲成人精品久久| 国产精品久久久久久搜索| 久久精品国产亚洲av高清漫画| av色综合久久天堂av色综合在| 蜜桃麻豆WWW久久囤产精品| 人妻中文久久久久| 一本一道久久a久久精品综合| 久久婷婷五月综合色99啪ak| 日本精品一区二区久久久| 波多野结衣久久精品|