返回介绍

绘制标记

发布于 2023-08-09 23:10:34 字数 6434 浏览 0 评论 0 收藏 0

主要用到函数说明:

函数名:MxDraw::GetCursorPickRect

返回拾取矩形框的宽度,默认值为6。详细说明如下:

参数说明
IN MXDRAWOCXHANDLE hOcx控件窗口句柄
OUT int& iWidth返回光标拾取框的大小,光标拾取框是个矩形框,宽度等于高度

函数名:_DMxDrawX::ViewLongToDocCoord

视区长度到文档长度变换。详细说明如下:

参数说明
DOUBLE dLong视区长度

函数名:_DMxDrawX::DrawVectorLine

绘制矢量线。详细说明如下:

参数说明
DOUBLE dX1开始点X值
DOUBLE dY1开始点Y值
DOUBLE dX2结束点X值
DOUBLE dY2结束点Y值
LONG lColor颜色

函数名:_DMxDrawX::DrawVectorCircle

绘制矢量圆。详细说明如下:

参数说明
DOUBLE dCenX失量圆中心点X,文档坐标
DOUBLE dCenY失量圆中心点Y,文档坐标
DOUBLE dR失量圆半径,,文档坐标
LONG lColor颜色

js中代码实现说明:

//循环
while(true)
{
    //新建一个COM组件对象 参数为COM组件类名
    var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
    getPt.message = "点取绘制点";
    if(getPt.go() != 1)
    {
        return;
    }
    var frstPt = getPt.value();
    if(frstPt == null)
        return;
    //返回拾取矩形框的宽度,默认值为6
    var dLen = mxOcx.GetCursorPickRect();
    //视区长度到文档长度变换
    dLen = mxOcx.ViewLongToDocCoord(dLen);
    dLen *= 3.0;
    //绘制失量线
    //参数一为开始点X值;参数二为开始点Y值;参数三为结束点X值;参数四为结束点Y值;参数五为颜色

    mxOcx.DrawVectorLine(frstPt.x - dLen,frstPt.y - dLen,
        frstPt.x + dLen,frstPt.y + dLen,
        255
    );
    mxOcx.DrawVectorLine(frstPt.x - dLen,frstPt.y + dLen,
        frstPt.x + dLen,frstPt.y - dLen,
        255
    );
    //绘制失量圆
    //参数一为失量圆中心点X,文档坐标 ;参数二为失量圆中心点Y,文档坐标;参数三为失量圆半径,文档坐标;参数四为颜色
    mxOcx.DrawVectorCircle(frstPt.x,frstPt.y,
        dLen * 0.5, 65280);
    //更新当前控件的显示
    mxOcx.UpdateDisplay();
}

效果展示:

用户可以通过点击绘制标记按钮,可以在CAD控件视区的任何位置绘制标记。如下图所示:

drawflag.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文