明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4269|回复: 11

如何显示文字

  [复制链接]
发表于 2005-5-9 13:22:00 | 显示全部楼层 |阅读模式



请问,在程序里如何写,才能让一段文字显示在下面图片的那个小框里面呢?或者是在CAD下弹出个对话框,输入一段文本后,我怎么把问题提取到图片中的那个小框中呢?请给点方面的事例,十分感谢.

本帖子中包含更多资源

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

x
发表于 2005-5-9 16:25:00 | 显示全部楼层
拾取两个角点,求出中心点,然后添加文字,用中心对齐方式。
 楼主| 发表于 2005-5-9 17:12:00 | 显示全部楼层
那用程序怎么才能把文字写到CAD上呢?能不能给点参考啊?
发表于 2005-5-11 20:15:00 | 显示全部楼层
AcDbText
发表于 2005-5-17 15:30:00 | 显示全部楼层
我也有这个问题。不知道怎么用AcDbText ();
发表于 2005-5-25 17:09:00 | 显示全部楼层
那位大虾能赐教AcDbText ()的使用问题,


谢谢!!
发表于 2005-5-28 13:45:00 | 显示全部楼层
源码没头文件,及入口函数,这些自己定义吧, void text()
{
AcDbBlockTable* pBlockTable;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBlockTable,AcDb::kForRead);
AcDbBlockTableRecord* pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,
AcDb::kForWrite);
pBlockTable->close(); double ptt[4][3]=
{
{0,0,0},
{420,0,0},
{420,297,0},
{0,297,0},

};
AcGePoint3d pt(ptt[0][0]+100,ptt[0][1]+100,ptt[0][2]);
AcDbText* pText=new AcDbText;
pText->setHorizontalMode(AcDb::kTextRight);
pText->setAlignmentPoint(pt);
pText->setTextString("100");
pText->setTextStyle(AcDbObjectId::kNull);
pText->setHeight(30);
pText->setRotation(0); AcDbObjectId pTextId;
pBlockTableRecord->appendAcDbEntity(pTextId,pText);
pBlockTableRecord->close();
pText->close(); }
发表于 2005-6-20 18:46:00 | 显示全部楼层
没头文件及入口函数,自己定义。 AcDbDatabase *pDb = new AcDbDatabase;
AcDbBlockTable *pBlockTable;
pDb->getSymbolTable(pBlockTable, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);
pBlockTable->close();
AcGePoint3d textPosition(120.0, 80.0, 0.0);
AcGePoint3d atextPosition(130.0, 80.0, 0.0);
char textString[512] = "Auto Create Drawing";
double textHeight = 5.5296;
double textWidthFactor = 0.8000;
double textThickness = 0.0;
double textRotation = 0.0;

AcDbText *pText=new AcDbText(textPosition, textString, AcDbObjectId::kNull, textHeight, textRotation);
pText->setHorizontalMode(AcDb::kTextMid);//
pText->setAlignmentPoint(atextPosition); // AcDbObjectId textId;
pBlockTableRecord->appendAcDbEntity(textId, pText);
pBlockTableRecord->close();
pText->close(); pDb->saveAs("测试文件.dwg");
delete pDb; 请问大家如何才能使"测试文件.dwg"中的文字能够正确设置?一打开文件,文字现在仍然是左对齐,只不过有中间对齐点,并且属性框中也这么显示。搞不定了,恳请大家帮帮。
发表于 2005-6-22 11:43:00 | 显示全部楼层
本帖最后由 作者 于 2005-7-2 18:26:16 编辑

谢谢XD空间的binbin和王咣生版主,问题搞定了。

(没头文件及入口函数,自己定义。)
功能:实现在后台数据库中正确添加文字,并且设置文字属性。关键是把后台数据库设置当前,最后设置回去。
AcDbDatabase *pOldDb = acdbHostApplicationServices()->workingDatabase();

AcDbDatabase *pDb = new AcDbDatabase;
acdbHostApplicationServices()->setWorkingDatabase(pDb);


AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);
pBlockTable->close();


AcGePoint3d textPosition(120.0, 80.0, 0.0);
AcGePoint3d atextPosition(130.0, 80.0, 0.0);
char textString[512] = "Auto Create Drawing";
double textHeight = 5.5296;
double textWidthFactor = 0.8000;
double textRotation = 0.0;

AcDbText *pText=new AcDbText(textPosition, textString, AcDbObjectId::kNull, textHeight, textRotation);
pText->setHorizontalMode(AcDb::kTextMid);//
pText->setAlignmentPoint(atextPosition); //

AcDbObjectId textId;
pBlockTableRecord->appendAcDbEntity(textId, pText);
pBlockTableRecord->close();
pText->close();

pDb->saveAs("测试文件.dwg");
acdbHostApplicationServices()->setWorkingDatabase(pOldDb);
delete pDb;
请问各位大侠,如何可以动态确定文字长度?因为希望可以把超出范围的文字,通过设置大小,或者比例因子来缩放回去。

评分

参与人数 1明经币 +1 收起 理由
longge7685 + 1 赞一个!

查看全部评分

发表于 2005-8-25 08:41:00 | 显示全部楼层
我用了9楼的代码,我想9楼的代码的作用应该是在一个打开的DWG文件中,在设定的位置加上文字"Auto Create Drawing".最后是保存到"测试文件.dwg"这个文件中吧.

我运行的结果是:原来的那个DWG文件没有加上"Auto Create Drawing",而"文件名.dwg"这个文件中只显示"Auto Create Drawing",却没有其他任何图形或者文字.所以不知道问题出在哪里?

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:51 , Processed in 0.195497 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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