|
说明
AutoCAD 中可以使用 STYLE 命令创建新的字体样式,包括
设置样式名、
选择字体文件、
确定字体效果、
三个步骤。本篇将演示创建字体样式的方法。
2. 思路
使用 ObjectARX 创建字体样式,需要执行下面的步骤:
(1)获得当前图形的字体样式表;
(2)创建新的字体样式表记录对象;
(3)用 setName 函数设置字体样式表记录的名称;
(4)用 setFileName 函数设置字体样式表记录的字体;
(5)用 setXScale 函数设置字体样式的高宽比;
(6)将新的字体样式表记录添加到字体样式表中。
3. 步骤
(1) 新建一个 CTextStyle 类, 添加 AddTextStyle() 函数
上面的代码中使用的是 TrueType 字体,如果 AutoCAD 自身的 SHX 字体,就无需指定字体文件的扩展名,例如:
pTextStyleTblRcd->setFileName("romans");
此外,字体的名称不一定与字体文件的名称相同。打开控制面板,进入“字体”文件夹,右键单击“仿宋体”图标,从弹出的快捷菜单中选择【属性】菜单项,系统会弹出如图 所示的对话框,显示了字体文件的名称。
// 添加文字样式
static void AddTextStyle(); // 添加文字样式
// 添加文字样式
void CTextStyle::AddTextStyle()
{
// 获得字体样式表
AcDbTextStyleTable *pTextStyleTbl;
acdbHostApplicationServices()->workingDatabase()->getTextStyleTable(pTextStyleTbl, AcDb::kForWrite);
// 创建新的字体样式表记录
AcDbTextStyleTableRecord *pTextStyleTblRcd;
pTextStyleTblRcd = new AcDbTextStyleTableRecord();
// 设置字体样式表记录的名称
pTextStyleTblRcd->setName(_T("仿宋体"));
// 设置字体文件名称
pTextStyleTblRcd->setFileName(_T("simfang.ttf"));
// 设置高宽比例
pTextStyleTblRcd->setXScale(0.7);
// 将新的记录添加到字体样式表
pTextStyleTbl->add(pTextStyleTblRcd);
pTextStyleTblRcd->close();
pTextStyleTbl->close();
}
(2) 在acrxEntryPoint.cpp中
ACED_ARXCOMMAND_ENTRY_AUTO(CArxConfigApp, MidasMyGroup, MyAddTextStyle, MyAddTextStyle, ACRX_CMD_MODAL, NULL) //字体样式
//当前项目中注册命令 AddTextStyle
static void MidasMyGroupMyAddTextStyle()
{
CTextStyle::AddTextStyle();
}
|
|