- UID
- 10832
- 积分
- 381
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-10-9
- 最后登录
- 1970-1-1
|
发表于 2002-10-17 09:32:06
|
显示全部楼层
- [FONT=courier new]
- //创建字体类型
- void CDtmCreateMain::createTextStyle(char *styleName,char* fontName,char* bigFontName,double textSize,double xScale,double obliqueAngle,double trPercent)
- {
- AcDbTextStyleTable *pTextStyleTable;
- acdbHostApplicationServices()->workingDatabase()
- ->getSymbolTable(pTextStyleTable, AcDb::kForRead);
- AcDbTextStyleTableRecord *pRecord;
- pTextStyleTable->getAt(ACDB_MODEL_SPACE,pRecord,
- AcDb::kForWrite);
- if (!pTextStyleTable->has(styleName)){
- AcDbObjectId recId;
- pTextStyleTable->close();
- acdbHostApplicationServices()->workingDatabase()
- ->getSymbolTable(pTextStyleTable, AcDb::kForWrite);
- pRecord = new AcDbTextStyleTableRecord();
- pRecord->setName(styleName);
- pRecord->setFileName(fontName);
- pRecord->setBigFontFileName(bigFontName);
- pRecord->setTextSize(textSize);
- pRecord->setXScale(xScale);
- pRecord->setObliquingAngle(obliqueAngle);
- pRecord->setPriorSize(trPercent);
- pTextStyleTable->add(recId,pRecord);
- pRecord->close();
- }
- pTextStyleTable->close();
- return;
- }
- //注记文字
- AcDbObjectId CDtmCreateMain::createText(AcGePoint3d pt,CString strText,char *pStyleName,double Height,double rotation,char *pLayerName,AcDb::TextVertMode vMode,AcDb::TextHorzMode hMode)
- {
- AcDbTextStyleTable *pTextStyleTable;
- AcDbObjectId objId,styleId;
- char text[255];
- acdbHostApplicationServices()->workingDatabase()
- ->getSymbolTable(pTextStyleTable, AcDb::kForRead);
- if (!pTextStyleTable->has(pStyleName)){
- pTextStyleTable->close();
- createTextStyle(pStyleName,"romanc.shx","hzdx.shx",Height,1.0,0.0,1.0);
- acdbHostApplicationServices()->workingDatabase()
- ->getSymbolTable(pTextStyleTable, AcDb::kForRead);
- }
- if (pTextStyleTable->has(pStyleName)){
- pTextStyleTable->getAt(pStyleName,styleId,Adesk::kFalse);
- //创建文字
- AcDbBlockTable *pBlockTable;
- acdbHostApplicationServices()->workingDatabase()
- ->getSymbolTable(pBlockTable,AcDb::kForRead);
- AcDbBlockTableRecord *pSpace;
- pBlockTable->getAt(ACDB_MODEL_SPACE,pSpace,AcDb::kForWrite);
- pBlockTable->close();
- strcpy(text,strText);
- AcDbText *pText = new
- AcDbText(pt,text,styleId,Height,rotation);
- pText->setLayer(pLayerName);
- pText->setVerticalMode(vMode);
- pText->setHorizontalMode(hMode);
- pText->setAlignmentPoint(pt);
- pSpace->appendAcDbEntity(objId,pText);
- pText->close();
- pSpace->close();
- pBlockTable->close();
- }
- pTextStyleTable->close();
- return objId;
- }
- [/font]
复制代码 |
|