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

eryar

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

Open Cascade造型算法——倒圓與倒角

Posted on 2013-01-20 19:21 eryar 閱讀(5639) 評論(2)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

造型算法——倒圓與倒角

Modeling Algorithms Fillets and Chamfers

eryar@163.com

一、倒圓Fillet Constructor

1. BRepFilletAPI_MakeFillet

使用類BRepFilletAPI_MakeFillet來為形狀添加倒圓。倒圓是用光滑面來代替角邊。使用方法如下:

l 首先,給定一個需要倒圓的形狀;

l 然后,通過Add方法來添加描述倒圓的參數,倒圓所需的參數包括一個邊edge和半徑radius。當然,邊edge必須由兩個面face所共有。倒圓會將原來的邊替換成光滑的圓面過渡。

l 最后,通過詢問結果來執行倒圓操作。

注:添加一個倒圓兩次并不會出錯,因為只保留了最后一次添的倒圓。

Figure 1. Filleting two edges using radius r1 and r2

Figure 1. Filleting two edges using radius r1 and r2

下面給出一個將創建一個倒圓的長方體,其尺寸分別為abc,倒圓半徑r

Figure 2. Filleting a box

Figure 2. Filleting a box

代碼如下所示,創建上圖所示的倒圓的長方體的參數分別為:

a = 100b = 60c = 80r = 10

#include <TopoDS_Shape.hxx> 
#include <TopoDS.hxx> 
#include <BRepPrimAPI_MakeBox.hxx> 
#include <TopoDS_Solid.hxx> 
#include <BRepFilletAPI_MakeFillet.hxx> 
#include <TopExp_Explorer.hxx> 
 
TopoDS_Shape FilletedBox(const Standard_Real a, 
      const Standard_Real b, 
      const Standard_Real c, 
      const Standard_Real r) 
{ 
    TopoDS_Solid Box = BRepPrimAPI_MakeBox(a,b,c); 
    BRepFilletAPI_MakeFillet MF(Box); 
 
    // add all the edges to fillet 
    TopExp_Explorer ex(Box,TopAbs_EDGE); 
    while (ex.More()) 
    { 
        MF.Add(r,TopoDS::Edge(ex.Current())); 
        ex.Next(); 
    }
 
    return MF.Shape(); 
} 

如下圖所示為創建一個半徑變化的倒圓操作:

Figure 3. Evolutive radius fillet

Figure 4. Evolutive radius fillet a box

程序代碼如下所示:

  1:     TopoDS_Shape theBox = BRepPrimAPI_MakeBox(200, 200, 200);
  2:     BRepFilletAPI_MakeFillet Rake(theBox);
  3:     ChFi3d_FilletShape FSH = ChFi3d_Rational;
  4:     Rake.SetFilletShape(FSH);
  5:  
  6:     TColgp_Array1OfPnt2d parAndRad(1, 6);
  7:     parAndRad.SetValue(1, gp_Pnt2d(0, 10));
  8:     parAndRad.SetValue(2, gp_Pnt2d(50, 20));
  9:     parAndRad.SetValue(3, gp_Pnt2d(70, 20));
 10:     parAndRad.SetValue(4, gp_Pnt2d(130, 60));
 11:     parAndRad.SetValue(5, gp_Pnt2d(160, 30));
 12:     parAndRad.SetValue(6, gp_Pnt2d(200, 20));
 13:  
 14:     TopExp_Explorer ex(theBox, TopAbs_EDGE);
 15:     Rake.Add(parAndRad, TopoDS::Edge(ex.Current()));
 16:     TopoDS_Shape evolvedBox = Rake.Shape();
 17: 

2. BRepFilletAPI_MakeFillet2d

BRepFilletAPI_MakeFillet2d is used to construct fillets and chamfers on planar faces.

我按照示例代碼運行了一下程序,結果程序總是崩潰,其操作的效果不得而知,所以也得不到真實的效果圖。將其程序代碼列出如下所示:

  1: #include “BRepPrimAPI_MakeBox.hxx” 
  2: #include “TopoDS_Shape.hxx” 
  3: #include “TopExp_Explorer.hxx” 
  4: #include “BRepFilletAPI_MakeFillet2d.hxx” 
  5: #include “TopoDS.hxx” 
  6: #include “TopoDS_Solid.hxx” 
  7:  
  8: TopoDS_Shape FilletFace(const Standard_Real a, 
  9:     const Standard_Real b, 
 10:     const Standard_Real c, 
 11:     const Standard_Real r) 
 12: { 
 13:     TopoDS_Solid Box = BRepPrimAPI_MakeBox (a,b,c); 
 14:     TopExp_Explorer ex1(Box,TopAbs_FACE); 
 15:  
 16:     const TopoDS_Face& F = TopoDS::Face(ex1.Current()); 
 17:     BRepFilletAPI_MakeFillet2d MF(F); 
 18:     TopExp_Explorer ex2(F, TopAbs_VERTEX); 
 19:  
 20:     while (ex2.More()) 
 21:     { 
 22:         MF.AddFillet(TopoDS::Vertex(ex2.Current()),r); 
 23:         ex2.Next(); 
 24:     } 
 25:  
 26:     // while... 
 27:     return MF.Shape(); 
 28: }
 29: 

