找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 792|回复: 11

[ARX程序]:如何创建一个TrueType字体?

[复制链接]
发表于 2002-7-30 15:58:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我想创建一个仿宋的字体,该如何实现?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-7-30 17:57:43 | 显示全部楼层
字体的设置先设置“文字样式”,样式里面设置好字体。

然后在AcDbText对象里面,引用上面设置的文字样式。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-30 18:31:33 | 显示全部楼层
我想创建一个Style,但是不知道用那个函数定义它的名称,另外,如果用TrueType字体,该如何设置呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-7-30 18:36:36 | 显示全部楼层
最初由 fqj 发布
[B]我想创建一个Style,但是不知道用那个函数定义它的名称,另外,如果用TrueType字体,该如何设置呢 [/B]


你要实例一个AcDbTextStyleTableRecord对象,最后把这个对象添加到AcDbTextStyleTable中。

AcDbTextStyleTableRecord对象,你可以使用SET类方法,设置字体等,比如AcDbTextStyleTableRecord::setFont(...)等等,具体去看ARX联机帮助关于AcDbTextStyleTableRecord类的帮助。

另外简单点的方法你可以直接运行ACAD命令style,如(command "-style......"根据交互过程,输入参数即可设置字型样式。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-30 18:59:39 | 显示全部楼层
我曾尝试(command...的方法,当我给的参数为simfang.ttf时在Win98下没问题,但在W2k下提示Font file doesn't exist。你知道原因吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-30 20:17:45 | 显示全部楼层
这段代码还缺啥?
Acad::ErrorStatus SetFont()
{
        Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextStyleTable");
                return Er;
        };
        AcDbTextStyleTableRecord* pRecord=new AcDbTextStyleTableRecord;
        pRecord->setFont("simfang.ttf",FALSE,FALSE,0,0);
        Er=pTxt->add(pRecord);
        pTxt->close();
        return Er;

}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-7-30 20:34:09 | 显示全部楼层
最初由 fqj 发布
[B]这段代码还缺啥?
Acad::ErrorStatus SetFont()
{
        Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_aler... [/B]


你没有设置样式名,用AcDbSymbolTableRecord::setName 设置下AcDbTextStyleTableRecord对象的名字,然后在添加到样式表中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-3 11:19:00 | 显示全部楼层
Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextStyleTable");
                return Er;
        };
        AcDbTextStyleTableRecord* pRecord=new AcDbTextStyleTableRecord;
        pRecord->setName("fqj");
        pRecord->setFont("仿宋_GB2312",FALSE,FALSE,134,49);
        AcDbObjectId Id;
        Er=pTxt->add(Id,pRecord);
        pRecord->close();
        pTxt->close();
        return Er;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-7 20:17:52 | 显示全部楼层
最初由 fqj 发布
[B]Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextStyleTable");
                return Er;
        };
... [/B]

  1. pRecord->setFont("仿宋_GB2312",FALSE,FALSE,134,49);
复制代码


这个里面你应该给一个具体的TTF文件名字,比如simplex_..ttf,这个字体要是当前系统已经安装的TTF字体,改改试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-14 14:50:30 | 显示全部楼层
Acad::ErrorStatus SetFont()
{
        Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextStyleTable");
                return Er;
        };
        AcDbTextStyleTableRecord* pRecord=new AcDbTextStyleTableRecord;
        pRecord->setName("fqj");
        pRecord->setFont("仿宋_GB2312",FALSE,FALSE,134,49);
        AcDbObjectId Id;
        Er=pTxt->add(Id,pRecord);
        pRecord->close();
        pTxt->close();
        return Er;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-19 02:41:18 | 显示全部楼层
最初由 fqj 发布
[B]Acad::ErrorStatus SetFont()
{
        Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextS... [/B]


解决了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-6-19 16:08:00 | 显示全部楼层
这样做OK
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 17:46 , Processed in 0.342143 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表