CAD打断曲线(com接口c#语言)

主要用到函数说明:

IMxDrawCurve::SplitCurves

打断曲线,详细说明如下:

参数说明

[in] IMxDrawResbuf* aryParam

打断位置参数数组,或打断的点数组,是个MxDrawResbuf对象

[out] IMxDrawResbuf** aryNewId

返回打断后生成的新曲线id,是个MxDrawResbuf对象

c#代码实现如下:

    private void DoSplitCurves()
    {
        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;
        }
        MxDrawResbuf param = new MxDrawResbuf();
        param.AddPoint(getPt1, -10);
 
        object objId;        
        if (curve.SplitCurves(param,out objId))
        {
            MxDrawResbuf rbId = (MxDrawResbuf)objId;
            MessageBox.Show("打断成功,生成的曲线个数:" + rbId.Count);            
            // 把以前的删除掉。
            ent.Erase();
        }        
        else
        {
            MessageBox.Show("打断失败");
        }
    }

posted on 2019-07-03 13:53  梦想CAD控件  阅读(471)  评论(0)    收藏  举报

导航