二、倒角Chamfer Constructor

1BRepFilletAPI_MakeChamfer

BREpFilletAPI_MakeChamfer的使用方法與BRepFilletAPI_MakeFillet大致類似,但稍有不同:

a) The surfaces created are ruled and not smooth;

b) The Add syntax for selecting edges requires one or two distances, one edge and one face(contiguous to the edge);

Add(dist, E, F);

Add(d1, d2, E, F); with d1 on the face F.

Figure 5. Creating a chamfer

Figure 6. The box with chamfers

程序代碼如下所示:

  1: TopoDS_Shape theBox = BRepPrimAPI_MakeBox(130,200,170); 
  2: BRepFilletAPI_MakeChamfer MC(theBox); 
  3: TopTools_IndexedDataMapOfShapeListOfShape M; 
  4: TopExp::MapShapesAndAncestors(theBox,TopAbs_EDGE,TopAbs_FACE,M); 
  5:  
  6: for (Standar1d_Integer i;i<M.Extent();i++) 
  7: { 
  8:     TopoDS_Edge E = TopoDS::Edge(M.FindKey(i)); 
  9:     TopoDS_Face F = TopoDS::Face(M.FindFromIndex(i).First()); 
 10:     MC.Add(15,15,E,F); 
 11: } 
 12:  
 13: TopoDS_Shape ChanfrenedBox = MC.Shape();  
 14: 

 

Feedback

# re: Open Cascade造型算法&mdash;&mdash;倒圓與倒角  回復  更多評論   

2013-01-23 22:37 by javaxxz.com
您的網站做的非常專業。誠與貴站交換鏈接。Java學習者論壇http://www.javaxxz.com 有意請回復郵箱:admin@javaxxz.com

# re: Open Cascade造型算法&mdash;&mdash;倒圓與倒角  回復  更多評論   

