Open CASCADE基础介绍(7)
--利用生成一个WIRE,作为管道的路径:
Handle(Geom_BezierCurve) curve = new Geom_BezierCurve(CurvePoles);
TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve);
TopoDS_Wire W = BRepBuilderAPI_MakeWire(E); --生成一个面,作为生成管道的截面:
gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(0.,0.,0.),gp_Dir(0.,1.,0.)),10.);
TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c);
TopoDS_Wire Wc = BRepBuilderAPI_MakeWire(Ec);
TopoDS_Face F = BRepBuilderAPI_MakeFace(gp_Pln(gp::ZOX()),Wc); --利用前两步生成的路径和截面来生成pipe:
TopoDS_Shape S = BRepOffsetAPI_MakePipe(W,F); Handle(AIS_Shape) ais2 = new AIS_Shape(S);
〉
BRepOffsetAPI_ThruSections类
此类继承自BRepBuilderAPI_MakeShape:创建一个loft,通过一组给定的sections,生成一个shell或一个solid;通常,section是wire;但是第一个和最后一个section可以是
vertices; 比如:
BRepOffsetAPI_ThruSections generator(Standard_False,Standard_True);
generator.AddWire(W1);
generator.AddWire(W2);
generator.AddWire(W3);
generator.AddWire(W4);
generator.Build();
TopoDS_Shape S1 = generator.Shape();
Handle(AIS_Shape) ais1 = new AIS_Shape(S1);
BRepBuilderAPI_MakePolygon类
创建一个polygonal wires,可以通过一组点或向量生成,也可以先生成一个空的对象,再添加点。 示例1:
BRepBuilderAPI_MakePolygon P;
P.Add(gp_Pnt(0.,0.,0.));
P.Add(gp_Pnt(200.,0.,0.));
P.Add(gp_Pnt(200.,200.,0.));
P.Add(gp_Pnt(0.,200.,0.));
P.Add(gp_Pnt(0.,0.,0.));
TopoDS_Wire W = P.Wire(); 示例2:
TopoDS_Wire wprof = BRepBuilderAPI_MakePolygon(gp_Pnt(0.,0.,0.),gp_Pnt(-60.,-60.,-200.));
BRepOffsetAPI_MakeEvolved类创建一个可展图形,它是通过一个
planar spine (face or wire)和一个rofile (wire)来生成的,它是一个非循环的sweep (pipe),用profile沿着spline;自相交点将被移除; 比如:
--沿着一个spline,sweep一个profile; Standard_EXPORT BRepOffsetAPI_MakeEvolved(const TopoDS_Face& Spine,const TopoDS_Wire& Profil,const GeomAbs_JoinType Join = GeomAbs_Arc,const Standard_Boolean
AxeProf = Standard_True,const Standard_Boolean Solid = Standard_False,const Standard_Boolean ProfOnSpine = Standard_False,const Standard_Real Tol = 0.0000001);
AxeProf参数如果为true,R是0,X,Y,Z;如果solid为真,结果为一个solid或复合的solids; 示例:
TopoDS_Shape S = BRepOffsetAPI_MakeEvolved(W,wprof,GeomAbs_Arc,Standard_True,Standard_False,Standard_True,0.0001);
BRepBuilderAPI_ModifyShape类当使用BRepTools来创建一个修改
类,主要有以下派生类:
--BRepBuilderAPI_Copy:处理一个图形的拷贝;
--BRepBuilderAPI_Transform 和BRepBuilderAPI_GTransform:用来对一个图形应用几何变形;
--BRepBuilderAPI_NurbsConvert:用来将一个图形转化为NURBS几何体; --BRepOffsetAPI_DraftAngle:创建一个tapered图形;
BRepOffsetAPI_DraftAngle类
创建一个tapered图形;一般过程是: --初始化构造算法;
--输入要taper的特征面; --实现算法; --生成结果; 示例:
TopoDS_Shape S = BRepPrimAPI_MakeBox(200.,300.,150.);
BRepOffsetAPI_DraftAngle adraft(S);
TopExp_Explorer Ex;
for (Ex.Init(S,TopAbs_FACE); Ex.More(); Ex.Next()) {
TopoDS_Face F = TopoDS::Face(Ex.Current());
Handle(Geom_Plane) surf = Handle(Geom_Plane)::DownCast(BRep_Tool::Surface(F));
gp_Pln apln = surf->Pln();
gp_Dir dirF = apln.Axis().Direction();
if (dirF.IsNormal(gp_Dir(0.,0.,1.),Precision::Angular()))
adraft.Add(F, gp_Dir(0.,0.,1.), 15.*PI180, gp_Pln(gp::XOY())); }
ais1->Set(adraft.Shape());
二:关于布尔等实体修改操作相关
BRepAlgoAPI_BooleanOperation
类此类的基类是BRepBuilderAPI_MakeShape类,它是一个抽象类;
可以应用的操作有:BOP_SECTION 、BOP_COMMON、BOP_FUSE、BOP_CUT、BOP_CUT21 有时会产生错误,无法达到想要的结果,根据返回值,可以得到错误信息,含义是: 0:OK
1: 对象创建完成,但结果为空; 2:源图形为空;
3:参数类型检查错误;
4:不能为DSFiller分配内存;
5:此种类型参数的Builder无法工作; 6:不允许的操作;
7:不能为Builder分配内存; >100 参见Builder错误信息; 相关的方法介绍:
--TopTools_ListOfShape& SectionEdges()方法:返回一组截面的边,它们在布尔操作过程中生成;
--Standard_Boolean HasDeleted()方法:如果至少一个图形对象被删除了,返回为真; --Standard_Boolean HasGenerated()方法:如果至少生成了一个图形,返回为真; --Standard_Boolean HasModified()方法:如果至少一个图形被修改了,返回为真;
--TopTools_ListOfShape& Generated(const TopoDS_Shape& S) 方法:返回生成以后的图形的集合;
--TopTools_ListOfShape& Modified2(const TopoDS_Shape& aS)方法:返回修改后的图形的集合;
--Standard_Boolean IsDeleted(const TopoDS_Shape& aS)方法:如果图形S已经被删除,返回为真,即结果图形中不包括图形S;
-BOP_Operation Operation()方法:返回布尔操作的类型;
布尔操作类包括有
BRepAlgoAPI_Cut类, BRepAlgoAPI_Fuse类,
…… 此处隐藏:1413字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




