国产午夜福利在线观看红一片,久久精品国产再热青青青,又硬又粗又大一区二区三区视频,中文字幕乱码免费,久久超碰97文字幕 ,中国精学生妹品射精久久

最新更新最新專題

您的位置:首頁 > ppt下載 > PPT課件 > 培訓教程PPT > objectarx視頻教程培訓PPT

objectarx視頻教程培訓PPT下載

素材大。
229.5 KB
素材授權:
免費下載
素材格式:
.ppt
素材上傳:
ppt
上傳時間:
2016-04-02
素材編號:
51858
素材類別:
培訓教程PPT

素材預覽

objectarx視頻教程培訓PPT objectarx視頻教程培訓PPT

這是一個關于objectarx視頻教程培訓PPT(部分ppt內容已做更新升級),主要介紹了ObjectARX應用、ObjectARX概述、ObjectARX開發(fā)特點、ObjectARX類庫構成等內容。培訓是給新員工或現有員工傳授其完成本職工作所必需的正確思維認知、基本知識和技能的過程。是一種有組織的知識傳遞、技能傳遞、標準傳遞、信息傳遞、管理訓誡行為。其中以技能傳遞為主,側重上崗前進行。為了達到統一的科學技術規(guī)范、標準化作業(yè),通過目標規(guī)劃設定知識和信息傳遞、技能熟練演練、作業(yè)達成評測、結果交流公告等現代信息化的流程,讓員工通過一定的教育訓練技術手段,達到預期的水平,提高目標。目前國內培訓以技能傳遞為主,時間在側重上崗前。

objectarx視頻教程培訓PPT是由紅軟PPT免費下載網推薦的一款培訓教程PPT類型的PowerPoint.

ObjectARX TrainingXAU紅軟基地
華中科技大學CAD中心XAU紅軟基地
武漢天喻軟件有限責任公司XAU紅軟基地
2010年2月XAU紅軟基地
ObjectARX應用的介紹XAU紅軟基地
ObjectARX是一個僅在AutoCAD上進行二次開發(fā)的一套開發(fā)環(huán)境,通俗點講就是一系列的APIXAU紅軟基地
ObjectARX的應用舉例:XAU紅軟基地
擴展AutoCAD功能XAU紅軟基地
為各種工程設計開發(fā)便利的工具XAU紅軟基地
ObjectARX概述XAU紅軟基地
ARX——AutoCAD Runtime eXtensionXAU紅軟基地
DBX ——DataBase eXtensionXAU紅軟基地
ARX = .DLL + 2 exported functionsXAU紅軟基地
{ acrxEntryPoint & acrxGetApiVersion }XAU紅軟基地
ObjectARX開發(fā)特點XAU紅軟基地
不同的ACAD版本用不同的開發(fā)包及開發(fā)環(huán)境XAU紅軟基地
ACAD2000~ACAD2002 : VC++ 6.0XAU紅軟基地
ACAD2004~ACAD2006 : VS.NET 2002XAU紅軟基地
ACAD2007~ACAD2009 : VS.NET 2005XAU紅軟基地
ACAD2010~       :  VS.NET 2008XAU紅軟基地
ACAD2007開始字符串采用UNICODE編碼XAU紅軟基地
ARX之間不能連續(xù)依賴XAU紅軟基地
A.arx依賴B.arx, B.arx依賴C.dbx,則A.arx不能加載XAU紅軟基地
與ACAD已有功能地位一致XAU紅軟基地
ObjectARX類庫構成XAU紅軟基地
AcRx:用于幫定一個應用程序以及運行類的注冊和識別。XAU紅軟基地
AcEd:用于注冊自定義命令和AutoCAD事件通告。XAU紅軟基地
AcDb:AutoCAD圖形數據庫。XAU紅軟基地
AcGi: 用于AutoCAD 的圖形類。XAU紅軟基地
AcGe:用于AutoCAD 的線型和幾何對象通用類。XAU紅軟基地
ADS: AutoCAD 的早期版本C語言函數庫。XAU紅軟基地
ObjectARX類結構XAU紅軟基地
類圖classmap.dwgXAU紅軟基地
位置:\ObjectARX 2006\classmapXAU紅軟基地
用ObjectARX能做些什么?XAU紅軟基地
訪問、編輯和擴展AutoCAD圖形數據庫XAU紅軟基地
和AutoCAD系統相互通信XAU紅軟基地
使用MFC創(chuàng)建用戶接口XAU紅軟基地
支持多文檔應用XAU紅軟基地
創(chuàng)建自定義類和自定義實體XAU紅軟基地
可以開發(fā)復雜的應用XAU紅軟基地
和其他開發(fā)環(huán)境進行協作XAU紅軟基地
培訓安排-1XAU紅軟基地
一、基礎XAU紅軟基地
AUTOCAD數據庫結構及操作,ads_name-句柄-ID及轉換,aced常用函數,WCS/UCS及轉換,菜單/工具條/對話框制作XAU紅軟基地
二、自定義對象XAU紅軟基地
顯示/存儲/夾點/移動/拷貝/范圍/list/捕捉點/炸開/相交點/sub事件XAU紅軟基地
三、自定義對象生成與編緝XAU紅軟基地
雙擊修改/Jig/屬性頁XAU紅軟基地
培訓安排-2XAU紅軟基地
四、一些重要對象XAU紅軟基地
字典/層/線型/字體樣式XAU紅軟基地
五、擴展數據XAU紅軟基地
六、反應器XAU紅軟基地
八、總結XAU紅軟基地
所需基礎XAU紅軟基地
ACAD基本操作XAU紅軟基地
C++XAU紅軟基地
VCXAU紅軟基地
MFC(界面)XAU紅軟基地
COM(屬性頁等)XAU紅軟基地
STL(提高效率)XAU紅軟基地
AutoCAD圖形數據庫概述XAU紅軟基地
AutoCAD圖形實際上是一系列存放在一個AcDbDatabase類型的對象中的AcDb對象。XAU紅軟基地
一個dwg就是一個數據庫XAU紅軟基地
具備數據庫的基本組織結構。XAU紅軟基地
包括九個符號表和一個命名對象詞典XAU紅軟基地
AutoCAD圖形數據庫結構XAU紅軟基地
AcDbDatabase數據庫XAU紅軟基地
       |------AcDb符號表XAU紅軟基地
       |        |------塊表(AcDbBlockTable)XAU紅軟基地
       |        |------尺寸標注樣式表(AcDbDimStyleTable)XAU紅軟基地
       |        |------層表(AcDbLayerTable)XAU紅軟基地
       |        |------線型表(AcDbLinetypeTable)XAU紅軟基地
       |        |------已注冊應用程序表(AcDbRegAppTable)XAU紅軟基地
       |        |------字體樣式表(AcDbTextStyleTable)XAU紅軟基地
       |        |------用戶坐標系表(AcDbUCSTable)XAU紅軟基地
       |        |------視口表(AcDbViewportTable)XAU紅軟基地
       |        |------視圖表(AcDbViewTable)XAU紅軟基地
       |-------命名對象詞典XAU紅軟基地
