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

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

时间: 2024-07-31 17:09:52

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

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

主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE dX2 直线的结束点x坐标 DOUBLE dY2 直线的结束点y坐标 IMxDrawCustomEntity::Draw 把实体绘制到图上.一般用于动态拖放时,在拖放结束时,绘制到图上. c#中实现代码说明: 动态拖放时的绘制事件: private void DrawPathToPolyline()

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

在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dPosX 多行文字位置的X坐标 DOUBLE dPosY 多行文字位置的Y坐标 BSTR pszContents 多行文字的内容 DOUBLE dHeight 多行文字的高度 DOUBLE dWidth 多行文字的显示宽度 DOUBLE dRotation 多行文字的旋转角度 SHORT iAttac

用TextPaint来绘制文字

TextPaint是paint的子类,用它可以很方便的进行文字的绘制,一般情况下遇到绘制文字的需求时,我们一般用TextPaint所提供的方法.开始学习如何绘制文字之前,我们必须要先了解下android中文字是怎么绘制到屏幕上的,文字的格式又是怎么样的. 一.FontMetrics 1.1 理论知识 它是一个Paint的内部类,作用是“字体测量”.它里面呢就定义了top,ascent,descent,bottom,leading五个成员变量其他什么也没有,和rect很相似.如果你不信,我们可以去

IOS开发 图形绘制,绘制线条,矩形,和垂直和居中绘制文字

概述 吐槽下IOS下 的图形绘图,代码冗长,不得不自己重新封装方法.整理形成本文. 绘制线 // 绘制直线 + (void)toDrawLineFromX:(CGFloat)x1 Y:(CGFloat)y1 toX:(CGFloat)x2 toY:(CGFloat)y2 context:(CGContextRef)con{ CGContextMoveToPoint(con, x1, y1); CGContextAddLineToPoint(con, x2, y2); CGContextSetLi

CreateJs系列教程之 EaselJs_1_绘制文字(Text)

核心Js代码: var canvas,     stage,     w = window.innerWidth,     h = window.innerHeight; function init() {     //设置canvas属性     canvas = document.getElementById('game');     canvas.width = w;     canvas.height = h;     //创建舞台     stage = new createjs.St

使用canvas与Paint在View中居中绘制文字

本博客只要没有注明"转",那么均为原创,转贴请注明本博客链接链接 我们在自定义View中有的时候会想自己绘制文字,自己绘制文字的时候,我们通常希望把文字精确定位,文字居中(水平.垂直)是普遍的需求,所以这里就以文字居中为例,看一下android中的文字应该如何绘制,它与Java又有什么区别. 先来看看我们的目标,见下图 上图是我打开了"显示布局边界"后截的图,所有会有好多框框. 仔细观察上图文字区域,我们会发现文字区域中有5条颜色不同的线.按着从上到下的顺序,他们的

4. Quartz2D 绘制文字

#pragma mark 绘制文字(中文) -(void)drawText2:(CGContextRef)context{ NSString *string = @"博阿士大夫撒风景撒开了房间撒"; //1.获取字体 NSLog(@"%@",[UIFont familyNames]); UIFont *font = [UIFont fontWithName:@"Marker Felt" size:20]; //如果在UILabel中,可以将num