乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 146|回复: 9

如何显示文字

[复制链接]

3

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2005-5-9 13:22:00 | 显示全部楼层 |阅读模式

mdmwgqebk5w.JPG

mdmwgqebk5w.JPG


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

使用道具 举报

2

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
19
发表于 2005-5-9 16:25:00 | 显示全部楼层
拾取两个角点,求出中心点,然后添加文字,用中心对齐方式。
回复

使用道具 举报

3

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2005-5-9 17:12:00 | 显示全部楼层
那用程序怎么才能把文字写到CAD上呢?能不能给点参考啊?
回复

使用道具 举报

azx

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2005-5-11 20:15:00 | 显示全部楼层
AcDbText
回复

使用道具 举报

7

主题

12

帖子

2

银币

初来乍到

Rank: 1

铜币
40
发表于 2005-5-17 15:30:00 | 显示全部楼层
我也有这个问题。不知道怎么用AcDbText ();
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2005-5-25 17:09:00 | 显示全部楼层
那位大虾能赐教AcDbText ()的使用问题,
谢谢!!
回复

使用道具 举报

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 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();
}
回复

使用道具 举报

8

主题

28

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 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"中的文字能够正确设置?一打开文件,文字现在仍然是左对齐,只不过有中间对齐点,并且属性框中也这么显示。搞不定了,恳请大家帮帮。
回复

使用道具 举报

8

主题

28

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2005-6-22 11:43:00 | 显示全部楼层

谢谢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;       
请问各位大侠,如何可以动态确定文字长度?因为希望可以把超出范围的文字,通过设置大小,或者比例因子来缩放回去。
回复

使用道具 举报

3

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
22
发表于 2005-8-25 08:41:00 | 显示全部楼层
我用了9楼的代码,我想9楼的代码的作用应该是在一个打开的DWG文件中,在设定的位置加上文字"Auto Create Drawing".最后是保存到"测试文件.dwg"这个文件中吧.
我运行的结果是:原来的那个DWG文件没有加上"Auto Create Drawing",而"文件名.dwg"这个文件中只显示"Auto Create Drawing",却没有其他任何图形或者文字.所以不知道问题出在哪里?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 14:00 , Processed in 0.166935 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表