线程评分:
  • 0投票 - 0平均
  • 1
  • 2
  • 3
  • 4
  • 5
c#addcurve
C#中的AddCurve方法仅采用一个不是列表的垫子类型,而只需通过我可以看到的单个位置。在C#中,您将如何通过点列表?
该代码应显示一个示例,将双打数组转换为垫子文件,您可以将其用于Robodk.addcurve()

//创建点列表作为双打数组
//尺寸为4点为xyzijk。XYZ是位置,IJK是工具Z轴(IJK是可选的)
const int np = 4;
double [,] points_xyzijk = new double [np,6] {{0,0,0,0,0,1},{500,0,0,0,0,0,0,1},{500,500,0,0,0,0,0,0,1},{0,0,0,0,0,0,1}}};

//将阵列的双阵列转换为垫子对象:
MAT POSTER_MAT = New Mat(6,NP);
对于(int c = 0; c
{
for(int r = 0; r <6; r ++)
{
points_mat [r,c] = points_xyzijk [c,r];
}
}

//将垫子文件加载到Robodk中
robodk.item object_curve = rdk.addcurve(points_mat);

//重命名曲线对象
object_curve.setName(“导入曲线”);


更多信息在这里:
//www.w5838.com/doc/en/csapi/api/robo...ctiontype_
完美的感谢,这不是创建对象的最直观的方式。这是我编辑的代码,以防其帮助其他人。我删除了一个循环,并直接将双索引索引以达到速度和清晰度

代码:
public static Mat PointListTomat(Point [] PTS,Vector Toolvec = null)
{
向量电视= toolvec;
if(toolvec == null)tv = vector.zaxis();

//创建点列表作为双重数组的数组
int np = pts.length;

double [] xyzijk = new double [6];

//将阵列的双阵列转换为垫子对象:
MAT POSTER_MAT = New Mat(6,NP);

对于(int c = 0; 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;

}

返回点_mat;
}




用户浏览此线程:
1位客人