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

Posted yzy0224

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAD交互绘制文字(com接口)相关的知识,希望对你有一定的参考价值。

在cad设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性。


主要用到函数说明:


_DMxDrawX::DrawText


绘制一个单行文字。详细说明如下:


参数 说明

DOUBLE dPosX

>文字的位置的X坐标

DOUBLE dPosY

文字的位置的Y坐标

BSTR pszText

文字内容字符串

DOUBLE dHeight

文字高度

DOUBLE dRotation

文字的旋转角度

SHORT horizontalMode

文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight

SHORT verticalMode

文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop


c#中实现代码说明:


动态拖放时的绘制事件:


private void DrawText()

    // 创建一个文字样式,用于批注文字字体.
    axMxDrawX1.AddTextStyle2("MyCommentFont", "黑体", 0.7);
    // 创建一个与用户交互取点的对象。
    MxDrawUiPrPoint getPt = new MxDrawUiPrPoint();
    getPt.message = "点取插入点";
    // 设置动态绘制参数.
    var spDrawData = getPt.InitUserDraw("DrawText");
    spDrawData.SetString("Text", "黄洪辉");
    spDrawData.SetDouble("TextHeight", 100);
    // 开始取第一个点。
    if (getPt.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 == "DrawText")
    
        // 得到绘制参数.
        string sText = pCustomEntity.GetString("Text");
        double dTextHeight = pCustomEntity.GetDouble("TextHeight");
        // 绘制文字
        pWorldDraw.DrawText(curPoint.x, curPoint.y, sText, dTextHeight, 0, MCAD_McHorizontalAlignment.mcHorizontalAlignmentCenter, MCAD_McVerticalAlignment.mcVerticalAlignmentBottom);
    

以上是关于CAD交互绘制文字(com接口)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

CAD绘制多行文字

CAD绘制单行文字(网页版)

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

CAD绘一个文字自动剧中的标注 (com接口)