訪問:AcDbDatabase::getSymbolTableXAU紅軟基地
向數據庫中添加實體 XAU紅軟基地
Acad::ErrorStatus addEntityToModelSpace(AcDbEntity * pEnt, AcDbObjectId & EntId)XAU紅軟基地
{XAU紅軟基地
 Acad::ErrorStatus eRet;XAU紅軟基地
AcDbDatabase * pDb = acdbHostApplicationServices()->workingDatabase();XAU紅軟基地
 AcDbBlockTable *pBlockTable;XAU紅軟基地
 eRet = pDb->getBlockTable(pBlockTable, AcDb::kForRead);XAU紅軟基地
 if ( eRet != Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  return eRet;XAU紅軟基地
 }XAU紅軟基地
 AcDbBlockTableRecord *pBlockTableRecord;XAU紅軟基地
 eRet = pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);XAU紅軟基地
 if ( eRet != Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  pBlockTable->close();XAU紅軟基地
  return eRet;XAU紅軟基地
 }XAU紅軟基地
 pBlockTable->close();XAU紅軟基地
 eRet = pBlockTableRecord->appendAcDbEntity(EntId, pEnt);XAU紅軟基地
 if ( eRet != Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  pBlockTableRecord->close();XAU紅軟基地
  return eRet;XAU紅軟基地
 }XAU紅軟基地
 pBlockTableRecord->close();XAU紅軟基地
 return Acad::eOk;XAU紅軟基地
}XAU紅軟基地
怎樣遍歷AutoCAD圖形數據庫?XAU紅軟基地
void FindObjectId(AcDbObjectId & objId)XAU紅軟基地
{XAU紅軟基地
AcDbDatabase * pDb = acdbHostApplicationServices()->workingDatabase();XAU紅軟基地
 AcDbBlockTable *pBlockTable;XAU紅軟基地
 pDb->getBlockTable(pBlockTable, AcDb::kForRead);XAU紅軟基地
 AcDbBlockTableRecord *pBlockTableRecord;XAU紅軟基地
 pBlockTable->getAt(ACDB_MODEL_SPACE,  pBlockTableRecord, AcDb:: kForRead);XAU紅軟基地
 pBlockTable->close();XAU紅軟基地
 AcDbBlockTableRecordIterator *pIter;XAU紅軟基地
  pBlockTableRecord- >newIterator(pIter); // Create an iteratorXAU紅軟基地
 for (pIter->start(); !pIter->done(); pIter->step())XAU紅軟基地
            {XAU紅軟基地
               ….........XAU紅軟基地
               AcDbEntity *pEntity;XAU紅軟基地
     if (pIter->getEntity(pEntity, AcDb::kForRead) != Acad::eOk)   continue;XAU紅軟基地
               If(pEntity->isKindOf(AcDbCircle::desc())   objId = pEntity->ObjectId();XAU紅軟基地
           }XAU紅軟基地
 pBlockTableRecord- >close();XAU紅軟基地
}XAU紅軟基地
怎樣創(chuàng)建和使用已有的AutoCAD圖形數據庫?XAU紅軟基地
要使用AcDbDatabase數據庫,與使用其它數據庫一樣,首先要聲明一個數據庫對象。AcDbDatabase類的聲明,調用類的構造函數:XAU紅軟基地
AcDbDatabase ::AcDbDatabase(bool buildDefaultDrawing = true, bool noDocument = false);XAU紅軟基地
其中,buildDefaultDrawing參數控制是否創(chuàng)建一個包括所有默認數據記錄的數據庫。XAU紅軟基地
該參數的默認值為true,這樣在AcDbDatabase數據庫創(chuàng)建時,將在新建的數據庫中包含一個AutoCAD圖形數據庫必須包含的基本數據要素,這些要素包括九個符號表及其初始記錄(比如0層、STANDARD文字樣式等),命名對象詞典(組詞典和多線樣式詞典)以及必要的系統變量設置。這樣就可以向新建的數據庫中添加各種實體和對象。如:AcDbDatabase *pDb= new AcDbDatabase(true);XAU紅軟基地
若指定該參數為false,AutoCAD將創(chuàng)建一個完全空的AcDbDatabase數據庫。這樣的AcDbDatabase數據庫不能直接向其中添加實體或對象,需讀入一個圖形文件來拓展該圖形數據庫,然后再逐步添加或修改數據庫中的實體或對象。XAU紅軟基地
讀入圖形數據庫使用函數:AcadErrorStatus AcDbDatabase::readDwgFile(const char* fileName );XAU紅軟基地
若要使用已有的圖形,比如“test.dwg”文件,則使用下列代碼:XAU紅軟基地
AcDbDatabase *pDb= new AcDbDatabase(false);XAU紅軟基地
pDb->readDwgFile(“test.dwg”);XAU紅軟基地
AcDbDatabase構造函數的noDocument參數控制打開的數據庫是否與當前文檔關聯,此參數用于“多文檔處理”中。XAU紅軟基地
注意:在這種情況下,AcDbdatabase()的參數必須指定為false(當然,0或者Adesk::kFalse都可以)。因為使用pDb->readDwgFile()函數時,pDb必須是一個完全空白的數據庫,也就是說,哪怕使用了AcDbDatabase(false);新建數據庫后,只要對數據庫進行了操作,就不能再使用readDwgFile()函數,否則會導致嚴重的內存錯誤。XAU紅軟基地
數據庫對象AcDbObject概述XAU紅軟基地
每一個數據庫對象具有以下三種表示方法:XAU紅軟基地
句柄 ——  AcDbHandleXAU紅軟基地
對象id ——  AcDbObjectIdXAU紅軟基地
指針 ——  AcDbObect *XAU紅軟基地
三者之間的相互關系XAU紅軟基地
之間相互關系和轉換XAU紅軟基地
1. AcDbHandle -> AcDbObjectIdXAU紅軟基地
AcDbDatabase ::getAcDbObjectId(&AcDbObjectId ,FALSE, AcDbHandle );XAU紅軟基地
2. AcDbObjectId -> AcDbHandleXAU紅軟基地
AcDbHandle  = AcDbObjectId::handle ();XAU紅軟基地
3.AcDbObjectId -> AcDbObject *XAU紅軟基地
acdbOpenObject(AcDbObject *&,AcDbObjectId,AcDb::OpenMode);XAU紅軟基地
4.AcDbObject * -> AcDbHandle XAU紅軟基地
AcDbHandle  = AcDbObject::getAcDbHandle();XAU紅軟基地
5.ads_name 和 AcDbObjcetIdXAU紅軟基地
一個ads_name 是 一個包含兩個long型元素的數組XAU紅軟基地
這個數組的第一個元素就是AcDbObjcetIdXAU紅軟基地
6. ads_name 和 AcDbObjcetId相互轉換XAU紅軟基地
acdbGetAdsName(ads_name, objId);XAU紅軟基地
acdbGetObjectId(objId, ads_name);XAU紅軟基地
怎樣訪問數據庫對象?XAU紅軟基地
打開對象的方法:XAU紅軟基地
acdbOpenObject() 該函數為模板函數,能打開任意對象XAU紅軟基地
acdbOpenAcDbObject()XAU紅軟基地
acdbOpenAcDbEntity()XAU紅軟基地
打開對象的模式:XAU紅軟基地
AcDb::kForRead //只讀XAU紅軟基地
AcDb::kForWrite //可寫XAU紅軟基地
AcDb::kForNotify //通知XAU紅軟基地
升級和降級訪問:XAU紅軟基地
AcDbObject::upgradeOpen();  //升級為寫XAU紅軟基地
AcDbObject::downgradeOpen(); //降級為讀XAU紅軟基地
刪除對象XAU紅軟基地
AcDbObject::erase()XAU紅軟基地
用事務方式訪問XAU紅軟基地
事務XAU紅軟基地
AcTransaction * AcTransactionManager::startTransaction XAU紅軟基地
AcTransactionManager::endTransaction() XAU紅軟基地
AcTransactionManager::abortTransaction(),XAU紅軟基地
virtual Acad::ErrorStatus getObject(AcDbObject*& obj, AcDbObjectId objectId, AcDb::OpenMode mode, bool openErasedObject = false)XAU紅軟基地
對象訪問限制XAU紅軟基地
如果一個對象被寫打開,則在關閉前不能再被讀打開或寫打開XAU紅軟基地
如果一個對象被讀打開,則在關閉前不能再被寫打開,但可被讀打開(一個對象最多可同時被打開128次)XAU紅軟基地
對象類型識別 XAU紅軟基地
desc():XAU紅軟基地
a static member function that returns the class descriptor object of a particular (known) class.XAU紅軟基地
cast():XAU紅軟基地
 a static member function that returns an object of the specified type, or NULL if the object is not of the required class (or a derived class). XAU紅軟基地
isKindOf():XAU紅軟基地
returns whether an object belongs to the specified class (or a derived class). XAU紅軟基地
isA():XAU紅軟基地
 returns the class descriptor object of an object whose class is unknown.XAU紅軟基地
AcRxClassXAU紅軟基地
例如:XAU紅軟基地
AcDbEntity* curEntity = somehowGetAndOpenAnEntity();XAU紅軟基地
if (curEntity->isKindOf(AcDbEllipse::desc())) { }XAU紅軟基地
If(curEntity->isA() == AcDbEllipse::desc()){ } XAU紅軟基地
AcDbLine * pLine  = AcDbLine ::cast(curEntity )XAU紅軟基地
AutoCAD里的交互XAU紅軟基地
AcEd 全局函數XAU紅軟基地
String, number acquisitionXAU紅軟基地
 acedGetInt        used to get an integer value acedGetReal       used to get a real value acedGetString     used to get a string acedGetDist       used to get the distance between two pointsXAU紅軟基地
Point, angle acquisitionXAU紅軟基地
 acedGetAngle      used to get a angle value acedGetPoint      used to pick a point acedGetCornerXAU紅軟基地
Entity selectionXAU紅軟基地
acedEntSel       used to select a single entity acedNEntSel      used to select a single, nested entity acedNEntSelP     used to select a single, nested entity acedSSGet        used to select multiple entitiesXAU紅軟基地
OthersXAU紅軟基地
acedGetKword      used to get a key word acedInitGet       used to initialize acedGetXXXX functions acedGetFileD      used to retrieve file selection from a file dialogXAU紅軟基地
向ACAD發(fā)送命令XAU紅軟基地
acedCommand:立即執(zhí)行XAU紅軟基地
acedCommand(RTSTR, "zoom", RTSTR, "e", 0);XAU紅軟基地
sendStringToExecute:作為下一個命令執(zhí)行XAU紅軟基地
 CString strCmd;XAU紅軟基地
 strCmd.Format("_HNBMReservedAreaModified %d %d ", (long)ReservedAreaHandle, nType);XAU紅軟基地
 acDocManager->sendStringToExecute(acDocManager->curDocument(), strCmd, false, true, false);XAU紅軟基地
共同點:都不能執(zhí)行有用戶交互的命令XAU紅軟基地
WCS,UCS,OCS(ECS)XAU紅軟基地
規(guī)則:數據庫中對象保存的點坐標是WCS坐標(建議);而一些acedXX函數(如acedGetPoint,acedEntSel等)、list命令一般是UCS坐標。XAU紅軟基地
WCS與UCS相互轉換XAU紅軟基地
 //UCS坐標系XAU紅軟基地
 fromrb.restype = RTSHORT;XAU紅軟基地
 fromrb.resval.rint = 1;XAU紅軟基地
 //WCS坐標系XAU紅軟基地
 torb.restype = RTSHORT;XAU紅軟基地
 torb.resval.rint = 0;XAU紅軟基地
 acedTrans(pt_ucs,&fromrb,&torb,FALSE,resultPt);XAU紅軟基地
acdbUcs2Wcs XAU紅軟基地
acdbWcs2Ucs XAU紅軟基地
AcDbEntity::getEcsXAU紅軟基地
UCS常用函數及類XAU紅軟基地
函數:Acad::ErrorStatus acedGetCurrentUCS(AcGeMatrix3d& mat);XAU紅軟基地
(以下函數和類可看作符號表的操作模式)XAU紅軟基地
函數:Acad::ErrorStatus getSymbolTable(AcDbUCSTable*& pTable,AcDb::OpenMode mode);XAU紅軟基地
類:AcDbUCSTableXAU紅軟基地
類:AcDbUCSTableRecordXAU紅軟基地
ARX應用向導XAU紅軟基地
應用向導:ObjectARX 2006的在\ObjectARX 2006\utils\ObjARXWiz目錄下。XAU紅軟基地
功能:與MFC應用向導類似XAU紅軟基地
產生工程XAU紅軟基地
產生特定類及函數XAU紅軟基地
ARX,DBX加載/卸載XAU紅軟基地
加載XAU紅軟基地
ap(appload)XAU紅軟基地
arxXAU紅軟基地
其它方式(lisp文件,注冊表等)XAU紅軟基地
卸載XAU紅軟基地
apXAU紅軟基地
arxXAU紅軟基地
ARX軟件結構XAU紅軟基地
加載:On_kInitAppMsgXAU紅軟基地
卸載:On_kUnloadAppMsgXAU紅軟基地
命令映射(arx2006或以上):XAU紅軟基地
 static void INTECAD_INTESelect(void)XAU紅軟基地
 {XAU紅軟基地
 }XAU紅軟基地
ACED_ARXCOMMAND_ENTRY_AUTO(CINTECADApp, INTECAD, _INTESelect, INTESelect, ACRX_CMD_TRANSPARENT, NULL)XAU紅軟基地
ARX & MFCXAU紅軟基地
ObjectARX 完全支持MFC。XAU紅軟基地
兩個MFC基類 AdUi and AcUi。XAU紅軟基地
注意:在調用資源時加上這句話 CAcModuleResourceOverride resOverride;XAU紅軟基地
對話框XAU紅軟基地
資源轉換,多個ARX時可能需要XAU紅軟基地
CAcModuleResourceOverride resOverride;XAU紅軟基地
XAU紅軟基地
AfxSetResourceHandle (_hdllInstance) ;XAU紅軟基地
AfxSetResourceHandle (acedGetAcadResourceInstance ()) ;XAU紅軟基地
菜單與工具條XAU紅軟基地
通過菜單文件XAU紅軟基地
COM方式添加XAU紅軟基地
例1:基本操作XAU紅軟基地
建立應用程序XAU紅軟基地
建立命令XAU紅軟基地
實現功能:選中一實體,然后輸出其信息XAU紅軟基地
例2:重復產生同半徑的圓XAU紅軟基地
對話框輸入半徑XAU紅軟基地
用鼠標指定圓心XAU紅軟基地
數據庫結構查看工具XAU紅軟基地
ARXDBG工具的使用XAU紅軟基地
位置:\ObjectARX 2006\samples\database\ARXDBGXAU紅軟基地
文檔:ArxDbg.docXAU紅軟基地
本節(jié)結束XAU紅軟基地
下節(jié)將介紹自定義實體的內容XAU紅軟基地
自定義對象類XAU紅軟基地
一般從 AcDbObject 或AcDbEntity派生XAU紅軟基地
AcDbObject:不須顯示,如字典對象XAU紅軟基地
AcDbEntity:可顯示/操作的實體XAU紅軟基地
從其他(如AcDbLine等實體類)派生:根據需要XAU紅軟基地
自定義類可繼續(xù)從另一個自定義繼承,從而繼承體系成樹狀結構XAU紅軟基地
編寫時遵守一定的規(guī)則XAU紅軟基地
放在DBX工程中XAU紅軟基地
自定義類特點XAU紅軟基地
頭文件XAU紅軟基地
ACRX_DECLARE_MEMBERSXAU紅軟基地
ACDB_REGISTER_OBJECT_ENTRY_AUTOXAU紅軟基地
版本XAU紅軟基地
CPP文件XAU紅軟基地
ACRX_DXF_DEFINE_MEMBERSXAU紅軟基地
AcDbProxyEntity::kNoOperationXAU紅軟基地
assertReadEnabled ()與assertWriteEnabled () ;XAU紅軟基地
讀寫控制XAU紅軟基地
顯示刷新XAU紅軟基地
UNO/REDOXAU紅軟基地
DBX加載/卸載XAU紅軟基地
在ARX中調用XAU紅軟基地
acrxLoadModule/acrxUnloadModuleXAU紅軟基地
ARX在使用DBX的LIB庫時,可能會出現諸如:acrxGetApiVersion找不到或ARX加載失敗的問題.解決方法:XAU紅軟基地
在ARX和DBX工程中都增加def文件,文件內容如下:XAU紅軟基地
EXPORTSXAU紅軟基地
 acrxEntryPoint  PRIVATEXAU紅軟基地
 acrxGetApiVersion PRIVATEXAU紅軟基地
自定義對象-讀入/寫出XAU紅軟基地
作用XAU紅軟基地
文件(DWG,DXF)讀寫XAU紅軟基地
UNDO/REDOXAU紅軟基地
CLONEXAU紅軟基地
函數XAU紅軟基地
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* filer);XAU紅軟基地
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* filer) const;XAU紅軟基地
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* filer);XAU紅軟基地
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* filer) const;XAU紅軟基地
AcDbDwgFilerXAU紅軟基地
類中常用函數XAU紅軟基地
 virtual Acad::ErrorStatus   readInt32(Adesk::Int32*) XAU紅軟基地
    virtual Acad::ErrorStatus   writeInt32(Adesk::Int32)XAU紅軟基地
 virtual Acad::ErrorStatus   readString(char**) XAU紅軟基地
