当前位置: 首页 > news >正文

孝感网站推广公众号文章制作

孝感网站推广,公众号文章制作,wordpress黑糖,崇明集团网站建设ObjectArx创建自定义块 一. 目的仿照AutoCad的Block命令#xff0c;实现简版创建块功能!二. 开发环境Win7操作系统#xff0c;AutoCad2012#xff0c; VS2008, ObjectArx_SDK_2012三. 相关函数简介1) int acedSSGet (const ACHAR *str, const void *pt1,const void *pt2…ObjectArx创建自定义块 一. 目的仿照AutoCad的Block命令实现简版创建块功能!二.  开发环境Win7操作系统AutoCad2012 VS2008, ObjectArx_SDK_2012三. 相关函数简介1) int acedSSGet (const ACHAR *str, const void *pt1,const void *pt2, const struct resbuf *filter,ads_name ss);  选择集个人理解就是让你一次可以选择多个实体与之相似的acedEntSel()一次只能选择一个实体2) int acedSSName (const ads_name ss, AdInt32 i, ads_name entres)既然选择了多个实体我怎么得到其中的每一个实体呢次函数即可让你得到选择实体中的任一个参数二相当于索引参数三就是还回的实体名3Acad::ErrorStatus acdbGetObjectId(AcDbObjectId objId,const ads_name objName);通过实体名获取实体ID与之相同的另外几个函数指针句柄ads_name之间的转换acdbopenAcDbEntityobjectidgetAcDbObjectacdbGetObjectidacdbGetAdsName等四.代码实现流程 1) 首先我们得获取实体保存这些实体的ID实现代码void MyBlock::GetPickEntity(AcDbObjectIdArray idObjectArray){ads_name adsName;AdInt32 ssLen;acedSSGet(NULL, NULL, NULL, NULL, adsName);acedSSLength(adsName, ssLen);idObjectArray.removeAll();for (INT32 i 0; i ssLen; i){ads_name entityName;acedSSName(adsName, i, entityName);AcDbObjectId entityID;acdbGetObjectId(entityID, entityName);idObjectArray.append(entityID); }acedSSFree(adsName);}2) 从当前块表中查看是否已存在此块名记录没有则创建新的块表记录将选择的实体Clone一份插入到新的块表记录中切记关闭所有的数据库对象实现代码代码有点渣Acad::ErrorStatus MyBlock::CreateBlock(const CString strBlockName, const AcDbObjectIdArray idObjectArray){AcDbBlockTable *pBlockTable NULL;Acad::ErrorStatus es acdbHostApplicationServices()-workingDatabase()-getBlockTable(pBlockTable, AcDb::kForRead);if (Acad::eOk ! es){return es;}if (Adesk::kTrue pBlockTable-has(strBlockName)){pBlockTable-close();return es;}AcDbBlockTableRecord *pBlockTableRcd new AcDbBlockTableRecord();es pBlockTableRcd-setName(strBlockName);es pBlockTableRcd-setOrigin(AcGePoint3d::kOrigin);es pBlockTable-upgradeOpen();if (Acad::eOk ! es){pBlockTableRcd-close();pBlockTable-close();return es;}es pBlockTable-add(pBlockTableRcd);if (Acad::eOk ! es){ pBlockTable-close();pBlockTableRcd-close();return es;}pBlockTable-close();AcGeMatrix3d mat;mat.setToIdentity();for (INT32 i 0; i idObjectArray.length(); i){AcDbEntity *pEntity NULL;es acdbOpenAcDbEntity(pEntity, idObjectArray.at(i), AcDb::kForRead);if (Acad::eOk ! es){acDocManager-unlockDocument(curDoc());pBlockTableRcd-close();return es;}AcDbEntity *pNewEntity AcDbEntity::cast(pEntity-clone());es pBlockTableRcd-appendAcDbEntity(pNewEntity);if (Acad::eOk ! es){acDocManager-unlockDocument(curDoc());pBlockTableRcd-close();pEntity-close();pNewEntity-close();return es;}pEntity-close();pNewEntity-close();}pBlockTableRcd-close();return es;}三.创建非模式对话框继承自CAcUiDialog类 具体添加一些控件与消息响应以及还未完成的非模式对话框销毁(DestoryWindow)就不一一叙述了五. 成果截图 1执行自定义命令点击拾取我这里选择3条边与一个圆总共4个对象joke为新块名然后点击创建2在命令提示符输入指令insert即可预览刚才创建的新块3点击确定即可在Cad工作区添加此块然后可点击颜色如下:4)这里我先则蓝色即可改变刚才插入新块的颜色:六. 源码 源码地址http://download.csdn.net/detail/u012158162/9795717七 后序 A. 由于个人技术原因以及刚接触Cad与ObjectArx几天其中难免有些胡说八道请见谅B. 程序中修改块的颜色存在Bug以及没对MFC的对话框销毁做处理C. 祝大家学习是艰辛的生活是快乐的
http://www.yutouwan.com/news/109441/

相关文章:

  • 大浪网站建设 优帮云腾讯云网站建设流程
  • 网站切图网站建设银行
  • 手机建站程序源码担路做网站
  • 公司要建设网站供电局招聘2023社招
  • 做网络传销网站犯法吗广州网站平台怎么做
  • 大兴建设网站网页游戏网站火
  • 武夷山市建设局网站vps 建网站 代理
  • wordpress照片页面阜阳seo
  • 网站SEO做点提升流量万象温州自媒体公司
  • 个人如何做购物网站 关于支付接口上海网站建设选缘魁 -企查
  • 办公用纸网站建设电子商务网站发展建设论文
  • 中国500强公司有哪些网络优化工程师是干什么的
  • 做免费网站推广开头语深圳网站建设 华信科
  • 做新网站怎样提交360自己做服务器的网站
  • 网站开发专业是干嘛的制作衣服的软件app
  • 西安医院网站建设桂林无人机航拍
  • 专业品牌网站建设价格品牌网站建设设计公司
  • 辽宁省建设厅网站升级何时结束辽宁建设执业继续教育协会网站
  • 网站建设的基本流程包括哪些南阳高质量建设大市网站
  • 苏州公司做变更网站怎么用ip地址做网站
  • 用易语言可以做网站吗怎样做百度网站推广
  • 昭通网站开发公司学校网站的建设方案
  • 周口微网站制作天津美容网站建设
  • 有没有做网站一次付费免费注册淘宝店铺
  • 成都百度推广的关键词深圳网站快速排名优化
  • 最好看的2018中文2019镇江网站建设方式优化
  • 手机网站网站开发流程图新风向网站建设
  • 一键生成logo免费网站为朋友做的网站
  • 建立网站的主机方式深圳市建设交易中心
  • 域名注册好了怎么了做网站花溪网站建设