线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
c# addCurve
# 1
在c#中的addCurve方法只接受一个Mat类型,这不是一个列表,但只有一个单一的位置,从我可以看到。在c#中,你如何传递一个点列表?
下面的代码应该展示了一个示例,该示例将一个双精度数组转换为一个可以用于RoboDK.AddCurve()的Mat文件。

//创建点列表作为双精度数组的数组
//大小为XYZijk。XYZ是位置,ijk是工具Z轴(ijk是可选的)
Const int np = 4;
双[,]points_xyzijk = new双(np, 6){{0, 0, 0, 0, 0, 1},{500, 0, 0, 0, 0, 1},{500、500、0,0,0,1},{0,0,0,0,0,1}};

//将数组的双数组转换为Mat对象:
Mat points_mat = new Mat(6, np);
For (int c=0;c < np;c++)

For (int r=0;r < 6;r + +)

Points_mat [r,c] = points_xyzijk[c,r];



//加载RoboDK中的mat文件
RoboDK。项目object_curve = RDK.AddCurve(points_mat);

//重命名曲线对象
object_curve。setName(“进口曲线”);


更多信息请点击这里:
//www.x7093.com/doc/en/CsAPI/api/Robo...ctionType_
# 3
完美的感谢工作,这不是最直观的方式来创建一个对象。这里是我编辑的代码,以防它帮助别人。我删除了一个循环,并直接索引双[]的速度和清晰度

代码:
PointListToMat(Point[] pts, Vector ToolVec = null)

Vector tv = ToolVec;
if(ToolVec == null) tv = Vector.ZAxis();

//创建点列表作为array of double的数组
int np = pts.Length;

Double [] xyzijk = new Double [6];

//将数组的双数组转换为Mat对象:
Mat points_mat = new Mat(6, np);

For (int c = 0;C < np;c++)

points_mat[0, c] = pts[c].X;
points_mat[1, c] = pts[c].Y;
points_mat[2, c] = pts[c].Z;
points_mat[3, c] = tv.X;
points_mat[4, c] = tv.Y;
points_mat[5, c] = tv.Z;



返回points_mat;




浏览此线程的用户:
1客人(年代)