virtual Acad::ErrorStatus   writeString(const char*)XAU紅軟基地
 virtual Acad::ErrorStatus   readPoint3d(AcGePoint3d*)XAU紅軟基地
    virtual Acad::ErrorStatus   writePoint3d(const AcGePoint3d&)XAU紅軟基地
 virtual Acad::ErrorStatus   readAcDbHandle(AcDbHandle*)XAU紅軟基地
    virtual Acad::ErrorStatus   writeAcDbHandle(const AcDbHandle&)XAU紅軟基地
 virtual Acad::ErrorStatus   readBytes(void *, Adesk::UInt32)XAU紅軟基地
    virtual Acad::ErrorStatus   writeBytes(const void *, Adesk::UInt32)XAU紅軟基地
讀字符串XAU紅軟基地
 char *str=NULL;XAU紅軟基地
 pFiler->readString(&str);XAU紅軟基地
 m_strPanelType=str;XAU紅軟基地
 acutDelString(str);XAU紅軟基地
自定義對象-顯示XAU紅軟基地
函數:XAU紅軟基地
virtual Adesk::Boolean worldDraw( AcGiWorldDraw* mode);XAU紅軟基地
virtual void viewportDraw(AcGiViewportDraw* mode);XAU紅軟基地
區(qū)別XAU紅軟基地
worldDraw函數用來生成跟視圖無關的幾何圖形,它只生成一組幾何圖形,其他的因為視圖的變化而導致的幾何圖形變化都由AutoCAD來自動調整,舉個例子,你生成一個立方體,這個立方體從不同的角度看所看到的外形是不一樣的,但是worldDraw只生成一個角度的幾何圖形,其他的都由AutoCAD來自動的調整了。XAU紅軟基地
viewportDraw則不同,它可以根據不同的視圖生成不同的幾何圖形,當你的視圖改變的時候,它自動將幾何圖形調整到正確的狀態(tài)。有時候這兩個函數需要配合使用,例如,如果你畫圓,那就可以用worldDraw,因為無論你怎么變換視圖圓還是圓。但是如果你生成一些表示立體的幾何圖形有時候就需要借助于viewportDraw了,因為對于立體圖形來說不同的視圖看到的是不一樣的。 舉個例子來說明其區(qū)別就是worldDraw畫出來的立體圖形,你改變了角度(也算viewport改變)后看到的有可能就不是立體圖形了,但是你用viewportDraw畫出來的就不會出現這樣的問題。XAU紅軟基地
AcGiWorldDraw與AcGiViewportDrawXAU紅軟基地
類似,但AcGiViewportDraw有視口相關的矩陣和方向函數XAU紅軟基地
通過geometry得到繪圖類AcGiWorldGeometry 的對象XAU紅軟基地
通過subEntityTraits得到環(huán)境設置類AcGiSubEntityTraits 對象XAU紅軟基地
AcGiWorldGeometry與AcGiGeometryXAU紅軟基地
circleXAU紅軟基地
circularArcXAU紅軟基地
Polyline(多段線)XAU紅軟基地
polygonXAU紅軟基地
textXAU紅軟基地
pline(多義線,類似于AcDbPolyline)XAU紅軟基地
AcGiSubEntityTraitsXAU紅軟基地
常用函數XAU紅軟基地
 virtual void setColor(const Adesk::UInt16 color) = 0;XAU紅軟基地
 virtual void setTrueColor(const AcCmEntityColor& color) = 0;XAU紅軟基地
 virtual void setLayer(const AcDbObjectId layerId) = 0;XAU紅軟基地
 virtual void setLineType(const AcDbObjectId linetypeId) = 0;XAU紅軟基地
