CAD得到所有实体1】的更多相关文章

本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h","acadstrc.h", "geassign.h". 2.在该类头文件的类声明中添加宏:ACRX_DECLARE_MEMBERS(EntTest); 3.在该类的cpp文件中,类的前面添加宏: ACRX_DXF_DEFINE_MEMBERS(EntTest, AcDbEntity…
在cad使用过程中,用户可以绘制自定义实体.点击此处下载演示实例. 调用DrawCustomEntity函数,绘制一个自定义实体对象. 下面代码绘制一个自定义实体,C#代码实现如下: private void DrawMlineCommand() { MxDrawUiPrPoint getPt = new MxDrawUiPrPoint(); getPt.message = "点取第一点"; if (getPt.go() != MCAD_McUiPrStatus.mcOk) { ret…
本篇不从零开始讲如何制造自定义图元,而是教新手们如何设置了环境之后编译张帆书中的代码. 利用vs2010编译 张帆<AutoCAD ObjectARX(VC)开发基础与实例教程>一书中的自定义图元课程代码. 因为张帆都敲完了,我们肯定要先编译一下他的,再仔细地去看他的书,来学习c++, 看懂代码这种事情,就教给各位自己去学习.... 诉求点: 张帆书中所使用的vs2005很破旧,但是开发环境必须有,它有平台集v80. 而vs2010敲代码比vs2005好,ctrl+鼠标滚大字体等等,也就诞生出…
主要用到函数说明: IMxDrawSelectionSet::AllSelect 得到当前空间的所有实体.详细说明如下: 参数 说明 [in,defaultvalue(NULL)] IMxDrawResbuf* filterData 过滤条件 js中使用如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 function AllSelect() {     //实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数.     var  ss = mxOcx.NewSelect…
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::explode 把自定义实体,变成普通实体,详细说明如下: 参数 说明 LONGLONG lEntity 自定义实体id LONGLONG lBlkRecId 用来临时普通实体的块表记录id 代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35…
主要用到函数说明: IMxDrawSelectionSet::AllSelect 得到当前空间的所有实体.详细说明如下: 参数 说明 [in,defaultvalue(NULL)] IMxDrawResbuf* filterData 过滤条件 js中使用如下: function AllSelect() { //实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. var ss = mxOcx.NewSelectionSet(); //构造一个过滤链表 var spFilte = mxOc…
主要用到函数说明: IMxDrawSelectionSet::Select2 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARIANT point1 构造择择集时需要使用到的点对象 [in] VARIANT point2 构造择择集时需要使用到的点对象 [in,optional] VARIANT filterType 构造选择集的过滤数据的类型 [in,optional] VARIANT filterData 构造选择集的过…
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::moveGripPointsAt 自定义实体事件,自定义实体夹点被移动,详细说明如下: 参数 说明 LONGLONG lEntity 自定义实体id IN LONG lGridIndex 夹点索引号 IN McGePoint3d vec 夹点移动的向量 VB代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24…
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::getGripPoints 自定义实体事件,得到拖放夹点,详细说明如下: 参数 说明 LONGLONG lEntity 自定义实体id OUT AcGePoint3dArray& gripPoints 返回要拖放的夹点 VB代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23             If sEve…
主要用到函数说明: _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…
  本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h","acadstrc.h", "geassign.h". 2.在该类头文件的类声明中添加宏:ACRX_DECLARE_MEMBERS(EntTest); 3.在该类的cpp文件中,类的前面添加宏: ACRX_DXF_DEFINE_MEMBERS(EntTest, AcDbEnti…
本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h","acadstrc.h", "geassign.h". 2.在该类头文件的类声明中添加宏:ACRX_DECLARE_MEMBERS(EntTest); 3.在该类的cpp文件中,类的前面添加宏: ACRX_DXF_DEFINE_MEMBERS(EntTest, AcDbEntity…
测试结果: 实现方法:主要是程序注册一个消息函数:func,拦截鼠标滚轮触发的消息,需要注意的是,以写的方式处理实体时需要锁定文档.注册func的主要方法是:BOOL acedRegisterFilterWinMsg( const AcedFilterWinMsgFn pfn);AcedFilterWinMsgFn 这个类型 是一个函数指针,其实他是这样的:typedef BOOL (* AcedFilterWinMsgFn)(MSG*);接受一个MSG *的参数,返回BOOL类型的函数. 这个…
在CAD中,属性信息一般是以注记的形式存在,但当属性数据内容较多时,显示就成了问题.扩展属性(Xdata)可以解决这一问题,比如南方Cass中就利用了这一点.我们经常用Lisp来读取操作扩展属性. 查看实体属性信息: (entget(car(entsel))'("*")) 但我们为了方便与GIS交互,我们得在.NET中来读取.修改CAD文件中实体的扩展属性.本文先只讲解怎么读取扩展属性. 第一步,不管怎么样,都要先打开文件,获取文档,选择对象,获取实体.下面这段代码在测试中肯定会经常用…
在CAD的很多操作中都会有需要用户选择实体的时候,这里将我最近项目中用到的方法分享一下,程序原意是希望用户选择一个单行文本或者多行文本,并返回所选文本的内容,直接上代码: CString CPaintBar::GetEncyrptCode() { CString sNull = _T(""); //选择单文本或者多文本 ads_name ent; ads_point pt; int nRs = acedEntSel(_T("\n请选择加入的内容:"), ent, p…
本例实现的主要功能是读取excel文档中的内容,其次是将按照读取的信息在当前cad图纸中添加相应的实体.下面先介绍实现代码: CString excelPath; //外部excel文档的地址 UpdateData();//将对话框中的数据复制给变量 if (m_excelPath == _T("")) { MessageBox(_T("地址不能为空,请选择Excel文档!")); return; } else { excelPath = m_excelPath;/…
经常,需要在CAD中插入块,比如图框,它的类型是INSERT,而不是Line和PolyLine.一般情况下,我们是不会去编辑它的,但有的时候需要选择它,比如在选择打印范围时,默认为过滤掉INSERT类型(其实这是不合理的,考虑不周全的),所以现在要将块转为实体. 直接使用CAD分解(EXPLODE)命令即可.它会把块直接分成四条线(Line). 但这里有成百上千幅dwg图都要做这样的处理,那当然只有使用指处理工具.关于图中这个批量处理工具,后面我会专门来分享. (Defun c:Test ()…
自定义实体的实现 1 .       自定义实体... 3 1.1      说明... 3 1.2      类的类型信息... 3 1.3      worldDraw.. 4 1.4      getGripPoints 4 1.5      moveGripPointsAt 5 1.6      getGeomExtents 6 1.7      getOsnapPoints 6 1.8      explode. 7 1.9      dwgInFields 8 1.10    dwg…
主要用到函数说明: IMxDrawSelectionSet::CurrentSelect 得到当前已经选择的实体.详细说明如下: 参数 说明 filterData 过滤条件 js中使用如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 function CurrentSelect() {     //实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数.     var ss = mxOcx.Ne…
主要用到函数说明: IMxDrawSelectionSet::Select 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARIANT point1 构造择择集时需要使用到的点对象 [in] VARIANT point2 构造择择集时需要使用到的点对象 [in,optional] VARIANT filterData 构造选择集的过滤数据 可以取如下值 mcSelectionSetWindow = 0, mcSelection…
主要用到函数说明: IMxDrawSelectionSet::Select2 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARIANT point1 构造择择集时需要使用到的点对象 [in] VARIANT point2 构造择择集时需要使用到的点对象 [in,optional] VARIANT filterType 构造选择集的过滤数据的类型 [in,optional] VARIANT filterData 构造选择集的过…
由一个自定义实体事件中的id得到自定义实体对象.该函数只能在自定义实体事件中调用. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 If sEventName = "MxDrawXCustomEntity::explode" Then               Dim param66 As…
主要用到函数说明: IMxDrawUtility::GetEntity 与用户交互到在图面上选择一个实体,详细说明如下: 参数 说明 [out] IMxDrawPoint** pPickPoint 返回实体的选择点 [in] BSTR prompt 选择实体时的提示字符串 代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Set mxUtility = New MxDrawXLib.MxDrawUtility Dim getPt As…
主要用到函数说明: IMxDrawSelectionSet::Select 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARIANT point1 构造择择集时需要使用到的点对象 [in] VARIANT point2 构造择择集时需要使用到的点对象 [in,optional] VARIANT filterData 构造选择集的过滤数据 可以取如下值 mcSelectionSetWindow = 0, mcSelection…
1,修正得组里面的实体,把删除实体也返回的错误   2,修正代理实体改不了颜色问题.   3,修正捕捉块插入点,有时会跑到很远的位置问题.   4.MxDrawChange类增加ToBlockReference函数   5.增加MxDraw::DrawToJpgBase64,Mx_DrawToJpgBase64函数,把图纸上的内容保存为Base64字符编码的jpg图片   6.增加Mx_ClearAllHighlight函数,清除图上的所有高亮实体   7.修改缩放实体命令,在动态输入打开后,不…
1. 实现步骤: 3 1. 实现步骤: 参考例子 :Src\MxDraw5.2\samples\ie\iedemoTest.htm 1) 增加自定义实体对象 调用DrawCustomEntity函数,绘制一个自定义实体对象 函数说明如下: JS例子,下面代码绘制一个自定义实体,设置了两个属性,属性名分别” startpoint”,” endpoint”的两个点坐标, // 插入自定义实体函数 function InsertCustomEntity() { var getPt = mxOcx.Ne…
主要用到函数说明: IMxDrawSelectionSet::Select2 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARIANT point1 构造择择集时需要使用到的点对象 [in] VARIANT point2 构造择择集时需要使用到的点对象 [in,optional] VARIANT filterType 构造选择集的过滤数据的类型 [in,optional] VARIANT filterData 构造选择集的过…
一.增加自定义实体对象 调用DrawCustomEntity函数,绘制一个自定义实体对象. 下面代码绘制一个自定义实体,C#代码实现如下: private void DrawMlineCommand() {     MxDrawUiPrPoint getPt = new MxDrawUiPrPoint();     getPt.message = "点取第一点";     if (getPt.go() != MCAD_McUiPrStatus.mcOk)     {         r…
主要用到函数说明: MxDrawXCustomFunction::Mx_TwinkeEnt 闪烁实体.详细说明如下: 参数 说明 McDbObjectId id 被闪烁的实体对象id LONG lCount = -1 闪烁次数,默认为-1表示不限闪烁次数 js中使用如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");   selEnt.message = &q…
主要用到函数说明: _DMxDrawX::AddCurrentSelect 把实体放到当前选择集中,详细说明如下: 参数 说明 LONGLONG lId 实体id VARIANT_BOOL isShowGrid 是否同时显示夹点,默认为TRUE isUpdateDisplay 是否自动调用更新显示 js代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 functi…