2014-02-12 23:14 by eryar
感謝seumonkey指出BRepFilletAPI_MakeFillet2d造型算法示例中錯誤:
http://blog.csdn.net/fcqwin/article/details/17204707
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美大片一区二区| 亚洲欧洲在线一区| 日韩亚洲在线观看| 欧美成ee人免费视频| 国产亚洲精品美女| 久久精品国产亚洲a| 夜夜精品视频一区二区| 欧美日韩一区二区三区在线视频| 亚洲丁香婷深爱综合| 久久―日本道色综合久久| 欧美亚洲色图校园春色| 欧美日韩在线看| 亚洲欧美区自拍先锋| 一本一道久久综合狠狠老精东影业| 欧美人成网站| 亚洲免费综合| 性色av一区二区怡红| 激情亚洲成人| 国产精品网站在线观看| 欧美一级午夜免费电影| 亚洲人成网站在线观看播放| 久久久久久亚洲精品中文字幕| 精品动漫3d一区二区三区| 欧美mv日韩mv国产网站| 欧美激情第一页xxx| 亚洲视频播放| 日韩一区二区精品葵司在线| 国产精品美女久久久浪潮软件| 一区二区久久| 亚洲欧美国产另类| 精品福利电影| 99视频国产精品免费观看| 国产伦精品一区| 久久精品五月| 欧美日产一区二区三区在线观看| 亚洲一区3d动漫同人无遮挡| 亚洲欧美日韩精品久久亚洲区| 国产专区综合网| 日韩午夜在线电影| 国产精品99免费看| 欧美国产日本韩| 欧美激情综合亚洲一二区| 国内精品福利| 亚洲人成亚洲人成在线观看图片| 国产精品扒开腿爽爽爽视频| 久久精品视频网| 欧美va亚洲va香蕉在线| 午夜久久黄色| 欧美专区日韩专区| 日韩视频在线你懂得| 欧美一区永久视频免费观看| 日韩午夜免费视频| 一区二区三区视频免费在线观看 | 国产亚洲一级| 亚洲精品在线一区二区| 国产亚洲福利一区| 欧美岛国在线观看| 欧美高清免费| 欧美一区二区三区在线播放| 欧美高清在线观看| 久久久久国产一区二区| 欧美黄色精品| 欧美激情性爽国产精品17p| 国内外成人免费激情在线视频网站 | 亚洲一级电影| 欧美噜噜久久久xxx| 久久婷婷丁香| 激情欧美一区二区三区| 亚洲女人天堂av| 亚洲精品免费网站| 欧美插天视频在线播放| 性伦欧美刺激片在线观看| 国产精品扒开腿做爽爽爽软件 | 亚洲电影免费观看高清完整版在线观看| 亚洲综合不卡| 性欧美8khd高清极品| 欧美视频一区二区三区…| 亚洲第一精品福利| 亚洲精品美女91| 久久久久一区二区三区| 欧美在线日韩| 国产一区二区0| 久久国产99| 欧美1区2区| 亚洲国产欧美日韩| 蜜臀av性久久久久蜜臀aⅴ| 欧美成人免费大片| 日韩视频精品| 国产精品vvv| 亚洲一级影院| 亚洲午夜激情网页| 国产精品久久久久毛片软件| 亚洲一级片在线看| 欧美一级视频一区二区| 国内精品久久久久伊人av| 久久天天躁夜夜躁狠狠躁2022| 乱中年女人伦av一区二区| 国产性色一区二区| 欧美一区三区三区高中清蜜桃 | 国产一区二区三区高清播放| 久久国产日本精品| 久久久精品国产免大香伊| 国产日韩亚洲欧美精品| 久久婷婷国产综合尤物精品 | 亚洲黄色性网站| 国产精品成人av性教育| 欧美一区高清| 亚洲人成人77777线观看| 亚洲欧美国产高清va在线播| 好看不卡的中文字幕| 久久久综合精品| 日韩图片一区| 久久久之久亚州精品露出| 国产热re99久久6国产精品| 裸体女人亚洲精品一区| 中文欧美在线视频| 免费成人美女女| 亚洲精品九九| 国产人久久人人人人爽| 欧美精品一区视频| 久久精品免费| 国产精品99久久久久久久vr| 欧美a级在线| 最新亚洲视频| 国产精品视频yy9299一区| 美女视频黄免费的久久| 亚洲欧美中文在线视频| 日韩视频在线播放| 美女诱惑一区| 久久精品毛片| 亚洲欧美国产精品桃花| 亚洲免费观看在线观看| 国内一区二区三区| 国产精品免费一区二区三区观看| 亚洲午夜精品久久久久久app| 久久亚洲春色中文字幕| 亚洲欧美日韩一区二区| 日韩视频二区| 亚洲国产免费| 国产一区二区三区免费观看| 国产精品成人一区二区三区夜夜夜 | 一本久久青青| 亚洲国产精品一区二区尤物区| 国产精品亚洲一区| 国产精品国产a| 欧美日韩国产麻豆| 欧美系列精品| 国产乱肥老妇国产一区二| 国产欧美精品日韩| 狠狠色伊人亚洲综合成人| 黄色日韩在线| 亚洲精品国产精品国自产观看浪潮| 亚洲黄色免费| 亚洲午夜视频在线| 欧美一级久久久| 久久尤物视频| 亚洲欧洲偷拍精品| 亚洲视频导航| 欧美在线你懂的| 欧美freesex8一10精品| 欧美日韩在线高清| 国产伦精品一区二区三区视频孕妇 | 久久九九热免费视频| 欧美成人第一页| 国产精品电影观看| 一区久久精品| 亚洲一区3d动漫同人无遮挡| 性视频1819p久久| 欧美成ee人免费视频| 99在线精品观看| 久久精品国产免费看久久精品 | 亚洲一二三区视频在线观看| 欧美一区在线视频| 欧美国产激情二区三区| 国产酒店精品激情| 亚洲精品男同| 久久精品国产第一区二区三区最新章节| 久久尤物视频| 亚洲午夜视频在线| 久久午夜电影| 国产精品一区二区久久| 亚洲高清在线视频| 欧美一区二区播放| 亚洲国产欧美日韩| 久久国产毛片| 国产精品久久久一区二区三区| 在线日韩欧美| 久久精视频免费在线久久完整在线看| 欧美激情女人20p| 欧美在线观看视频一区二区三区| 欧美成人精品影院| 国产最新精品精品你懂的| 亚洲图片欧洲图片av| 亚洲福利视频二区| 欧美在线播放一区二区| 欧美性淫爽ww久久久久无| 亚洲国产日日夜夜| 久久午夜电影网| 亚洲欧美日韩国产一区二区| 欧美日本一区二区三区|