如果你知道点Point1和Point2之间的距离超过公差值,那么你可以直接创建gp对象,如下所示: gp_Lin2dl=gce_MakeLin2d(Point1,Point2); 由手柄操纵的几何实体 GC和GCE2d包提供了用于从Geom和Geom2D包建立实体的算法的实现。它们实现了与gce包相同的算法,并且还包含了修剪曲面和曲线的算法。以下算法是可用的: 由两点...
aPnt1的引用实际类型是Geom_CartesianPoint,虽然句柄引用的静态类型是Geom_PointvoidMyFunction(constHandle(A)&a){Handle(B)b=Handle(B)::DownCast(a);if(!b.IsNull()){// we can use “b” if class B inherits
一、几何图形部分 三维点gp_point gp_point(0., 0., 0.) 三维坐标构建一个点 gp_point::X(); gp_point::Y(); gp_point::Z(); 可以取得已知点的X、Y、Z坐标 gp_point::SetX(); gp_point::SetY(); gp_point::SetZ(); gp_point::SetCoord(); 可以设置三维点的坐标 2.边TopoDS_Edge BRep...
12、BRep_Tool主要有三个方法,用于从TopoDS_XXX到Geom_XXX的转换。 graph LR id1(TopoDS_Face)-->id2(Geom_Surface) graph LR id1(TopoDS_Edge)-->id2(Geom_Curve) graph LR id1(TopoDS_Vertex)-->id2(Geom_Point) Handle(Geom_Surface) aSurface = BRep_Tool::Surface(aFace); 1. 13、Standard_...
1、三维点gp_point 2、边TopoDS_Edge 通过BRepBuilderAPI_MakeEdge创建边 BRepBuilderAPI_MakeEdge(const gp_Pnt& P1, const gp_Pnt& P2); 通过两个点构造边 BRepBuilderAPI_MakeEdge(const gp_Lin& L); 通过射线构造边 此外gp_Circ(圆)、gp_Elips(椭圆)、gp_Hypr(双曲线一支)、gp_...
1、三维点gp_point 2、边TopoDS_Edge 通过BRepBuilderAPI_MakeEdge创建边 BRepBuilderAPI_MakeEdge(const gp_Pnt& P1, const gp_Pnt& P2); 通过两个点构造边 BRepBuilderAPI_MakeEdge(const gp_Lin& L); 通过射线构造边 此外gp_Circ(圆)、gp_Elips(椭圆)、gp_Hypr(双曲线一支)、gp_Parab(抛物线)、Geom...
其中代数/代数曲面求交函数GeomGeomPerform()中使用类IntPatch_ImpImpIntersection来计算两个二次代数曲面的求交,其实这是Imp缩写就是隐式代数方程Implicit Equation的意思。 二次代数曲面的求交使用包IntAna来实现,这在早期文章中分析了其实现原理,主要思想是将一个二次曲面的参数表示代入隐式方程变成一元方程,然后对...
先生成Geom_Line,再用GeomAPI_IntCS函数直接求交即可。 1Handle(Geom_Line) aLine =newGeom_Line(gp_Pnt(x1, y1, z1), gp_Dir(x2 - x1, y2 - y1, z2 -z1));2GeomAPI_IntCS intCS(aLine, aSurface);3gp_Pnt aPnt = intCS.Point(1); ...
{//计算每个等分点的世界坐标gp_Pntpoint=geomCurve->Value(u); Eigen::Vector3dvec(point.X(), point.Y(), point.Z()); vecPoints.push_back(vec); } } catch (Standard_Failure const& exception) { Standard_SStream stream; stream << "An exception was caught: " << exception << std::ends...
void makeSurface(Handle(Geom_BSplineSurface)& theSurface) { TColgp_Array2OfPnt aPoints(1, 5, 1, 5); aPoints.SetValue(1, 1, gp_Pnt(-4, -4, 5)); aPoints.SetValue(1, 2, gp_Pnt(-4, -2, 5)); aPoints.SetValue(1, 3, gp_Pnt(-4, 0, 4)); ...