(17)ObjectARX2015 + vs2012创建块定义
1. 说明
3. 步骤
(1)用户输入块定义的名称,使用 acedGetString 函数来获得用户输入的字符串,
acedGetString 函数函数定义为:
//acedGetString 函数函数定义为
//使用 acedGetString 函数来获得用户输入的字符串
int acedGetString( int cronly, //cronly 指定用户输入的字符串中是否可以包含空格,可以输入 Adesk::kTrue 或者 Adesk::kFalseconst char * prompt, //prompt 指定了在命令行提示用户输入的文本char * result); //result 则保存了用户输入的结果
(2)在CCreateEnt中添加函数AddBlk()
//添加块static void AddBlk(); //添加块
//添加块
void CCreateEnt::AddBlk()
{ // 获得当前图形数据库的块表AcDbBlockTable *pBlkTbl;acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlkTbl, AcDb::kForWrite);// 创建新的块表记录AcDbBlockTableRecord *pBlkTblRcd;pBlkTblRcd = new AcDbBlockTableRecord();// 根据用户的输入设置块表记录的名称TCHAR blkName[40];if (acedGetString(Adesk::kFalse, _T("\n输入图块的名称:"), blkName) != RTNORM){pBlkTbl->close();delete pBlkTblRcd;return;}pBlkTblRcd->setName(blkName);// 将块表记录添加到块表中AcDbObjectId blkDefId;pBlkTbl->add(blkDefId, pBlkTblRcd);pBlkTbl->close();// 向块表记录中添加实体AcGePoint3d ptStart(-10, 0, 0), ptEnd(10, 0, 0);AcDbLine *pLine1 = new AcDbLine(ptStart, ptEnd); // 创建一条直线ptStart.set(0, -10, 0);ptEnd.set(0, 10, 0);AcDbLine *pLine2 = new AcDbLine(ptStart, ptEnd); // 创建一条直线AcGeVector3d vecNormal(0, 0, 1);AcDbCircle *pCircle = new AcDbCircle(AcGePoint3d::kOrigin, vecNormal, 6); AcDbObjectId entId;pBlkTblRcd->appendAcDbEntity(entId, pLine1);pBlkTblRcd->appendAcDbEntity(entId, pLine2);pBlkTblRcd->appendAcDbEntity(entId, pCircle);// 关闭实体和块表记录pLine1->close();pLine2->close();pCircle->close();pBlkTblRcd->close();
}
(3)在acrxEntryPoint.cpp中
ACED_ARXCOMMAND_ENTRY_AUTO(CArxConfigApp, MidasMyGroup, MyAddBlk, MyAddBlk, ACRX_CMD_MODAL, NULL) //创建块
//当前项目中注册一个命令 AddBlkstatic void MidasMyGroupMyAddBlk(){//添加长方体CCreateEnt::AddBlk();}
效果展示:
(17)ObjectARX2015 + vs2012创建块定义相关推荐
- (15)ObjectARX2015 + vs2012创建三维实体
1. 说明 ObjectARX 中提供了三类创建三维实体的方法: (1)创建标准形状的实体 (2)拉伸面域创建实体 ...
- (7)ObjectARX2015 + vs2012创建多段线以及实体的旋转移动放缩
提示:看之前的博客(1)和(4),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线_qq_ ...
- (9)ObjectARX2015 + vs2012创建面域
提示:看之前的博客(1)和(4),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线_qq_ ...
- (14)ObjectARX2015 + vs2012创建和编辑对象时的动态拖动技术
提示:看之前的博客(1)(4)和(12),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线 ...
- (6)ObjectARX2015 + vs2012创建圆弧
提示:看之前的博客(1)和(4),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线_qq_ ...
- (12)ObjectARX2015 + vs2012创建尺寸标注
提示:看之前的博客(1)和(4),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线_qq_ ...
- (18)ObjectARX2015 + vs2012插入块参照
1. 说明 本例允许用户输入一个块参照的名称,指定块参照的插入点等参数,然后将块参照插 入到模型空间. 2. 思路 AutoCAD 有块定义和块参照两个概念.这两个概念 ...
- (24)ObjectARX2015 + vs2012创建字体样式
1. 说明 AutoCAD 中可以使用 STYLE 命令创建新的字体样式,包括 设置样式名. 选择字体文件. ...
- cad二次开发-C#-VS-镜像-判断用户当前是否已选择实体-将实体对象添加到模型空间-添加实体到块表记录-将块定义插入到模型空间
创建新图层 public static void CreateLayer(string LayerName){Document acDoc = Application.DocumentManager. ...
最新文章
- ios转向前端进阶之:html标签类型
- Jetty开发指导:框架
- Python3算法基础练习:编程100例( 31 ~ 35 )
- 攻防世界-web-bug-从0到1的解题历程writeup
- 阿里云微服务引擎MSE网关功能,开启微服务“大门”云化时代
- EOJ_1081_朋友圈
- 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析
- Android之使用IDA Pro静态分析so文件
- python创建一个包,如何从python包创建一个osx应用程序/ dmg?
- BugkuCTF-WEB题cookie欺骗
- Java ByteArrayOutputStream size()方法与示例
- 用计算机将复数转换成角度,卡西欧FX-991ES计算器能计算电路里的复数加减乘除然后换算成角度吗?...
- “茴”字有几种写法?
- 计算机学院毕业礼物,史上最全毕业礼物攻略,绝对不能错过!
- 流程图(flowchart)语法
- 基于JAVA第二课堂选课系统计算机毕业设计源码+系统+lw文档+部署
- 品牌营销策略:适合初创公司的5种营销方式
- 如何恢复移动硬盘数据?
- 机器学习和深度学习资料
- 如何根据选股条件选择基本面量化股票池?