找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3349|回复: 10

[求助]:求助一个关于AcDbText文字对齐的问题

[复制链接]
发表于 2006-1-16 11:28:44 | 显示全部楼层 |阅读模式

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

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

×
我在自定义实体的worldDraw()中绘制AcDbText,发现它提供的AcDbText文字对齐功能不好使,程序如下

Adesk::Boolean CMyText::worldDraw(AcGiWorldDraw* mode)
{
assertReadEnabled();

AcDbText* pText=new AcDbText;
pText->setTextStyle(styleId);
pText->setTextString("For Text");
pText->setPosition(AcGePoint3d(100,100,0));
pText->setHorizontalMode(AcDb::kTextRight);
pText->setVerticalMode(AcDb::kTextBottom);
pText->setAlignmentPoint(AcGePoint3d(100,100,0));
pText->adjustAlignment(acdbCurDwg());
pText->worldDraw(mode)
delete pText;

return Adesk::kTrue;
}

现在水平对齐可以,但是垂直对齐不起作用,炸开后text的justify 的属性也是 Bottom right,但是没有调整效果,只有再点击一下Bottom right 选项,文字位置才被调整,请教一下这个文字位置怎么整??

谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-17 12:57:08 | 显示全部楼层
有的语句编译不过去,我将它删去了,剩下的没问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-17 14:10:05 | 显示全部楼层
嗯?垂直对齐起作用么??我怎么怎么试都不行?垂直方向总是居中对齐~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-1-18 16:04:12 | 显示全部楼层
pText->setTextStyle(styleId);
pText->adjustAlignment(acdbCurDwg());
pText->worldDraw(mode);
我把这三处删了,插在模型空间,是没有问题的
不知道你是怎么用的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-1-20 08:55:51 | 显示全部楼层

pText->setHorizontalMode(AcDb::kTextRight);
pText->setVerticalMode(AcDb::kTextBottom);
之后我已经加了
pText->adjustAlignment(acdbCurDwg());
可还是不行,垂直方向总是居中对齐,文字下对齐不起作用

回复:tyeqin  
如果把pText->worldDraw(mode)删除,就不是自定义实体的,而是直接将 AcDbText 对象插入到了数据库,与我的要求不相符。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-20 22:03:26 | 显示全部楼层
可以的,我把代码给你,我试过了
// Constructor

AcDbObjectId CTextJig::DoIt()
{
m_pTxt = new AcDbText();

AcDbSymbolUtilities::getTextStyleId(idTxtStyle,"standard",acdbCurDwg());
m_pTxt->setTextStyle(idTxtStyle);
m_pTxt->setDatabaseDefaults();

m_pTxt->setTextString("AAAAAAAAAAAAAAAAAAAAAA");

m_pTxt->setHorizontalMode(AcDb::kTextMid);

m_pTxt->setHeight(1.0);
m_pTxt->setNormal(AcGeVector3d::kZAxis);

AcDbObjectId idTxtStyle;
this->drag();
return this->append();
}

Adesk::Boolean  CTextJig::update()
{

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

使用道具 举报

 楼主| 发表于 2006-1-23 11:04:53 | 显示全部楼层
嗯,谢谢,这样应该是可以的,如果水平和垂直同时设置,垂直方向的 kTextBottom不能起作用
。。。
呵呵,感觉我罗嗦了半天,还没有给大家说清楚问题所在。。

我测试的结果是,在自定义实体中绘制AcDbText,其中AcDbText:
1。只设置水平对齐,无论左右,中,都没有问题
2。只设置垂直对齐,无论上下,中,都没有问题
3。设置水平左对齐,垂直下对齐,则,水平方向左对齐没有问题,垂直方向下对齐不起作用,只是居中对齐了。 -------这个是我提出的问题,大家可以试一下

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

使用道具 举报

发表于 2006-1-23 12:37:50 | 显示全部楼层
不好意思,我对自定义对象不太了解,所以很难回答.我要回家了,也没有时间对自定义对象做试验了.但是就ARX文字的对齐垂直对齐是好用的.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-23 14:34:57 | 显示全部楼层
^_^ 还是很感谢的~

祝大家春节愉快~~

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 06:32 , Processed in 0.194395 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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