0
点赞
收藏
分享

微信扫一扫

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);​

​}​

​}​

举报

相关推荐

0 条评论