
ObjectARX
风清扬_jd
专注搬砖
展开
-
ObjectARX学习笔记(五)---- 如何弹出标准CAD文件打开和保存对话框acedGetFileD
/* struct resbuf *rb = acutNewRb(RTSTR); //标准CAD文件打开对话框acedGetFileD(_T("请输入要选择的文件名称"),NULL,_T("dwg"),0,rb); */struct resbuf *rb = acutNewRb(RTSTR); //标准CAD文件保存对话框acedGetFileD(_T("请输入要选择的文件名原创 2013-10-21 12:47:31 · 4941 阅读 · 0 评论 -
ObjectARX学习笔记(十九)--如何设置扩展字典的数据AcDbDictionary
//扩展字典xtsndict// (C) Copyright 1996-2006 by Autodesk, Inc. //// Permission to use, copy, modify, and distribute this software in// object code form for any purpose and without fee is hereby grante翻译 2014-05-30 14:23:10 · 3694 阅读 · 0 评论 -
ObjectARX学习笔记(二十)--如何自定义启动CAD(附加命令行形式)(一)
如何自定义CAD启动项原创 2014-05-30 14:33:59 · 4577 阅读 · 0 评论 -
ObjectARX学习笔记(二十二)--如何获取模型空间中最小点和最大点
AcGePoint3d ptMax = acdbHostApplicationServices()->workingDatabase()->extmax(); //右上角点 AcGePoint3d ptMin = acdbHostApplicationServices()->workingDatabase()->extmin(); //左下角点原创 2014-07-28 15:54:20 · 2264 阅读 · 0 评论 -
ObjectARX学习笔记(二十三)---AcEdInputPointMonitor 反应器,用来重载CAD鼠标点处实体的提示信息
// Copyright (C) 1998-2007 by Autodesk, Inc.//// Permission to use, copy, modify, and distribute this software// for any purpose is restricted by the VIP Subscription program// licen转载 2014-07-29 14:58:50 · 5548 阅读 · 0 评论 -
ObjectARX学习笔记(二十四)---如何创建字体样式AcDbTextStyleTable
AcDbTextStyleTable *pTextTable; acdbCurDwg()->getTextStyleTable(pTextTable,AcDb::kForWrite); AcDbTextStyleTableRecord *pTextStyleblRec; pTextStyleblRec = new AcDbTextStyleTableRecord(); pTextS原创 2014-09-28 09:45:55 · 4597 阅读 · 0 评论 -
ObjectARX学习笔记(二十七)---如何拷贝将一个AcDbDatabase拷贝到另一张dwg里面
Acad::ErrorStatus insert( const AcGeMatrix3d& xform, AcDbDatabase* pDb, bool preserveSourceDatabase = true);ParametersParameters Description const AcGeMatrix3d& xform Input transf原创 2014-10-23 10:19:19 · 4499 阅读 · 0 评论 -
ObjectARX学习笔记(廿八)---如何计算两条线段的交点AcGeLineSeg3d
AcGeLineSeg3d acGeLineSegtmp1(0,100,0);AcGeLineSeg3d acGeLineSegtmp2(-50,50,0);AcGeTol gGetol;gGetol.setEqualPoint(0.001);//设置精度AcGePoint3d intPnt;//交点bool bRec = acGeLineSegtmp1.intersectWith(原创 2014-10-23 10:27:04 · 3953 阅读 · 0 评论 -
ObjectARX学习笔记(廿九)---判断两条线段是否共线AcGeLineSeg3d
AcGeLineSeg3d acGeLineSegtmp1(AcGePoint3d(0,0,0),AcGePoint3d(100,0,0)); AcGeLineSeg3d acGeLineSegtmp2(AcGePoint3d(10,0,0),AcGePoint3d(90,0,0)); AcGeTol gGetol; gGetol.setEqualPoint(0.01); Ades原创 2014-10-23 10:52:18 · 3840 阅读 · 0 评论 -
ObjectARX学习笔记(二十六)--如何炸开块AcDbBlockReference
AcDbBlockTable *pBlockTable = NULL; Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase->getBlockTable(pBlockTable, AcDb::kForRead); //得到块表指针 AcDbBlockTableRecord *pBlockTableRe原创 2014-09-28 10:05:57 · 7443 阅读 · 0 评论 -
ObjectARX学习笔记(二十五)---如何在两个dwg里面拷贝字体样式表AcGiTextStyle ,AcDbTextStyleTableRecord
//两个dwg拷贝字体信息bool CopyTextStyleIdInfo(AcDbDatabase *pFromDataSrc/*in*/,AcDbDatabase *pToDataDes/*in*/){ if (pFromDataSrc == NULL || pToDataDes == NULL) return false; AcDbTextStyleTable *pStyleT原创 2014-09-28 09:48:19 · 4312 阅读 · 0 评论 -
ObjectARX学习笔记(三十三)----如何设置打断实体AcDbCurve
AcDbCurve这个类里面的函数可以实现打断效果,这个函数会根据传入的参数clone出一份新的实体注意点的顺序 virtual Acad::ErrorStatus getSplitCurves (const AcGeDoubleArray& params, AcDbVoidPtrArray& curve原创 2014-11-18 16:15:25 · 4365 阅读 · 0 评论 -
ObjectARX学习笔记(三十一)----如何遍历文档acDocManager,AcApDocumentIterator
AcApDocManager* pDocManager = acDocManager; if (pDocManager == NULL) return FALSE; AcApDocumentIterator* iter = acDocManager->newAcApDocumentIterator(); if (iter != NULL) { AcApDocument* tmp原创 2014-11-18 09:26:45 · 2498 阅读 · 0 评论 -
ObjectARX学习笔记(三十二)----如何设置AcDbMText对齐方式
//_T("\\pxql;") 居左 //_T("\\pxqr;") 居右 //_T("\\pxqc;") 居中 //_T("\\pxqd;") 分散对齐 //MtextInfoId 文字ID AcDbObjectPointer<AcDbMText> pEnt_1(MtextInfoId, AcDb::kForWrite); if (pEnt_1.openStatus() == Acad::eOk) { ACHAR * pAChar = pEnt_1->contents(原创 2014-11-18 09:43:17 · 5343 阅读 · 1 评论 -
ObjectARX学习笔记(三十四)----返回eLockViolation 错误的原因
对于返回错误是 eLockViolation 出错的原因是wen原创 2014-11-20 15:36:59 · 4486 阅读 · 1 评论 -
ObjectARX学习笔记(三十)---如何克隆实体clone(),getTransformedCopy()
AcDbDatabase *pDataBase = NULL; pDataBase = acdbCurDwg(); Acad::ErrorStatus es = Acad::eOk; //炸开块 待完善 AcDbBlockTable *pBlockTable = NULL; es = pDataBase->getBlockTable(pBlockTable, AcD原创 2014-11-07 10:22:57 · 5132 阅读 · 0 评论 -
ObjectARX学习笔记(三十五)----外部参照相关的操作
Acad::ErrorStatus acdbResolveCurrentXRefs(AcDbDatabase* pHostDb, bool useThreadEngine = true, bool doNewOnly = false);/* acdbAttachXref -- This function is used to attach a new xref to the sp原创 2015-02-04 17:39:38 · 4701 阅读 · 1 评论 -
ObjectARX学习笔记(十七)--如何添加扩展记录xrecord
// (C) Copyright 1996-2006 by Autodesk, Inc. //// Permission to use, copy, modify, and distribute this software in// object code form for any purpose and without fee is hereby granted, // provided翻译 2014-05-30 14:15:40 · 2816 阅读 · 0 评论 -
ObjectARX学习笔记(十六)--如何设置CAD选项对话框的配置AcApProfileManagerReactor反应器
// (C) Copyright 1999-2006 by Autodesk, Inc. //// Permission to use, copy, modify, and distribute this software in// object code form for any purpose and without fee is hereby granted, // provided翻译 2014-05-30 14:06:29 · 3120 阅读 · 0 评论 -
ObjectARX学习笔记(十八)---如何给对象添加xData
// (C) Copyright 1996-2008 by Autodesk, Inc. //// Permission to use, copy, modify, and distribute this software in// object code form for any purpose and without fee is hereby granted, // provided翻译 2014-05-30 14:19:10 · 2988 阅读 · 0 评论 -
ObjectARX学习笔记(十)----如何创建单行文本AcDbText
AcDbText( const AcGePoint3d& position, const ACHAR* text, AcDbObjectId style = AcDbObjectId::kNull, double height = 0, double rotation = 0);Parameters原创 2014-03-01 16:29:46 · 5465 阅读 · 0 评论 -
ObjectARX学习笔记(十一)----创建圆弧AcDbArc
AcDbArc( const AcGePoint3d& center, double radius, double startAngle, double endAngle);ParametersParameters Description const AcGePoin原创 2014-03-01 16:46:45 · 3829 阅读 · 0 评论 -
ObjectARX学习笔记(六)----如何设置点的样式和大小 CAD二次开发
参数可以自己去体会。或者查看帮助文档acdbCurDwg()->setPdmode(34); //设置点样式acdbCurDwg()->setPdsize(6); //设置大小原创 2013-12-03 11:23:35 · 2587 阅读 · 0 评论 -
ObjectARX学习笔记(九)----如何创建圆AcDbCircle
//创建圆AcGePoint3d ptSart(0,0,0); AcDbCircle *pCircle = new AcDbCircle(ptSart,AcGeVector3d(0,0,1),200); if (pCircle == NULL) { return; } //将实体添加到模型空间是固定的代码,AcDbDatabase* pDb =原创 2014-03-01 16:23:14 · 3560 阅读 · 0 评论 -
ObjectARX学习笔记(二)----中如何设置实体的颜色setColorIndex
AcDbEntity *pEnty = NULL;AcDbObjectId idEnty; //这个ID是要打开的实体ID,这个是要事先获取到的ID,否则会打开失败!!!!!!!Acad::ErrorStatus es;es = acdbOpenObject(pEnty, idEnty, AcDb::kForWrite);if (es == Acad::eOk){pEnty原创 2013-09-26 20:02:56 · 5401 阅读 · 0 评论 -
ObjectARX学习笔记(七)----RGB和CAD颜色索引之间的转换
如何获得程序路径struct resbuf rb;char sTemp[1024],*str;ads_getvar("acadprefix",&rb);strcpy(sTemp,rb.resval.string);acad_free(rb.resval.rstring);str=strchr(sTemp,';');*str='\0';st转载 2014-01-21 12:41:50 · 7518 阅读 · 0 评论 -
ObjectARX学习笔记(一)----中如何根据组名将组里的所有实体删除,以及清除组
AcDbDictionary *pGroupDict = NULL;Acad::ErrorStatus es;acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGroupDict,AcDb::kForWrite);AcDbObjectId groupId;es =pGroupDict->get原创 2013-09-17 18:21:42 · 2923 阅读 · 0 评论 -
ObjectARX学习笔记(八)----中如何创建直线AcDbLine
AcGePoint3d ptSart(0,0,0);AcGePoint3d ptEnd(100,100,0); AcDbLine *pLine = new AcDbLine(ptSart,ptEnd); if (pLine == NULL) { return; }AcDbDatabase* pDb = NULL;pDb = acdbHost原创 2014-03-01 16:18:49 · 3091 阅读 · 0 评论 -
ObjectARX学习笔记(三)----中如何设置实体所在的图层setLayer
AcDbEntity *pEnty = NULL;AcDbObjectId idEnty; //传如打开的实体ID,事先必须先获取到。否则会打开失败Acad::ErrorStatus es;es = acdbOpenObject(pEnty, idEnty, AcDb::kForWrite);if (es == Acad::eOk){pEnty->setLayer(_T原创 2013-09-26 20:05:15 · 5741 阅读 · 2 评论 -
ObjectARX学习笔记(四)----中如何得到当前模块的句柄 HMODEL
Collapse AllC++HINSTANCE & GetModuleInstance(); DescriptionRetrieves an instance of the module. //返回当前实例句柄AcRxDbxApp::GetModuleInstance原创 2013-10-19 16:50:30 · 1783 阅读 · 0 评论 -
ObjectARX学习笔记(十二)----AcDbGroup 添加新成员,以及往组里面添加实体
AcDbGroup *pGroup = new AcDbGroup;AcDbObjectId groupObjectId;AcDbDictionary *pGroupDict = NULL;acdbCurDwg()->getGroupDictionary(pGroupDict, AcDb::kForWrite);pGroupDict->setAt("GroupName", pGroup翻译 2014-03-12 17:06:08 · 2347 阅读 · 0 评论 -
ObjectARX学习笔记(十三)----如何高亮显示AcDbGroup中的单个实体,或者全部高亮显示
AcDbGroup::setSelectableCollapse AllC++Acad::ErrorStatus setSelectable( bool selectable);ParametersParameters Description b翻译 2014-03-12 17:13:57 · 3084 阅读 · 0 评论 -
acedGetAcadTextCmdLine(),枚举CAD命令行的子窗口
CWnd *wTextCmdLine = acedGetAcadTextCmdLine();if (wTextCmdLine != NULL){::EnumChildWindows(wTextCmdLine->m_hWnd,EnumChildProc,0);}原创 2018-07-02 23:22:51 · 539 阅读 · 0 评论 -
ObjectARX学习笔记(十四)--枚举CAD命令行子窗口acedGetAcadTextCmdLine();
CWnd *wTextCmdLine = acedGetAcadTextCmdLine(); if (wTextCmdLine != NULL) { ::EnumChildWindows(wTextCmdLine->m_hWnd,EnumChildProc,0); } BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam){原创 2014-04-04 15:42:32 · 1966 阅读 · 0 评论 -
ObjectARX学习笔记(二十一)-----如何获得当前视图向量
Acad::ErrorStatusgetSysVar(LPCTSTR varName, AcGePoint3d& val){ resbuf rb; if (acedGetVar(varName, &rb) == RTNORM) { ASSERT(rb.restype == RT3DPOINT); val.set(rb.resval.rpoint[翻译 2014-06-30 17:23:30 · 2254 阅读 · 0 评论 -
ObjectARX学习笔记(十五)--如何隐藏命令行acedGetAcadDockCmdLine()
CWnd* pWnd = acedGetAcadDockCmdLine()->GetParent()->GetParent()->GetParent();if(pWnd){CControlBar* pControlBar = static_cast(pWnd);CString strTmp;pControlBar->GetWindowText(strTmp);Mes原创 2014-04-04 15:46:13 · 2144 阅读 · 0 评论 -
ARX中如何根据组名将组里的所有实体删除
CMapSegType2IdAry::const_iterator iter; // 现在组 未保存iter = m_mapSeg2Groups.begin();for (iter; iter != m_mapSeg2Groups.end(); ++iter){const AcDbObjectIdArray & arrId= iter->second;if (!arrId.i原创 2018-07-02 23:23:16 · 610 阅读 · 0 评论