CAD交互绘制多段线(com接口)
多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。
主要用到函数说明:
_DMxDrawX::DrawLine
绘制一个直线。详细说明如下:
| 参数 | 说明 |
|---|---|
|
DOUBLE dX1 |
直线的开始点x坐标 |
|
DOUBLE dY1 |
直线的开始点y坐标 |
|
DOUBLE dX2 |
直线的结束点x坐标 |
|
DOUBLE dY2 |
直线的结束点y坐标 |
_DMxDrawX::PathLineTo
把路径下一个点移到指定位置。详细说明如下:
| 参数 | 说明 |
|---|---|
|
DOUBLE dX |
点的X坐标 |
|
DOUBLE dY |
点的Y坐标 |
_DMxDrawX::DrawPathToPolyline
把路径变成一个Polyline。
c#中实现代码说明:
private void DrawPolyline()
{
MxDrawPoint point1 = (MxDrawPoint)(axMxDrawX1.GetPoint(false, 0, 0, "点取第一点:"));
if (point1 == null)
return;
//把路径的开始位置移动指定的点
//参数一为点的X坐标 ,参数二为点的Y坐标
axMxDrawX1.PathMoveTo(point1.x, point1.y);
//与用户交互到在图上提取一个点
MxDrawPoint point2 = (MxDrawPoint)(axMxDrawX1.GetPoint(true, point1.x, point1.y, "点取下一点:"));
if (point2 == null)
return;
//把路径下一个点移到指定位置
//参数一为点的X坐标 ,参数二为点的Y坐标
axMxDrawX1.PathLineTo(point2.x, point2.y);
long id = axMxDrawX1.DrawLine(point1.x, point1.y, point2.x, point2.y);
//创建一个数组
long[] tmpobj = new long[1000];
int iCount = 0;
tmpobj[iCount++] = id;
point1 = point2;
while (true)
{
point2 = (MxDrawPoint)(axMxDrawX1.GetPoint(true, point1.x, point1.y, "点取下一点:"));
if (point2 == null)
break;
axMxDrawX1.PathLineTo(point2.x, point2.y);
id = axMxDrawX1.DrawLine(point1.x, point1.y, point2.x, point2.y);
tmpobj[iCount++] = id;
point1 = point2;
}
for (int i = 0; i < iCount; i++)
{
//由id删除一个对象
axMxDrawX1.Erase(tmpobj[i]);
}
//把路径变成一个Polyline
axMxDrawX1.DrawPathToPolyline();
}
浙公网安备 33010602011771号