CAD交互绘制矩形框(com接口)

主要用到函数说明:

_DMxDrawX::DrawLine

绘制一个直线。详细说明如下:

参数 说明

DOUBLE dX1


直线的开始点x坐标


DOUBLE dY1


直线的开始点y坐标


DOUBLE dX2


直线的结束点x坐标


DOUBLE dY2


直线的结束点y坐标

IMxDrawCustomEntity::Draw

把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。

c#中实现代码说明:

动态拖放时的绘制事件:

private void DrawPathToPolyline()
{
    // 创建一个与用户交互取点的对象。
    MxDrawPoint point1 = (MxDrawPoint)axMxDrawX1.GetPoint(false, 0, 0, "\n 点取开始点:");
    if (point1 == null)
    {
        return;
    }
    MxDrawUiPrPoint getSecondPt = new MxDrawUiPrPoint();
    getSecondPt.message = "第二点";
    getSecondPt.basePoint = point1;
    //不开启皮筋效果
    getSecondPt.setUseBasePt(false);
    //调用
    var spDrawData = getSecondPt.InitUserDraw("TestDynDrawMatrix1");
    // 设置动态绘制参数.
    spDrawData.SetPoint("BasePoint", point1);
    // 开始取第二个点。
    if (getSecondPt.go() != MCAD_McUiPrStatus.mcOk)
        return;
    var ret = spDrawData.Draw();
}

动态绘制矩形框:

private void axMxDrawX1_DynWorldDraw(object sender, AxMxDrawXLib._DMxDrawXEvents_DynWorldDrawEvent e)
{
    MxDrawCustomEntity pCustomEntity = (MxDrawCustomEntity)e.pData;
    MxDrawWorldDraw pWorldDraw = (MxDrawWorldDraw)e.pWorldDraw;
    string sGuid = pCustomEntity.Guid;

    MxDrawPoint curPoint = new MxDrawPoint();

    curPoint.x = e.dX;
curPoint.y = e.dY;
    if(sGuid == "TestDynDrawMatrix1")
    {
        //与用户交互在图面上提取一个点
        var vBasePt = pCustomEntity.GetPoint("BasePoint");
        //绘制一个直线
        //参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标
        pWorldDraw.DrawLine(vBasePt.x, vBasePt.y, vBasePt.x, curPoint.y);
        pWorldDraw.DrawLine(vBasePt.x, curPoint.y, curPoint.x, curPoint.y);
        pWorldDraw.DrawLine(curPoint.x, curPoint.y, curPoint.x, vBasePt.y);
        pWorldDraw.DrawLine(curPoint.x, vBasePt.y, vBasePt.x, vBasePt.y);
    }
}

原文地址:https://www.cnblogs.com/yzy0224/p/11064812.html

时间: 2024-08-28 19:02:08

CAD交互绘制矩形框(com接口)的相关文章

CAD交互绘制文字(com接口)

在cad设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOUBLE dPosX >文字的位置的X坐标 DOUBLE dPosY 文字的位置的Y坐标 BSTR pszText 文字内容字符串 DOUBLE dHeight 文字高度 DOUBLE dRotation 文字的旋转角度 SHORT horizontalMode 文字的水平对齐方式,0=kTextLeft,1=kTex

CAD交互绘制带周长面积的矩形框(com接口)

主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE dX2 直线的结束点x坐标 DOUBLE dY2 直线的结束点y坐标 _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOUBLE dPosX >文字的位置的X坐标 DOUBLE dPosY 文字的位置的Y坐标 BSTR pszText 文字内容字符串 DOUB

用canvas实现鼠标拖动绘制矩形框

需要用到jCanvas插件和jQuery. jCanvas下载:https://raw.githubusercontent.com/caleb531/jcanvas/master/jcanvas.min.js 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠标拖动绘制矩形框(canvas)</ti

Skyline实现橡皮筋效果绘制矩形框

这种类似于框选的效果用的比较普遍,一般三维平台和GIS平台都提供了支持接口,可是Skyline就是这么傲娇! 思路是这样的:绘制出的矩形框应该是一直与屏幕边框平行的,也就是矩形框的实际旋转角度是等于摄像机的偏移角YAW值的,这样我们只要知道矩形的宽度,用矩形的两个对角点沿摄像机方向或者沿摄像机反方向延长一个宽度的距离就能得到矩形的另外两个点了.这个宽度利用两个对角点的距离和摄像机偏移角度很容易就能算出来,就不赘叙了. 最核心的代码就是正确计算矩形对角线与水平方向的夹角了: 1 //计算矩形对角点

C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框

最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置.网上查了一些感觉他们做的挺复杂的.我自己研究一天,做了一个比较简单的,发表出来供大家参考一下.如觉得简单,可路过,谢谢.哈哈. 先大概介绍一下原因,GDI画矩形框就不说了,很简单的.这里面最主要的就是滚轮放大和左键移动两个事件,要计算矩形框的坐标位置.下面将代码贴出如下: 先是定义需要的变量,就四个变量. //矩形框坐标        private Rectangle DrawRect = new Rectangle(0, 0

CAD参数绘制文字(com接口)

在CAD设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOUBLE dPosX >文字的位置的X坐标 DOUBLE dPosY 文字的位置的Y坐标 BSTR pszText 文字内容字符串 DOUBLE dHeight 文字高度 DOUBLE dRotation 文字的旋转角度 SHORT horizontalMode 文字的水平对齐方式,0=kTextLeft,1=kTex

CAD参数绘制点(com接口)

点在CAD中的作用除了可以分割对象外,还能测量对象,点不仅表示一个小的实体,而且通过点作为绘图的参考标记. pdmode是一个控制point的形式的系统变量,当pdmode=0时是可见的一个点,当pdmode=1时是一个不可见的点,但仍存在.pdmode=2时是一个十字,pdmode=3时是一个叉子,将值指定为 32.64 或 96,除了绘制通过点的图形外,还可以选择在点的周围绘制形.PDSIZE是设置点对象的显示大小.正的PDSIZE值指定点图形的绝对尺寸.负值将解释为视口大小的百分比.重生成

CAD参数绘制椭圆(com接口)

在CAD设计时,需要绘制椭圆,用户可以设置椭圆的基本属性. 主要用到函数说明: _DMxDrawX::DrawEllipse 绘制椭圆.详细说明如下: 参数 说明 DOUBLE dCenterX 椭圆的中心点X坐标 DOUBLE dCenterY 椭圆的中心点Y坐标 DOUBLE dMajorAxisX 椭圆的主轴向量X值 DOUBLE dMajorAxisY 椭圆的主轴向量Y值 DOUBLE dRadiusRatio 椭圆的副轴长度与主轴长度的比值 C#中实现代码说明: private voi

CAD参数绘制圆弧(com接口)

在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧. 主要用到函数说明: _DMxDrawX::DrawArc2 由圆弧上的三点绘制一个圆弧.详细说明如下: 参数 说明 DOUBLE dStartPointX 开始点X坐标 DOUBLE dStartPointY 开始点Y坐标 DOUBLE dMidPointX 圆弧上的一点X坐标 DOUBLE dMidPointY 圆弧上的一点Y坐标 DOUBLE dEndPointX 结束点X坐标 DOUBLE