CAD偏移曲线(com接口c#语言)
主要用到函数说明:
IMxDrawCurve::OffsetCurves
曲线偏移,具体说明如下:
| 参数 | 说明 |
|---|---|
|
[in] DOUBLE dOffsetDist |
偏移距离 |
|
[in] IMxDrawPoint* ptOffsetRef |
偏移方向参考点,曲线向该点所在位置偏移 |
|
[out] IMxDrawResbuf** aryNewId |
返回偏移后新生成的曲线id数组 |
c#代码实现如下:
private void OffsetCurves()
{
MxDrawUtility mxUtility = new MxDrawUtility();
object getPt;
MxDrawEntity ent = mxUtility.GetEntity(out getPt,"选择编移的曲线:");
if (ent == null)
return;
MxDrawCurve curve;
if(ent is MxDrawCurve)
{
curve = (MxDrawCurve)ent;
} else
{
MessageBox.Show("实体类型不对");
return;
}
MxDrawPoint getPt1 = (MxDrawPoint)(mxUtility.GetPoint(null, "点取偏移位置:"));
if (getPt1 == null)
{
MessageBox.Show("用户取消..");
return;
}
MxDrawPoint getPt2 = (MxDrawPoint)(mxUtility.GetPoint(getPt1, "点取偏移距离:"));
if (getPt2 == null)
{
MessageBox.Show("用户取消..");
return;
}
Double dis = (getPt1.x - getPt2.x) * (getPt1.x - getPt2.x) + (getPt1.y - getPt2.y) * (getPt1.y - getPt2.y);
dis = Math.Sqrt(dis);
object objId;
if(curve.OffsetCurves(dis, getPt1, out objId) )
{
MxDrawResbuf rbId = (MxDrawResbuf)objId;
MessageBox.Show("偏移生成的曲线个数:" + rbId.Count);
}
}
|