virtual void setFillType(const AcGiFillType) = 0;XAU紅軟基地
virtual void setLineWeight(const AcDb::LineWeight lw) = 0;XAU紅軟基地
virtual void setLineTypeScale(double dScale = 1.0) = 0;XAU紅軟基地
注意XAU紅軟基地
一個自定義對象的不同部分可分屬不同層XAU紅軟基地
是否填充只針對circle,polygon等封閉圖形XAU紅軟基地
例1 自定義實體-讀寫/顯示XAU紅軟基地
生成一等邊三角形的自定義實體XAU紅軟基地
中心XAU紅軟基地
外接圓半徑XAU紅軟基地
方位角XAU紅軟基地
自定義對象-夾點XAU紅軟基地
virtual Acad::ErrorStatus getGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const;XAU紅軟基地
virtual Acad::ErrorStatus moveGripPointsAt( const AcDbIntArray& indices, const AcGeVector3d& offset);XAU紅軟基地
自定義對象-移動XAU紅軟基地
virtual Acad::ErrorStatus transformBy( const AcGeMatrix3d& xform);XAU紅軟基地
自定義對象-拷貝XAU紅軟基地
virtual Acad::ErrorStatus deepClone(AcDbObject* pOwnerObject, AcDbObject*& pClonedObject, AcDbIdMapping& idMap, Adesk::Boolean isPrimary = true) const;XAU紅軟基地
virtual Acad::ErrorStatus wblockClone(AcRxObject* pOwnerObject, AcDbObject*& pClonedObject, AcDbIdMapping& idMap, Adesk::Boolean isPrimary = true) const;XAU紅軟基地
自定義對象-炸開XAU紅軟基地
virtual Acad::ErrorStatus explode(AcDbVoidPtrArray& entitySet) const;XAU紅軟基地
自定義對象-捕捉點XAU紅軟基地
virtual Acad::ErrorStatus getOsnapPoints( AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const;XAU紅軟基地
自定義對象-范圍XAU紅軟基地
 virtual Acad::ErrorStatus getGeomExtents(AcDbExtents& extents) const;XAU紅軟基地
自定義對象-listXAU紅軟基地
作用:調試檢查用.XAU紅軟基地
virtual void list() const;XAU紅軟基地
自定義對象-相交點XAU紅軟基地
virtual Acad::ErrorStatus intersectWith(const AcDbEntity* pEnt,AcDb::Intersect intType,AcGePoint3dArray& points,int thisGsMarker = 0,int otherGsMarker = 0) const;XAU紅軟基地
自定義對象- sub事件XAU紅軟基地
 virtual Acad::ErrorStatus subErase(Adesk::Boolean erasing);XAU紅軟基地
 virtual Acad::ErrorStatus subOpen(AcDb::OpenMode mode);XAU紅軟基地
 virtual Acad::ErrorStatus subClose();XAU紅軟基地
理解拖動夾點與平移實體的工作方式XAU紅軟基地
在拖動夾點時,ACAD調用自定義對象重載的moveGripPointsAt函數。但這時你要注意:此時的this指針指向的自定義對象A并非數據庫中待修改的對象B,A只是ACAD復制的一個用于操作的臨時對象,它的所有持久性(即保存到文件中的)參數與B相同,非持久性參數保持構造函數時的值。A并沒有被加入到數據庫中,所以在moveGripPointsAt不能通過database()函數獲取數據庫指針;A中的參數沒有累積性,即在moveGripPointsAt中更改了一個類成員變量m的值,下一次調用moveGripPointsAt時,m的值與B中m值相同,而不是修改過的值。XAU紅軟基地
transformBy與moveGripPointsAt類似。XAU紅軟基地
本節(jié)結束XAU紅軟基地
下節(jié)將介紹自定義對象生成與編緝XAU紅軟基地
雙擊修改XAU紅軟基地
動態(tài)生成(Jig)XAU紅軟基地
屬性頁XAU紅軟基地
實體的雙擊修改XAU紅軟基地
在ARX工程中:從AcDbDoubleClickEdit派生并重載函數:XAU紅軟基地
 virtual void startEdit(AcDbEntity *pEnt, AcGePoint3d pt); XAU紅軟基地
 virtual void finishEdit(void);XAU紅軟基地
在On_kInitAppMsg中:XAU紅軟基地
if(!acrxDynamicLinker->loadModule(/*MSG0*/"ACDBLCLKEDITPE.ARX",Adesk::kFalse)) XAU紅軟基地
 {XAU紅軟基地
    AfxMessageBox("'ACDBLCLKEDITPE.ARX' Load Failed");XAU紅軟基地
 }XAU紅軟基地
 // Initialize Double Click EditingXAU紅軟基地
 AcDbDoubleClickEdit::rxInit();XAU紅軟基地
 acrxBuildClassHierarchy();XAU紅軟基地
 TYTriangleDoubleClickEdit *pTriangleDoubleClickEdit=new TYTriangleDoubleClickEdit;XAU紅軟基地
 TYTriangle::desc()->addX(AcDbDoubleClickEdit::desc(),pTriangleDoubleClickEdit);XAU紅軟基地
實體的雙擊修改XAU紅軟基地
On_kUnloadAppMsg函數中:XAU紅軟基地
TYTriangle::desc()->delX(AcDbDoubleClickEdit::desc());XAU紅軟基地
startEdit函數XAU紅軟基地
文檔加鎖XAU紅軟基地
設置資源XAU紅軟基地
顯示對話框XAU紅軟基地
修改實體XAU紅軟基地
文檔解鎖XAU紅軟基地
例1:自定義實體的雙擊修改XAU紅軟基地
可改:XAU紅軟基地
外接圓半徑XAU紅軟基地
填充XAU紅軟基地
動態(tài)創(chuàng)建XAU紅軟基地
AcEdJigXAU紅軟基地
 virtual DragStatus sampler () ;XAU紅軟基地
 virtual Adesk::Boolean update () ;XAU紅軟基地
 virtual AcDbEntity *entity () const ;XAU紅軟基地
DragStatus drag();XAU紅軟基地
AcEdJIg中的用戶輸入函數XAU紅軟基地
 DragStatus acquireString(char *str);XAU紅軟基地
    DragStatus acquireAngle(double &ang);XAU紅軟基地
    DragStatus acquireAngle(double &ang, const AcGePoint3d& basePnt);XAU紅軟基地
    DragStatus acquireDist(double &dist);XAU紅軟基地
    DragStatus acquireDist(double &dist, const AcGePoint3d& basePnt);XAU紅軟基地
    DragStatus acquirePoint(AcGePoint3d&);XAU紅軟基地
    DragStatus acquirePoint(AcGePoint3d&, const AcGePoint3d&basePnt);XAU紅軟基地
注意:不能使用acedXXX函數XAU紅軟基地
AcEdJig:其它函數XAU紅軟基地
const char* keywordList();XAU紅軟基地
void  setKeywordList(const char*);XAU紅軟基地
const char* dispPrompt();XAU紅軟基地
void setDispPrompt(const char*, ...);XAU紅軟基地
AcEdJig::CursorType specialCursorType();XAU紅軟基地
void  setSpecialCursorType(CursorType);XAU紅軟基地
AcEdJig::UserInputControls userInputControls();XAU紅軟基地
void setUserInputControls(AcEdJig::UserInputControls);XAU紅軟基地
例2:動態(tài)生成自定義實體XAU紅軟基地
用向導生成或手工書寫XAU紅軟基地
向導生成的AcEdJig派生類有錯:XAU紅軟基地
頭文件中除去ACRX_DECLARE_MEMBERSXAU紅軟基地
CPP文件中除去ACRX_CONS_DEFINE_MEMBERSXAU紅軟基地
練習XAU紅軟基地
自定義實體XAU紅軟基地
具有N條邊的多邊形XAU紅軟基地
畫出多邊形及外接圓XAU紅軟基地
可輸入邊數N和外接圓半徑XAU紅軟基地
動態(tài)創(chuàng)建XAU紅軟基地
在創(chuàng)建過程中顯示圖形XAU紅軟基地
在創(chuàng)建過程中顯示并可修改尺寸(選作)XAU紅軟基地
雙擊修改XAU紅軟基地
屬性頁XAU紅軟基地
優(yōu)點:XAU紅軟基地
可批量修改多個實體的屬性XAU紅軟基地
操作步驟少XAU紅軟基地
與ACAD的已有操作更加一致XAU紅軟基地
缺點:XAU紅軟基地
實現有點復雜XAU紅軟基地
用戶操作習慣問題XAU紅軟基地
生成工程XAU紅軟基地
標準ATL工程XAU紅軟基地
生成ATL類XAU紅軟基地
派生XAU紅軟基地
接口XAU紅軟基地
IDLXAU紅軟基地
DBX中實體類中:XAU紅軟基地
頭文件: XAU紅軟基地
static bool   s_bHasClsid;XAU紅軟基地
static CLSID  s_clsid;XAU紅軟基地
實現:XAU紅軟基地
initCLSID()XAU紅軟基地
getClassIDXAU紅軟基地
屬性名稱及分組XAU紅軟基地
GetDisplayNameXAU紅軟基地
GetCategoryNameXAU紅軟基地
ShowPropertyXAU紅軟基地
預定義值XAU紅軟基地
GetPredefinedStringsXAU紅軟基地
GetPredefinedValueXAU紅軟基地
顯示對話框XAU紅軟基地
MapPropertyToPageXAU紅軟基地
IOPMPropertyDialogXAU紅軟基地
字典XAU紅軟基地
字典內可保存多個從AcDbObject派生的對象XAU紅軟基地
可用于保存全局變量,選項設置XAU紅軟基地
AcDbDictionary *pNameDict;XAU紅軟基地
 AcDbDictionary *pNameList;XAU紅軟基地
 pDb->getNamedObjectsDictionary(pNameDict,AcDb::kForWrite);XAU紅軟基地
 if (pNameDict->getAt("TYSOFTHNBMCAD_DICT",(AcDbObject*&)pNameList, AcDb::kForWrite) == Acad::eKeyNotFound)XAU紅軟基地
 {XAU紅軟基地
  pNameList = new AcDbDictionary;XAU紅軟基地
  AcDbObjectId DictId;XAU紅軟基地
  pNameDict->setAt("TYSOFTHNBMCAD_DICT", pNameList, DictId);XAU紅軟基地
}XAU紅軟基地
 pNameDict->close();XAU紅軟基地
 ///打開或創(chuàng)建控制信息對象XAU紅軟基地
 AcDbObjectId objId;XAU紅軟基地
 HNBMDictItem *pDictItem;XAU紅軟基地
 if((pNameList->getAt("TYSOFTHNBMCAD_DICT_ITEM", objId))XAU紅軟基地
  == Acad::eKeyNotFound)XAU紅軟基地
 {XAU紅軟基地
  pDictItem = new HNBMDictItem;XAU紅軟基地
  Acad::ErrorStatus err=pNameList->setAt("TYSOFTHNBMCAD_DICT_ITEM", pDictItem, objId);XAU紅軟基地
  if(err!=Acad::eOk)XAU紅軟基地
  {XAU紅軟基地
   acutPrintf("\nerror in set archinfo!");XAU紅軟基地
   delete pDictItem;XAU紅軟基地
   pNameList->close();XAU紅軟基地
   return;XAU紅軟基地
  }XAU紅軟基地
  pDictItem->close();XAU紅軟基地
 } XAU紅軟基地
 pNameList->close();XAU紅軟基地
AcDbDictionary *pNameDict;XAU紅軟基地
 AcDbDictionary *pNameList;XAU紅軟基地
 pDb->getNamedObjectsDictionary(pNameDict,AcDb::kForRead);XAU紅軟基地
if (pNameDict->getAt("TYSOFTHNBMCAD_DICT",(AcDbObject*&)pNameList, XAU紅軟基地
  AcDb::kForRead) == Acad::eKeyNotFound)XAU紅軟基地
 {XAU紅軟基地
  pNameDict->close();XAU紅軟基地
  return NULL;XAU紅軟基地
 }XAU紅軟基地
 pNameDict->close();XAU紅軟基地
AcDbObjectId objId;XAU紅軟基地
 HNBMDictItem *pDictItem;XAU紅軟基地
 if((pNameList->getAt("TYSOFTHNBMCAD_DICT_ITEM", objId))== Acad::eKeyNotFound)XAU紅軟基地
 {XAU紅軟基地
  pNameList->close();XAU紅軟基地
  return NULL;XAU紅軟基地
 } XAU紅軟基地
 pNameList->close();XAU紅軟基地
if (acdbOpenObject((AcDbObject*&)pDictItem, objId,AcDb::kForRead) == Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  return pDictItem;XAU紅軟基地
 }XAU紅軟基地
XAU紅軟基地
 AcDbLayerTable *pLayerTable;XAU紅軟基地
 es=pDB->getSymbolTable(pLayerTable, AcDb::kForWrite);XAU紅軟基地
 if(es!=Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  pLinetypeTable->close();XAU紅軟基地
  return;XAU紅軟基地
 }XAU紅軟基地
 if(!pLayerTable->has("木作線(RoomLine)"))XAU紅軟基地
 {XAU紅軟基地
  pLayerTableRecord =new AcDbLayerTableRecord;XAU紅軟基地
  pLayerTableRecord->setName("木作線(RoomLine)");XAU紅軟基地
  pLayerTableRecord->setIsFrozen(false);XAU紅軟基地
  pLayerTableRecord->setIsOff(false);XAU紅軟基地
  pLayerTableRecord->setIsLocked(false);XAU紅軟基地
  pLayerTableRecord->setVPDFLT(false);XAU紅軟基地
color.setColorIndex(3);XAU紅軟基地
  pLayerTableRecord->setColor(color);XAU紅軟基地
pLinetypeTable->getAt("Continuous", LinetypeId);XAU紅軟基地
  pLayerTableRecord->setLinetypeObjectId(LinetypeId);XAU紅軟基地
  pLayerTableRecord->setLineWeight(AcDb::kLnWtByLwDefault);XAU紅軟基地
pLayerTable->add(pLayerTableRecord);XAU紅軟基地
  pLayerTableRecord->close();XAU紅軟基地
 }XAU紅軟基地
               pLayerTable->close();XAU紅軟基地
線型XAU紅軟基地
 pDB->loadLineTypeFile("DASHED", "acad.lin");//虛線XAU紅軟基地
 pDB->loadLineTypeFile(“CENTER”, “acad.lin”);//中心線XAU紅軟基地
AcDbLinetypeTable *pLinetypeTable=NULL;XAU紅軟基地
 Acad::ErrorStatus es=pDB->getSymbolTable(pLinetypeTable, AcDb::kForRead);XAU紅軟基地
 if(es!=Acad::eOk)XAU紅軟基地
  return;XAU紅軟基地
 AcDbLayerTable *pLayerTable;XAU紅軟基地
 es=pDB->getSymbolTable(pLayerTable, AcDb::kForRead);XAU紅軟基地
 if(es!=Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  pLinetypeTable->close();XAU紅軟基地
  return;XAU紅軟基地
 }XAU紅軟基地
        AcDbObjectId LinetypeId;XAU紅軟基地
 pLinetypeTable->getAt("CENTER", LinetypeId);XAU紅軟基地
        pLineTypeTable->close();XAU紅軟基地
文字樣式XAU紅軟基地
 AcDbTextStyleTable *pTextStyleTable=NULL;XAU紅軟基地
 Acad::ErrorStatus es=pDB->getSymbolTable(pTextStyleTable, AcDb::kForWrite);XAU紅軟基地
 if(es==Acad::eOk)XAU紅軟基地
 {XAU紅軟基地
  if(!pTextStyleTable->has("宋體-35"))XAU紅軟基地
  {XAU紅軟基地
   AcDbTextStyleTableRecord *pTextStyleTableRecord=new AcDbTextStyleTableRecord;XAU紅軟基地
   pTextStyleTableRecord->setName("宋體-35");XAU紅軟基地
   pTextStyleTableRecord->setFont("宋體", FALSE, FALSE, GB2312_CHARSET, DEFAULT_PITCH|FF_ROMAN);XAU紅軟基地
   pTextStyleTableRecord->setTextSize(3.5);XAU紅軟基地
   pTextStyleTableRecord->setXScale(0.8);XAU紅軟基地
   pTextStyleTable->add(pTextStyleTableRecord);XAU紅軟基地
   pTextStyleTableRecord->close();XAU紅軟基地
  }XAU紅軟基地
if(!pTextStyleTable->has("HZ-35"))XAU紅軟基地
  {XAU紅軟基地
   AcDbTextStyleTableRecord *pTextStyleTableRecord=new AcDbTextStyleTableRecord;XAU紅軟基地
   pTextStyleTableRecord->setName("HZ-35");XAU紅軟基地
   pTextStyleTableRecord->setFileName("txt.shx");XAU紅軟基地
   pTextStyleTableRecord->setBigFontFileName("hztxt.shx");XAU紅軟基地
   pTextStyleTableRecord->setTextSize(3.5);XAU紅軟基地
   pTextStyleTableRecord->setXScale(0.8);XAU紅軟基地
   Acad::ErrorStatus es=pTextStyleTable->add(pTextStyleTableRecord);XAU紅軟基地
   pTextStyleTableRecord->close();XAU紅軟基地
  }XAU紅軟基地
  pTextStyleTable->close();XAU紅軟基地
 }XAU紅軟基地
擴展數據XAU紅軟基地
XData 容量受限制,只能存儲<=16KXAU紅軟基地
AcDbObject::xData ()XAU紅軟基地
AcDbObject::setXData()XAU紅軟基地
(entget( car ( entsel))' ("*") )XAU紅軟基地
封裝類:AcXdLocalVarXAU紅軟基地
XRecord 容量不受限制XAU紅軟基地
本質上沒有區(qū)別,存貯的都是resbuf結構的鏈表XAU紅軟基地
如果對象是自定義實體,存儲非圖形數據也可以作為該實體對象的屬性存儲起來XAU紅軟基地
XDATA舉例XAU紅軟基地
(-3 ("INTECAD_HUST_CAD_CENTER" (1000 . XAU紅軟基地
"BILLITEM") (1002 . "{") (1000 . "index") (1070 . 1) (1000 . "code") (1000 . XAU紅軟基地
"C5A") (1000 . "name") (1000 . "E5A") (1000 . "quantity") (1000 . "G5A") (1000 XAU紅軟基地
. "lineblock") (1005 . "0") (1000 . "circle") (1005 . "21B") (1002 . "}") (1000 XAU紅軟基地
. "OBJECT") (1002 . "{") (1000 . "OBJECTID") (1000 . "BILLITEM") (1002 . "}"))))XAU紅軟基地
為一鏈表,表頭為RegAppName,每一節(jié)點為一resbuf的結構,此結構為聯合數據結構,可存字符串,整數等類型XAU紅軟基地
 struct  resbuf  *pRb, *pTemp;XAU紅軟基地
 pRb = pObj->xData("architech_3d_code";);XAU紅軟基地
 if (pRb != NULL) XAU紅軟基地
 {XAU紅軟基地
  // If xdata is present, then walk to the end of the list.XAU紅軟基地
  for (pTemp = pRb; pTemp->rbnext != NULL; pTemp = pTemp->rbnext)XAU紅軟基地
   ;XAU紅軟基地
 } XAU紅軟基地
 else XAU紅軟基地
 {XAU紅軟基地
  //以調用過acdbRegApp(“architech_3d_code”);XAU紅軟基地
  pRb = acutNewRb(AcDb::kDxfRegAppName);XAU紅軟基地
  pTemp = pRb;XAU紅軟基地
  pTemp->resval.rstring = (TCHAR*) new TCHAR[GetArchitechCodeName().GetLength() + 1];XAU紅軟基地
  _tcscpy(pTemp->resval.rstring, GetArchitechCodeName());XAU紅軟基地
 }XAU紅軟基地
// Add user-specified std::TSTDSTRING to the xdata.XAU紅軟基地
 pTemp->rbnext = acutNewRb(AcDb::kDxfXdAsciiString);XAU紅軟基地
 pTemp = pTemp->rbnext;XAU紅軟基地
 pTemp->resval.rstring =  (TCHAR*) new TCHAR[_tcslen(resString) + 1];XAU紅軟基地
 _tcscpy(pTemp->resval.rstring, resString);XAU紅軟基地
// The following code shows the use of upgradeOpen() to change the entity from read to write.XAU紅軟基地
 pObj->upgradeOpen();XAU紅軟基地
 pObj->setXData(pRb);XAU紅軟基地
 acutRelRb(pRb);XAU紅軟基地
XRecord創(chuàng)建XAU紅軟基地
創(chuàng)建對象的擴展字典XAU紅軟基地
AcDbObject::createExtensionDictionary();XAU紅軟基地
AcDbObjectId AcDbObject::extensionDictionary(); XAU紅軟基地
生成AcDbXrecord并加入字典XAU紅軟基地
AcDbXrecord *pXrec = new AcDbXrecord XAU紅軟基地
acdbOpenObject(pDict, dictObjId, AcDb::kForWrite); XAU紅軟基地
pDict->setAt("ASDK_XREC1", pXrec, xrecObjId); XAU紅軟基地
用鏈表填充AcDbXrecordXAU紅軟基地
pXrec->setFromRbChain(*head);XAU紅軟基地
反應器XAU紅軟基地
非持久性(transient Reactor)XAU紅軟基地
數據庫反應器:AcDbDatabaseReactor XAU紅軟基地
文檔反應器:AcApDocManagerReactor XAU紅軟基地
其它XAU紅軟基地
持久性(persistent Reactor)XAU紅軟基地
數據庫中的對象之間XAU紅軟基地
區(qū)別:是否能保存到數據庫中XAU紅軟基地
持久反應器-建立XAU紅軟基地
TYTriangle *pTriangle=new TYTriangle;XAU紅軟基地
AcDbObjectId TriangleId;XAU紅軟基地
AppendEntityToDb(pTriangle, NULL, &TriangleId);XAU紅軟基地
pTriangle->close();XAU紅軟基地
AcDbLine *pL=new AcDbLine(AcGePoint3d(0, 50, 0), AcGePoint3d(100, 50, 0));XAU紅軟基地
AppendEntityToDb(pL);XAU紅軟基地
pL->addPersistentReactor(TriangleId);XAU紅軟基地
pL->close();XAU紅軟基地
持久反應器-事件處理XAU紅軟基地
void TYTriangle::modified        (const AcDbObject* dbObj)XAU紅軟基地
{XAU紅軟基地
 if(dbObj->isKindOf(AcDbLine::desc()))XAU紅軟基地
 {XAU紅軟基地
  AcDbLine *pLine=AcDbLine::cast(dbObj);XAU紅軟基地
  AcGeVector3d dir=pLine->startPoint()-pLine->endPoint();XAU紅軟基地
  double dblAngle=AcGeVector3d::kXAxis.angleTo(dir, AcGeVector3d::kZAxis);XAU紅軟基地
Adesk::Boolean kWritable;XAU紅軟基地
  Acad::ErrorStatus es=upgradeFromNotify(kWritable);XAU紅軟基地
  if(es==Acad::eOk)XAU紅軟基地
  {XAU紅軟基地
   if(isWriteEnabled())XAU紅軟基地
   {XAU紅軟基地
    SetStartAngle(dblAngle);XAU紅軟基地
   }XAU紅軟基地
downgradeToNotify(kWritable);XAU紅軟基地
  }XAU紅軟基地
 }XAU紅軟基地
}XAU紅軟基地
AutoCAD二次開發(fā)特點總結XAU紅軟基地
ObjectARX:面向對象,功能強大,事實上的工業(yè)標準(類似者:ZRX,CRX)XAU紅軟基地
學習材料豐富,代碼多,開發(fā)人員多,交流方便,入門容易XAU紅軟基地
市場需求大XAU紅軟基地
進入門檻低XAU紅軟基地
是用于學習和練習C++和CAD開發(fā)的不錯選擇XAU紅軟基地
~完~XAU紅軟基地
謝謝各位!XAU紅軟基地

培訓ppt課件模板:這是培訓ppt課件模板,包括了文章背景知識,認字識詞朗誦,課文賞析,拓展訓練/分組練習等內容,歡迎點擊下載。

幼兒教師師德培訓ppt1:這是幼兒教師師德培訓ppt1,包括了引言,幼兒園教師師德現狀,幼兒園師德建設存在的問題,原因分析,對策建議等內容,歡迎點擊下載。

釘釘培訓ppt:這是釘釘培訓ppt,包括了釘釘軟件介紹,釘釘常用功能,公司啟用釘釘考勤操作指南,公司啟用釘釘時間等內容,歡迎點擊下載。

PPT分類Classification

Copyright:2009-2024 紅軟網 rsdown.cn 聯系郵箱:rsdown@163.com

湘ICP備2024053236號-1