ObjectARX学习笔记(二十五)---如何在两个dwg里面拷贝字体样式表AcGiTextStyle ,AcDbTextStyleTableRecord
来源:互联网 发布:java web框架有哪些 编辑:程序博客网 时间:2024/04/30 01:09
//两个dwg拷贝字体信息bool CopyTextStyleIdInfo(AcDbDatabase *pFromDataSrc/*in*/,AcDbDatabase *pToDataDes/*in*/){if (pFromDataSrc == NULL || pToDataDes == NULL)return false;AcDbTextStyleTable *pStyleTable = NULL;Acad::ErrorStatus es = Acad::eOk;es = pFromDataSrc->getSymbolTable(pStyleTable,AcDb::kForRead);if (es != Acad::eOk)return false;AcDbTextStyleTableIterator *pIterator = NULL;es = pStyleTable->newIterator(pIterator);if (es != Acad::eOk){pStyleTable->close();pStyleTable = NULL;return false;}for (pIterator->start();!pIterator->done();pIterator->step()){AcDbObjectId styleId = AcDbObjectId::kNull;if ((es = pIterator->getRecordId(styleId)) == Acad::eOk){AcGiTextStyle *pTextStyle=new AcGiTextStyle(pToDataDes);if((es =fromAcDbTextStyle(*pTextStyle,styleId)) == Acad::eOk ){AcDbTextStyleTableRecord* pNewRec = new AcDbTextStyleTableRecord;setSymbolName(pNewRec,pTextStyle->styleName());pNewRec->setFileName(pTextStyle->fileName());/*待完善*/ ACHAR * pTypeface = NULL;Adesk::Boolean bold;Adesk::Boolean italic;int charset;int pitchAndFamily;es = pTextStyle->font(pTypeface,bold,italic,charset,pitchAndFamily);if (es == Acad::eOk)pNewRec->setFont(pTypeface,bold,italic,charset,pitchAndFamily);pNewRec->setBigFontFileName(_T(""));// must explicitly set to ""pNewRec->setTextSize(pTextStyle->textSize());pNewRec->setObliquingAngle(pTextStyle->obliquingAngle());pNewRec->setXScale(pTextStyle->xScale());addToSymbolTableAndClose(pNewRec,pToDataDes);}if (pTextStyle != NULL){delete pTextStyle;pTextStyle = NULL;}}}if (pIterator != NULL){delete pIterator;pIterator = NULL;pStyleTable->close();pStyleTable = NULL;}return true;}//添加文字样式块表记录BOOL addToSymbolTableAndClose(AcDbSymbolTableRecord* systemTextRec/*in*/,AcDbDatabase *pDataBase/*in*/){if (pDataBase == NULL || systemTextRec == NULL) return FALSE;AcDbTextStyleTable* symTextTbl = NULL; Acad::ErrorStatus es = Acad::eOk;es = pDataBase->getTextStyleTable(symTextTbl, AcDb::kForWrite);if (es != Acad::eOk){if (systemTextRec != NULL){delete systemTextRec;systemTextRec = NULL;}return FALSE;}AcDbSymbolTable *pSysRec = AcDbTextStyleTable::cast(symTextTbl); //覆盖字体样式 es = pSysRec->add(systemTextRec); if (es != Acad::eOk ) { symTextTbl->close(); systemTextRec->close(); return FALSE; } else {systemTextRec->close(); symTextTbl->close(); }return TRUE;}BOOL setSymbolName(AcDbSymbolTableRecord* newRec, LPCTSTR newName){Acad::ErrorStatus es;es = newRec->setName(newName);if (es != Acad::eOk) {newRec->close();}return(es);}//返回实体所在图层颜色 Adesk::UInt16 getColorIndexByLayer(Adesk::UInt16 icolorIndex,CString lyname,AcDbDatabase *pDb){if (pDb == NULL) return 7;Adesk::UInt16 iclorIndexResult = 0;Acad::ErrorStatus bEs = Acad::eOk;if (icolorIndex == 256) //随层{AcDbLayerTable *pDbLy;bEs = pDb->getLayerTable(pDbLy,AcDb::kForRead);if (bEs == Acad::eOk){Adesk::Boolean es=pDbLy->has(lyname); if (es){AcDbLayerTableRecord *pLayerTblRcd;bEs = pDbLy->getAt(lyname,(AcDbLayerTableRecord*&)pLayerTblRcd, AcDb::kForRead);if (bEs == Acad::eOk){AcCmColor color = pLayerTblRcd->color();iclorIndexResult = color.colorIndex();pLayerTblRcd->close();}}pDbLy->close();}}else if(icolorIndex == 0) //随块{;//待完善}else{iclorIndexResult = icolorIndex;}return iclorIndexResult;}
0 0
- ObjectARX学习笔记(二十五)---如何在两个dwg里面拷贝字体样式表AcGiTextStyle ,AcDbTextStyleTableRecord
- ObjectARX学习笔记(二十七)---如何拷贝将一个AcDbDatabase拷贝到另一张dwg里面
- ObjectARX学习笔记(二十四)---如何创建字体样式AcDbTextStyleTable
- ObjectArx学习笔记-设置字体样式
- ObjectARX学习笔记(十五)--如何隐藏命令行acedGetAcadDockCmdLine()
- ObjectARX学习笔记(二十一)-----如何获得当前视图向量
- ObjectARX学习笔记(二十六)--如何炸开块AcDbBlockReference
- ObjectArx学习笔记-创建标注样式
- ObjectARX学习笔记(六)----如何设置点的样式和大小 CAD二次开发
- ObjectARX学习笔记(二)----中如何设置实体的颜色setColorIndex
- ObjectARX学习笔记(二十)--如何自定义启动CAD(附加命令行形式)(一)
- ObjectARX学习笔记(二十二)--如何获取模型空间中最小点和最大点
- OBJECTARX编程中如何改变DWG中文字内容
- 学习笔记(二十五)
- ObjectARX-学习笔记
- ObjectARX-学习笔记
- ObjectARX学习笔记
- ObjectArx学习笔记-画线
- 【Android 学习笔记】 之 使用HTTP协议访问网络
- bash代码注入的安全漏洞原理详解
- UVa OJ 102
- python mysql 安装 转载
- 【北大oj】
- ObjectARX学习笔记(二十五)---如何在两个dwg里面拷贝字体样式表AcGiTextStyle ,AcDbTextStyleTableRecord
- Cocos2d-x v3.3beta0 Released!b
- IOS中http请求数据的解析以及http状态码的获取
- android 屏幕旋转
- [开发总结]WebView使用中遇到的一些问题&解决
- [Tips]使用 pip v1.5 安装 MySQL Connector/Python
- Cocos2d-x v3.3alpha0 Released!
- 对重构的理解
- Cocos2d-x v3.x官方文档】自动批处理(Auto-batching)