MxDrawUiPrEntity getEntity = new MxDrawUiPrEntity();

        getEntity.message = "选择实体";      

        // 设置选择过滤条件.

        MxDrawResbuf selFilter = new MxDrawResbuf();        

        // 5020是实体类型的DXF组码. DIM是类型。        

        selFilter.AddStringEx("ALIGNEDDIMENSION",5020);

        getEntity.setFilter(selFilter);        

        // 开始选择实体。

        if(getEntity.go() != MCAD_McUiPrStatus.mcOk)            

        return;        

        // 得到选择的实体.

        MxDrawEntity ent = getEntity.Entity();        

        if (ent == null)            

        return;        

        if (!(ent is MxDrawDimAligned) )

        {            

        return;

        }        

        // 得到选择的标注.

        MxDrawDimAligned dimAligned = (MxDrawDimAligned)ent;        

        // 尺寸标注改成60

        double dNewDist = 60.0;        

        // 当前标注的两个点坐标。        

        MxDrawPoint pt1 = dimAligned.XLine1Point;

        MxDrawPoint pt2 = dimAligned.XLine2Point;        

        // 计算pt1到pt2的向量.

        MxDrawVector3d vec = pt2.SumVector(pt1);        

        // 把向量单位化

        vec.Normalize();        

        //把向长度变成新距离.

        vec.Mult(dNewDist);        

        // 算出在新距离下的新的坐标点。

        MxDrawPoint newPt = new MxDrawPoint();

        newPt.x = pt1.x;

        newPt.y = pt1.y;

    

        newPt.Add(vec);    

        // 修改尺寸标注.

        dimAligned.XLine2Point = newPt;

        dimAligned.RecomputeDimBlock(true);        

        // 查找尺寸标的直线段。并修改它。

        MxDrawResbuf filter = new MxDrawResbuf();

        filter.AddStringEx("LINE",5020);

        MxDrawSelectionSet ss = new MxDrawSelectionSet();        

        // 得到标注的开始点上的实体.

        // 搜索精度。

        double dTol = 10;//axMxDrawX1.ViewLongToDocCoord(3);

        MxDrawPoint selPt1 = new MxDrawPoint();

   

        MxDrawPoint selPt2 = new MxDrawPoint();

  

        selPt1.x = pt1.x - dTol;

        selPt1.y = pt1.y - dTol;

        selPt2.x = pt1.x + dTol;

        selPt2.y = pt1.y + dTol;

        ss.Select(MCAD_McSelect.mcSelectionSetCrossing, selPt1, selPt2, filter);    

        // 可能会得到多个实体,遍历所有实体,找到标注的直线对象。

        for(int i = 0;  i < ss.Count;i++)

        {

            MxDrawEntity findEnt = ss.Item(i);            

            if (!(findEnt is MxDrawLine))

            {                

            continue;

            }

            MxDrawLine line = (MxDrawLine)findEnt;            

            // 得到直线的两个点坐标。            

            MxDrawPoint sPt = line.StartPoint;

            MxDrawPoint ePt = line.EndPoint;            

            double dDis1 = sPt.DistanceTo(pt1);            

            double dDis2 = ePt.DistanceTo(pt1);            

            if(dDis1 > dDis2)

            {                

            if (dDis2 > dTol)                    

            continue;                

            if(sPt.DistanceTo(pt2) > dTol)                    

            continue;                

            // 直线的开始点,在pt2附近

                line.StartPoint = newPt;                

                break;

            }            

            else

            {                

            if(dDis1 > dTol)                    

            continue;               

             if(ePt.DistanceTo(pt2) > dTol)                    

             continue;                

             // 直线的结束点,在pt2附近

                line.EndPoint = newPt;                

                break;

            }

        }

        axMxDrawX1.ZoomAll();

