CAD中用户选择实体

在CAD的很多操作中都会有需要用户选择实体的时候,这里将我最近项目中用到的方法分享一下,程序原意是希望用户选择一个单行文本或者多行文本,并返回所选文本的内容,直接上代码:

CString CPaintBar::GetEncyrptCode()
{
    CString sNull = _T("");
    //选择单文本或者多文本
    ads_name ent;
    ads_point pt;
    int nRs = acedEntSel(_T("\n请选择加入的内容:"), ent, pt);
    if (RTNORM != nRs)
    {
        AfxMessageBox(_T("获取失败!"));
        acedSSFree(ent);
        return sNull;
    }

    //获得所选实体Id
    AcDbObjectId entId;
    Acad::ErrorStatus es = acdbGetObjectId(entId, ent);
    if (Acad::eOk != es)
    {
        AfxMessageBox(_T("获取id失败!"));
        acedSSFree(ent);
        return sNull;
    }
    acedSSFree(ent);

    //判断所选实体是否是单文本或者多文本
    AcDbEntity *pEnt = NULL;
    es = acdbOpenObject(pEnt, entId, AcDb::kForRead);
    if (Acad::eOk != es)
    {
        AfxMessageBox(_T("获取实体失败!"));
        return sNull;
    }
    CString str;
    if (pEnt->isKindOf(AcDbText::desc()))
    {
        AcDbText *pText = NULL;
        pText = AcDbText::cast(pEnt);
        str = pText->textString();
        pText->close();
    }
    else if (pEnt->isKindOf(AcDbMText::desc()))
    {
        AcDbMText *pmText = NULL;
        pmText = AcDbMText::cast(pEnt);
        str = pmText->contents();
        pmText->close();
    }
    else
    {
        AfxMessageBox(_T("获取实体不是文本类型!"));
        pEnt->close();
        return sNull;
    }
    pEnt->close();
    return str;
}
时间: 2024-10-07 04:33:54

CAD中用户选择实体的相关文章

根据用户选择的实体,确定该实体所在的图层

CString LayerByEnt(AcDbObjectId objId){ //选择实体 ads_name ss; ads_point pt; int nRs = acedEntSel(_T("\n 请选择要删除图层的一个实体:"), ss, pt); if (RTNORM != nRs) { return (_T("选择实体失败!")); } //获得实体ID //AcDbObjectId objId; if (Acad::eOk != acdbGetObje

CAD当前选择实体发生变化调用事件(com接口)

主要用到函数说明: _DMxDrawXEvents::SelectModified 当前选择实体发生变化,会调用该事件,详细说明如下: 参数 说明 IDispatch* pAryId 当前被选择的实体lId,是一个实体lid链表 IDispatch* pModifyId 本次发生变化的对象id数组 VARIANT_BOOL isAdd aryModifyId的对象,是新加入到选择集,还是删除 c#代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?

引言 在我的博客中,我曾经翻译了几篇关于ECS的文章.这些文章都是来自于Game Development网站.如果你对这个架构方式还不是很了解的话,欢迎阅读理解 组件-实体-系统和实现 组件-实体-系统. 我发现这个架构方式,是在浏览GameDev上的文章的时候了解到的.很久以前,就知道了有这么个架构方法,只是一直没有机会自己实践下.这一次,我就抽空,根据网上对ECS系统的讨论,采用了一种实现方法,来实现一个. 我很喜欢做游戏,所以同样的,还是用游戏实例来实践这个架构方法.我将会采用cocos2

如何多方面使用CAD中的插入对象功能?

在CAD中,我们经常都会使用到迅捷CAD编辑器专业版绘制图形,这是一个比较强大的CAD软件,可以帮助用户轻松的完成日常的绘图工作,但是在迅捷CAD编辑器中如何多方面的使用CAD中的插入对象功能呢?具体以该怎么操作?下面小编就来教教大家在迅捷CAD编辑器中如何多方面的使用CAD中的插入对象功能.想要了解的朋友就一起来看看吧. 一.前期工作第一步:首先,在浏览器中搜索迅捷CAD编辑器专业版,进入迅捷CAD官网,鼠标点击下载安装最新版本的CAD编辑器. 第二步:下载安装好迅捷CAD编辑器专业版软件之后

CAD中怎么标注面积,面积是怎样算出来的

在日常的CAD绘图设计工作中,我们常常需要给绘制的CAD图形进行面积标注.当然在标注面积之前我们需要先测量出图形的面积.而且要了解,测量出的图形面积不会自动生成注记,不同于直线标注,面积计算出来后,还需要通过文字编辑进行手动标注.今天小编给大家介绍两种常用的面积测量方法(前提是计算面积的区域必须是闭合区域).具体演示步骤如下: 步骤一:绘制一个闭合区域图形 首先我们运行迅捷CAD编辑器专业版,任意绘制出一个闭合区域图形(这里我们以一个五边形为例). 步骤二:两种常用的面积测量方法 1.面积测量快

HFun.快速开发平台(三)=》通用系统用户选择

系统中用户的选择使用特别多,将该功能统一实现可提升系统效率. 用户的选择实现相对简单,系统中基本都会提供,HFun.快速开发平台中的实现特点主要有: 1.用户的选择分为单用户选择和多用户选择. 2.用户的选择可通过部门进行筛选. 3.可通过用户名进行筛选. 4.提供Url传递默认选中项处理 5.提供全选.反选.取消选择操作. 6.提供回调方法供引用程序自定义数据处理. 7.数据加载.查询筛选使用jquery框架实现. 系统界面如下: 1.单人选择: 2.多人选择:

判断用户选择的日期是否为星期一

在平台中如何判断用户选择的日期是否为星期一?实现代码如下图所示: 原文地址:http://bbs.delit.cn/thread-888-1-1.html 转载请注明出处: 撰写人:度量科技http://www.delit.cn

使用"Visual Studio命令提示"查看cad中的重整函数

AutoCAD2006以前,包括cad2006都是用VC++开发的,从AutoCAD2007开始,Autodesk公司为cad引入的.Net框架.通过平台调用,也就是P/Invoke技术,让.Net代码调用动态链接库中的非托管的C++函数. 要使用P/Invoke技术,首先就需要知道一个C++函数对应的重整函数.什么是重整函数?重整函数,就是C++编译器,对每个函数,根据它的函数名称.参数类型.返回值等生成唯一的函数名.例如,在CAD中,用来为"实体添加永久反应器"的C++函数 add

前端流程实现方法(用户选择记录完成记录并支持server访问更改)

进行用户选择后记录信息并完成记录(关于写入前端信息的详细分析)  chang_jw   将每个页面的<a href->告诉后端server, 按照做server的组员的要求进行更改了网页名称,并做好href信息 后端根据此进行访问网页并更改页面上value. 后端通过console.log()进行调试,获取接口处的id值(如/film ?id, 或 /cinema?id),并通过id值访问并进行接口处的操作. 后端记录这些写入表中等待访问. 通过href = film.html进行当用户选择完