在OpenCasCade的获得一个曲面的边界线

     前段时间在OCC中建模的时候一直困扰于如何获得GeomPlate_Surface的面的边界线。查了很多资料,从该类的声明中可以看到void RealBounds(Standard_Real& U1,Standard_Real& U2,Standard_Real& V1,Standard_Real& V2) const;这个函数,但是这个函数只能得到这个面的最大x,y和最小x,y值。同理在Geom_BSplineSurface中其自身也有获得这几个值的函数:void  Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) ,但这些都不是我想要的。后来我发现有一个BndBox的类,但是它的基本功能其实和上面两个函数相差无几。

后来我在例子代码中看到这么一段代码,解决了我的问题


Handle(Geom_Surface) aSurf;
TopoDS_Wire    Wire[2];
...
TopoDS_Face myFace = BRepBuilderAPI_MakeFace(aSurf, Precision::Confusion());
		Face[r-1]=myFace;
		//
		ShapeAnalysis_FreeBounds aFreeBounds(myFace, Standard_False, Standard_True);
		TopoDS_Compound aClosedWires = aFreeBounds.GetClosedWires();
		TopTools_IndexedMapOfShape aWires;
		TopExp::MapShapes(aClosedWires, TopAbs_WIRE, aWires);
		TopoDS_Wire aWire;
		Standard_Integer nbWires = aWires.Extent();
		if (nbWires) 
			aWire = TopoDS::Wire(aWires(1));
		else 
			return;

		Wire[r-1]=aWire;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值