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

posted on 2019-07-03 14:15  梦想CAD控件  阅读(600)  评论(0)    收藏  举报

导航