找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 610|回复: 9

[求助]:字!!!!!!!!!!!!!

[复制链接]
发表于 2005-3-12 13:06:12 | 显示全部楼层 |阅读模式

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

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

×
在CAD中怎么直到字的大小。举个例子,给你一个字符串(有中文和英文字符),以及我想用的字体和字体的大小,现在就想知道这个字最后在CAD的宽度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-3-12 15:13:31 | 显示全部楼层
用 acedTextBox()就行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-12 15:49:47 | 显示全部楼层
这个能行么?这个只是对CAD中的实体才有效的,我说的是字符串!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-12 19:00:18 | 显示全部楼层
不妨做个小程序,实际测试一下数据关系。其间的关系恐怕只有Autodesk清楚。
也可以在程序中自动测试,就是用字符串生成一个实体,用2楼提供的方法获得。把该实体设成不可见,获得数据后删除。该过程静悄悄发生,软件使用者不会有不良感觉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-3-12 20:35:21 | 显示全部楼层
也可以不生成实体, 用 acutBuildList() 构造类似 调用acdbEntGet() 时返回的 数据链,然后使用acedTextBox()就行了-------不过,这也不简单。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-3-17 09:31:30 | 显示全部楼层
AcDbObjectId textStyle;
AcDbTextStyleTable *pTstyle;
//hz为已知字型,不存在时用STANDARD
if(acdbCurDwg()->getTextStyleTable(pTstyle,AcDb::kForRead)==Acad::eOk) {
        if(pTstyle->getAt("hz",textStyle)!=Acad::eOk){
                if(pTstyle->getAt("STANDARD",textStyle)!=Acad::eOk){
                        pTstyle->close();
                }
        }
}
pTstyle->close();
//以str为例
AcDbText *ptext=new AcDbText(AcGePoint3d(0,0,0),"str",textStyle,3,0);
AcDbExtents ext;
ptext->getGeomExtents(ext);
//ptext->setVerticalMode(t.vMode);
//ptext->setHorizontalMode(AcDb::kTextFit);
//ptext->setHeight(t.h);
//ptext->setAlignmentPoint(p2);
ads_printf("\nw=%lf h=%lf",ext.maxPoint().x-ext.minPoint().x,ext.maxPoint().y-ext.minPoint().y);
delete ptext;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-21 08:17:46 | 显示全部楼层
void Asdkmyselect()
{

        ads_name sset;
        ads_point p0;
        AcDbObjectId objId,textstyleId;
        if ( acedEntSel("select a text",sset ,p0) != RTNORM )
        {
                acutPrintf("\nno entity select");
                return;
        }

    if(acdbGetObjectId(objId, sset)==Acad::eOk)
        {
          
            AcDbText *pEnt;       
                if(acdbOpenObject(pEnt, objId, AcDb::kForRead)==Acad::eOk)
                {
                       
                           AcGePoint2d p2d;
                           AcGiTextStyle mytextstyle;
                           textstyleId=pEnt->textStyle();
                           string mystring = pEnt->textString();
                           acutPrintf("\nThe position is x=%f",pEnt->position().x);
                           acutPrintf("\nThe position is y=%f",pEnt->position().y);
                           acutPrintf("\nThe aliagnpoint is x=%f",pEnt->alignmentPoint().x);
                           acutPrintf("\nThe aliagnpoint is y=%f",pEnt->alignmentPoint().y);
                          
                           pEnt->close();
                           if(fromAcDbTextStyle(mytextstyle,textstyleId)!=Acad::eOk)
                           {
                           acutPrintf("open errO");
                                        return;
                           }
                          
                           p2d=mytextstyle.extents(mystring.data(),Adesk::kFalse,mystring.size(),Adesk::kTrue,NULL);
                           acutPrintf("\nthe x is%f", p2d.x);
                           acutPrintf("\nthe big font is%s",mytextstyle.bigFontFileName());
                                     
                }
        }
     acedSSFree(sset);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 11:37 , Processed in 0.307447 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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