当前位置: 首页 > 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.sadfv.cn/news/109441/

相关文章:

  • 苏州区网站建设wordpress自动添加标签
  • 融资网站建设毕业设计 旅游网站建设
  • 新余建站公司太平阳电脑网网站模板
  • 站长是什么级别网站做ppt模板
  • 山西省网站建设价格如何免费做网站并发布
  • 如何做网站的外部链接企业密信下载app下载官网
  • 江门网站推广3d效果图教程网站
  • 网站建设保密协议书工业设计在线
  • 有关网站开发的外文文献海南建设银行官网招聘网站
  • 江门做网站的公司金华市建设监理协会网站
  • 印刷东莞网站建设技术支持搜索栏在wordpress菜单上位置
  • 建网站需要哪些资质wordpress导出导入数据库
  • 洛阳网站建设价格低天津网站建设座机号
  • 用商标做网站名字上海网站开发方案
  • 湖北省黄冈建设信息网站校园网的网站建设内容
  • 怎么用自助网站国内外网站建设
  • 网上外贸网站怎么做icp网站备案密码找回
  • 网站建设的基本步骤是哪些优化大师win7
  • 男女做视频观看网站怎样做微信推广网站
  • 北辰集团网站建设设计类专业学什么
  • 手机网站 等比缩放崇信县门户网站最新留言
  • 郑州中小企业网站制作企业营销策划案例分析
  • 长沙建网站制作公司51网址还有吗
  • 昆明免费网站制作网站建设会计科目
  • 电商平台正在建设中网站页面提示自己的网站怎么和百度做友链
  • 住房和城乡建设部官方网站seo 优化是什么
  • wordpress主题的安装甘肃网站建设方案优化
  • 网站建设开票名称怎么写网站空间去哪里买的
  • 网站配色原则hexo ghost wordpress
  • 备案的时候网站名称建设银行网站怎么能转账