




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、/ 遍歷填充對象的邊界信息。boolCAcUiSelDialog:OpenDwgFile(constACHAR*fileName)Acad:ErrorStatuses;/AcDbObjectIdArray objectIds ;/ 邊界 id 數(shù)組AcGeVector3d normal;/ 填充平面boolbAssociative;/ 關(guān)聯(lián)型AcDbHatch:Hatch PatternTy pep atternT yp e;/ 填充圖案類型con stACHAR* patternName;/ 填充圖案名AcDbHatch:HatchStylehatchStyle;/2.讀取.dwg文件AcD
2、bDatabase*pDb=newAcDbDatabase(Adesk:kFalse);es=pDb->readDwgFile(_T("D:*.dwg"); /.dwg 文件路徑if(Acad:eOk!=es) acedAlert(_T("臨時(shí)數(shù)據(jù)庫打開失敗");deletepDb;returnfalse;/3. 獲取塊表AcDbBlockTable*pBlkTbl;es=pDb->getSymbolTable(pBlkTbl,AcDb:kForRead);if(Acad:eOk!=es) acedAlert(_TC獲取塊表錯(cuò)誤!"
3、);deletepDb;pBlkTbl->close();returnfalse;/4. 獲取塊表記錄AcDbBlockTableRecord*pBlkTblRcd;es=pBlkTbl->getAt(ACDB_MODEL_SPACE,pBlkTblRcd,AcDb:kForRead);if(Acad:eOk!=es) deletepDb;pBlkTbl->close();pBlkTblRcd->close();acedAlert(_T("獲取塊表記錄錯(cuò)誤!");returnfalse;pBlkTbl->close();/5. 創(chuàng)建塊表記錄迭代
4、器 ,遍歷模型空間塊表記錄11 / 11CStringhClass;AcDbBlockTableRecordIterator*pBlkTblRcdItr;pBlkTblRcd->newIterator(pBlkTblRcdItr);AcGePoint3d*pPt3D=newAcGePoint3d();if(NULL=pPt3D)pBlkTblRcd->close();deletepDb;/delete pHatch;deletepBlkTblRcdItr;returnfalse;/ 遍歷塊表記錄中的實(shí)體for(pBlkTblRcdItr->start();!pBlkTblRc
5、dItr->done();pBlkTblRcdItr->step()/6. 得到實(shí)體對象AcDbHatch*pHatch=newAcDbHatch();AcDbEntity*pEnt;Adesk:Int32loopType;Adesk:UInt16color=0;AcGePoint2dArrayvertices;AcGeDoubleArraybulges;pBlkTblRcdItr->getEntity(pEnt,AcDb:kForRead);if(!pEnt->isKindOf(AcDbHatch:desc()pEnt->close();pHatch->c
6、lose();/delete patternName;deletepBlkTblRcdItr;returnfalse;pHatch=AcDbHatch:cast(pEnt);if(pHatch!=NULL)intloopNums=pHatch->numLoops();/acutPrintf(_T("%d"),loopNums);/ 此處可用normal=pHatch->normal();/ 平面向量bAssociative=p Hatch->associative();/關(guān) 聯(lián)性patternName二pHatch->patternName();/
7、填充圖案名p atter nType=p Hatch->p atter nTyp e();/ 填充類型hatchStyle 二p Hatch->hatchStyle();/hatch style of the hatch en tity,填充風(fēng)格 color二pHatch->colorlndex();/得至U為 indicates the entity uses the colorspecified in the LayerTableRecord it references./acutPrintf(_T(" 填充對象的顏色: %d"),color);/Ac
8、DbHatch* pHatch2二 newAcDbHatch();/新建填充對象es=pHatch2->setNormal( no rmal);/ 設(shè)置填充平面if(Acad:eOk!=es)acedAlert(_T("構(gòu)造向量失敗");returnfalse;es=pHatch2->setElevation(0);es=pHatch2->setAssociative(bAssociative);/設(shè)置關(guān)聯(lián)性if(Acad:eOk!=es)acedAlert(_T("構(gòu)造關(guān)聯(lián)性失敗");returnfalse;es=p Hatch2-&
9、gt;set Patter n(p atter nType,p atter nN ame);/ 設(shè)置填充圖案if(Acad:eOk!=es)acedAlert(_T("構(gòu)造圖案失敗");returnfalse;es=pHatch2->setHatchStyle(hatchStyle);/設(shè) 置填充類型es=pHatch2->setColorl ndex(color);/設(shè)置顏色for(intloopindex=0;loopindex<loopNums;loopindex+)/ 遍歷第-61 條邊界/ 為每一條邊界長久存放數(shù)組AcGeVoidPointerA
10、rrayedgePtrs;AcGeintArrayedgeTypes;AcGeVoidPointerArrayVoidPtrAry;AcGeintArrayintAry;if(Acad:eNotApplicable!=pHatch->getLoopAt(loopindex,loopType,vertices,bulges)/獲取kPolyLine的邊界/ 多義線 kPolyLine獲取其頂點(diǎn) ;intiindex= 0;for(iindex=0;iindex<vertices.length();iindex+)pPt3D->x=vertices.at(iindex).x;/T
11、hisfunctionreturnstheelementofthe array at position ipPt3D->y=vertices.at(iindex).y;acut Prin tf(_T("多義線的坐標(biāo)是:d,%d"),pPt3D->x,pPt3D->y);/pPenStroke->m_Stroke.push_back(pPt3D)保 存多義線頂點(diǎn) / 非多義線else/分別獲取第-61條邊界,每一條邊界都是 AcGe對像數(shù)組es=pHatch->getLoopAt(loopIndex,/Input index of selecte
12、d looploopType,/Output loop typeedgePtrs,/Output a set of AcGeCurve pointersedgeTypes);/Output a set of enumerated edge typesfor(intj=O;j<edgePtrs.length();j+)/遍歷 AcGe對象數(shù)組中的 點(diǎn)/*else if(edgeTy pesj=AcDbHatch:kCirArc)/圓弧/AcGeCircArc2d *CirArc=(AcGeCircArc2d *)edgePtrs;acutPrintf(_T("n 圓弧"
13、);/可以根據(jù)數(shù)學(xué)圓弧構(gòu)造相應(yīng)的 AcDb圓弧,取決于你(以下同)else if(edgeTy pesj=AcDbHatch:kEIIArc)/橢圓弧/AcGeElli pArc2d *EllArc=(AcGeElli pArc2d *)edge Ptrs;acut Prin tf(_T("n 橢圓弧");else if(edgeT yp esj=AcDbHatch:kS pli ne)/NURB曲線/AcGeNurbCurve2d *S pli ne=(AcGeNurbCurve2d *)edge Ptrs對象 acut Prin tf(_T("nNURBS 曲
14、線");/ 獲取直線的起點(diǎn)和終點(diǎn),只考慮直線,章中只有直線if(edgeT yp esU=AcDbHatch:kLi ne)/線 型AcGeLineSeg2d*pLnSeg=(AcGeLineSeg2d*)edgePtrs.atQ遍/歷第 j 個(gè) AcGe*/AcGeLineSeg2d*pLineSeg=NULL;/ 邊類型(僅當(dāng)邊界不是多段線時(shí)):/1 =直線; =圓??; =橢圓??; =樣條曲線switch(edgeTy pes.at(j)/ 判斷邊類型case1:/直線pLineSeg= (AcGeLineSeg2d*)edgePtrs.at(j);if(NULL!=pLineS
15、eg)AcGePoint3d*pPt3D1=newAcGePoint3d() ;/起點(diǎn),并轉(zhuǎn)換為DpPt3D1->x=pLineSeg->startPoint().x;pPt3D1->y=pLineSeg->startPoint().y;AcGePoint2dBeginPt(pPt3D1->x,pPt3D1->y);deletepPt3D1;AcGePoint3d*pPt3D2=newAcGePoint3d() ;/尾點(diǎn),并轉(zhuǎn)為DpPt3D2->x=pLineSeg->endPoint().x;pPt3D2->y=pLineSeg->
16、endPoint().y;AcGePoint2dEndPt(pPt3D2->x,pPt3D2->y);deletepPt3D2;AcGeL in eSeg2d* pObj二 newAcGeLi neSeg2d(Begi nP t,E ndP t);/acut Prin tf(_T添 加第 %d 對象數(shù)組"),loopindex;VoidPtrAry.append(pObj);IntAry.append(AcDbHatch:kLine);/遍歷邊界(AcGe對象數(shù)組)中AcGe對象結(jié)束,得到AcGe對象數(shù)組 /es=pHatch2->appendLoop(loopTy
17、pe,VoidPtrAry,intAry);es=pHatch2->appendLoop(loopType,VoidPtrAry,IntAry);if(Acad:eOk!=es)acedAlert(_T("Acad:eInvalidInput");pHatch2->close();pHatch->close();pBlkTblRcd->close();deletepBlkTblRcdItr;deletepatternName;deletepDb;/returnfalse;/ 將每一條邊界添加進(jìn)自定義實(shí)體 , /將得到的每條邊界加入到填充對象 中/邊界循環(huán)結(jié)束 ,得到填充對象的整邊界es=pHatch2->evaluateHatch();/顯示填充對象AcDbObjectIdhatchld;/ 添加到模型空間hatchId=PostToModelSpace(pHatch2);if(hatchId!=NULL)acedAlert(_T("獲取填充對象成功n&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省合肥市長豐縣七年級生物上冊 2.2.1《細(xì)胞通過分裂產(chǎn)生新細(xì)胞》教學(xué)實(shí)錄3 (新版)新人教版
- 高中數(shù)學(xué) 第一章 統(tǒng)計(jì) 1.5 用樣本估計(jì)總體 1.5.2 估計(jì)總體的數(shù)字特征教學(xué)實(shí)錄 北師大版必修3
- 三年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 出售數(shù)控滾齒機(jī)合同范例
- 2025年汽車銷售年終工作總結(jié)范文匯編
- 2025年醫(yī)療保障基金稽核工作總結(jié)
- tekla銷售合同范例
- 衛(wèi)廁裝修合同范本
- 銀行營業(yè)員個(gè)人年終工作總結(jié)四篇
- 2024-2025學(xué)年黑龍江佳木斯市高一上冊第一次月考數(shù)學(xué)檢測試題
- 《現(xiàn)代家政導(dǎo)論》電子教案 4.1模塊四項(xiàng)目一家政教育認(rèn)知
- 一年級數(shù)學(xué)個(gè)位數(shù)加減法口算練習(xí)題大全(連加法-連減法-連加減法直接打印版)
- 2024年浙江省杭州市白蟻防治研究所招聘歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 幼兒園6S管理培訓(xùn)課件
- GB/T 25052-2024連續(xù)熱浸鍍層鋼板和鋼帶尺寸、外形、重量及允許偏差
- 電梯大修標(biāo)準(zhǔn)
- 狗狗訓(xùn)練合同
- 胰島素正確注射方式
- Q-GDW 12461-2024 電力物資包裝通.用技術(shù)規(guī)范
- 部編版三年級語文下冊課內(nèi)外閱讀訓(xùn)練(類文閱讀含答案)
- 2024年北京電子科技職業(yè)學(xué)院高職單招筆試歷年職業(yè)技能測驗(yàn)典型例題與考點(diǎn)解析含答案
評論
0/150
提交評論