// 任意Edge TopoDS_Edge edge; BRepAdaptor_Curve curveAdaptor(edge);
// 方法1 double start = curveAdaptor.FirstParameter(); double end = curveAdaptor.LastParameter(); for (double v=start; v < end; v += 0.01) { // 得到Edge上一个点 point pg_Pnt point = BRepGProp_EdgeTool::Value(curveAdaptor, v); }
// 方法2 // 上述代码在处理直线时不合适,改用以下方法 // 1、最好先调用 IsDone()确保有效,否则,有些步骤会抛出异常 // 2、Value()函数参数起始下标为1 GCPnts_UniformDeflection gcUD(curveAdaptor, 0.01); if (gcUD.IsDone()) { for (int p=1;p<=gcUD.NbPoints();++p) { gp_Pnt point = gcUD.Value(p); } }标签:point,double,OCC,Edge,curveAdaptor,TopoDS From: https://www.cnblogs.com/06NN08/p/16922191.html