CAD修一个标注长度,标注的直线也跟着变化(com接口)相关推荐

  1. candence的图纸大小设置_提前感受一下,CAD高手的字体和标注设置原则

    学CAD的你有这方面的困扰吗? 每次输入多行文字或进行尺寸标注的时候,发现相关的设置样式经常要调整. OK,你不常用,偶尔调整一下并无大碍. 但你总会进入到这个阶段的,今天不妨提前感受一下,CAD高手 ...

  2. cad添加自己线性_如何在CAD图纸中进行线性标注

    在CAD中,都会在图纸中进行CAD标注,一般都是有CAD标注样式.CAD标注文字等.那其中有一个就是CAD线性标注?可以标注图纸间的距离?那如何在CAD图纸中进行线性标注呢?具体要怎么来进行操作?本篇 ...

  3. 【用SW将三维图变成dwg格式的工程图(dwg格式可以直接用CAD打开并进行修改标注)】

    用SW将三维图变成dwg格式的工程图(dwg格式可以直接用CAD打开并进行修改标注) 文章目录 用SW将三维图变成dwg格式的工程图(dwg格式可以直接用CAD打开并进行修改标注) 前言 一.在已经做 ...

  4. 如何在CAD中进行直径符号标注?

    如何在CAD中进行直径符号标注?我们在进行直径测量标注时,想要让尺寸前面显示直径符号该怎么办呢? 1.运行迅捷CAD编辑器进入到软件操作界面.然后在绘图区域绘制一个需要进行标注的几何图形. 2.然后打 ...

  5. 地图定义一个中间不动标注_高精度地图制作(三)

    高精度地图主要用于无人驾驶路径规划,还可以应用于无人驾驶定位,ROI区域过滤等.接下来我们主要来看如何制作高精度地图. 高精度地图制作流程 高精度地图的制作过程分为4个步骤: 地图采集 点云地图制作 ...

  6. 长度标注神器----MarkMan

    "既有爱又给力的长度标注神器!"   -------------- MarkMan 一些新特性: 增加坐标.颜色.文字标记 优化界面设计和交互方式 加入全局放大镜(快捷键同PS) ...

  7. CAD图纸中,提取标注的方法是什么呢?

    在日常CAD制图的时候,常常需要对CAD图纸的标注文字进行检查,若是能够一键提取CAD图纸中的标注到文件,就能够清晰明了检查了.CAD图纸中,提取标注的方法是什么呢?演示操作如下: 1.我们先启动CA ...

  8. 如何在CAD中进行对齐连续标注?

    如何在CAD中进行对齐连续标注?想要让图纸标注看起来更清晰,想让标注工作变得更轻松,我们一般会用到对齐连续标注.那么具体该如何操作呢?下面小编来为你详细讲解. 1.电脑下载迅捷CAD编辑器专业版,鼠标 ...

  9. CAD中如何进行引线标注?

    在CAD制图工作中,很多 时候为了使CAD图纸方便人们理解查看,我们需要对CAD图纸进行标注解释说明.或者说,需要表达出CAD图纸细节表明什么的时候,就可以进行引线标注.那么,CAD中如何进行引线标注 ...

最新文章

  1. 入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型
  2. Spring多数据源配置和使用
  3. RMSE均方根误差学习笔记
  4. 功能、资源权限管理的设计
  5. Nmap个人实战总结
  6. JNDI学习总结(4)——Tomcat下使用Druid配置JNDI数据源
  7. window 显示本机信息的脚本 bat
  8. csv文件转为shp文件
  9. 为什么软件需要数字签名?代码签名证书的作用
  10. Mac上好用的web前端开发工具
  11. 使用postfix和roundcube搭建webemail
  12. 数据平台初试(产品篇)——监控大屏初露面
  13. 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)
  14. Inno setup 常用修改技巧
  15. 【缺氧本体】火箭发射自动化模块
  16. JDK11安装完成后没有jre目录
  17. 如何给你的网站接入第三方支付功能
  18. Spark SQL 内置函数(五)Aggregate Functions(基于 Spark 3.2.0)
  19. C语言-蓝桥杯-算法训练 印章
  20. python 量化投资书_好书推荐:量化投资以Python为工具

热门文章

  1. 内存泄漏、内存溢出、内存越界、段错误、堆溢出、栈溢出
  2. 栈的最小值查找(O1)
  3. 推荐一首好歌 布列瑟农(bressanon)
  4. ajax 与 err_connection_refused,如何在jquery ajax中处理net :: ERR_CONNECTION_REFUSED
  5. oracle 导出blob,Oracle 批量导出Blob文件
  6. 路由选路java,java基于蚁群算法路由选择可视化动态模拟-开题报告
  7. win7计算机应用教程,win7系统使用教程
  8. Matlab浮点数精度问题在计算中的避免方法
  9. 鼠标光标变成黑块变粗导致影响输入的原因以及解决办法
  10. jsp在html文本输入数字只能为正数,如何控制JSP页面上的文本框只能输入数字