乐筑天下

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

关于文本标注 和 圆圈标注 的问题

[复制链接]

5

主题

16

帖子

1

银币

初来乍到

Rank: 1

铜币
36
发表于 2005-9-23 09:17:00 | 显示全部楼层 |阅读模式
[ARX函数]:关于文本标注 和 圆圈标注 的问题?
[I] 9pt 10pt 11pt 12pt 13pt 15pt
/////////////////////////////////////////////////////
在指定坐标点进行文本标注:
AcDbBlockTable *pBlockTablew;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBlockTablew, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecorde;
pBlockTablew->getAt(ACDB_MODEL_SPACE,
pBlockTableRecorde, AcDb::kForWrite);
pBlockTablew->close();//关闭块表
ads_point point;
int ret;
acutPrintf("\n请选中权属单位:“%s",CScaption);
ret = acedGetPoint(NULL,"”标注的中心点:",point);
ret= acedCommand(RTSTR, "boundary",RTPOINT ,point, RTSTR, "",0) ;
acutPrintf("\n你选的点坐标为 x = %.3f y = %.3f",point[0],point[1]);
AcGePoint3d textPosition(point[0], point[1], 0.0);
AcGePoint3d atextPosition(point[0], point[1], 0.0);
double textHeight = 10;
double textWidthFactor = 0.8000;
double textRotation = 0.0;
AcDbText *pText=new AcDbText(textPosition, CScaption, AcDbObjectId::kNull ,
textHeight, textRotation);
pText->setHorizontalMode(AcDb::kTextMid);
pText->setAlignmentPoint(atextPosition);
pText->setColorIndex (1);
AcDbObjectId textId;
pBlockTableRecorde->appendAcDbEntity(textId, pText); //*
pBlockTableRecorde->close();
pText->close();
/////////////////////////////////////////////////////////////////////////////////////////
在指定坐标点进行画圆标注坐标点:
CString xpt[100];
CString ypt[100];
float xco[100];
float yco[100];
acedGetInt("\n请输入多边形顶点数:",&NodeNumCount);
if(acedGetPoint(NULL,"\n请选择起始点:",pt)==RTNORM)
{
xpt[0].Format("%g",pt[X]);
ypt[0].Format("%g",pt[Y]);
acutPrintf("\n起始点坐标为:%s,%s",xpt[0],ypt[0]);
}
xco[0]=atof(xpt[0]);
yco[0]=atof(ypt[0]);
for(int i=0;iworkingDatabase()
->getSymbolTable(pBlockTablew, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecorde;
pBlockTablew->getAt(ACDB_MODEL_SPACE,
pBlockTableRecorde,AcDb::kForWrite);
pBlockTablew->close();
AcGeVector3d normal(0.0, 0.0, 1.0);
AcGePoint3d startPt(xco[n],yco[n],0.0);//定义圈标注的中点
AcDbCircle *pCirc1 = new AcDbCircle(startPt, normal, num);
AcDbObjectId circleId;
pBlockTableRecorde->appendAcDbEntity(circleId, pCirc1);
pBlockTableRecorde->close();
pCirc1->close();
///////////////////////////////////////////////////////////////
以上两个功能函数均正确!! 以下是两个功能整合过()后的程序,编译无错,
但在CAD中会导致-致命错误!估计是定义坐标不一致而导致的,即:
进行圈标注的点---AcGePoint3d startPt(xco[n],yco[n],0.0); //float型的
不能做为数字标注的点---AcGePoint3d textPosition(point[0], point[1], 0.0);
希望哪位高手给予指点,我在这里先谢过了!
CString xpt[100];
CString ypt[100];
float xco[100];
float yco[100];
acedGetInt("\n请输入多边形顶点数:",&NodeNumCount);
if(acedGetPoint(NULL,"\n请选择起始点:",pt)==RTNORM)
{
xpt[0].Format("%g",pt[X]);
ypt[0].Format("%g",pt[Y]);
acutPrintf("\n起始点坐标为:%s,%s",xpt[0],ypt[0]);
}
xco[0]=atof(xpt[0]);
yco[0]=atof(ypt[0]);
for(int i=0;iworkingDatabase()
->getSymbolTable(pBlockTablee, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecorde;
pBlockTablee->getAt(ACDB_MODEL_SPACE, pBlockTableRecorde,AcDb::kForWrite);
pBlockTablee->close();
//AcGePoint3d textPosition(xco[n], yco[n], 0.0);//*
//AcGePoint3d atextPosition(xco[n], yco[n], 0.0);//开始数字标注
char s1[64];
sprintf(s1, "%d", n);//强制转换类型
double textHeight = 10;
double textWidthFactor = 0.8000;
double textRotation = 0.0;
//AcDb::kTextLeft
AcDbText *pText=new AcDbText(startPt,s1, AcDbObjectId::kNull , textHeight, textRotation);
pText->setHorizontalMode(AcDb::kTextMid);
pText->setAlignmentPoint(startPt);
pText->setColorIndex(1);
AcDbObjectId textId;
pBlockTableRecorde->appendAcDbEntity(textId, pText);
//////////////////////////////////////////////////////////////////////////
AcDbObjectId circleId;
pBlockTableRecorde->appendAcDbEntity(circleId, pCirc1);
pBlockTableRecorde->close();
pCirc1->close();
pText->close();
}

进行圈标注的点---AcGePoint3d startPt(xco[n],yco[n],0.0); 是float型的
不能做为数字标注的点---AcGePoint3d textPosition(point[0], point[1], 0.0);是ads_point型的
这两者怎么能达到统一,希望高手指点一下啊!
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:24:00 | 显示全部楼层
为什么在我的电脑上运行有问题
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:38:00 | 显示全部楼层
为什么在我的电脑上运行有问题
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:38:00 | 显示全部楼层
为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:39:00 | 显示全部楼层
为什么在我的电脑上运行有问题
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:40:00 | 显示全部楼层
为什么在我的电脑上运行有问题为什么
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:40:00 | 显示全部楼层
为什么在我的电脑上运行有问题为什么在我的电脑上运行有问题
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:42:00 | 显示全部楼层
为什么在我的电脑上运行有问题
回复

使用道具 举报

2

主题

87

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2011-7-30 11:43:00 | 显示全部楼层
为什么在我的电脑上运行有问题
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 14:40 , Processed in 0.267066 second(s), 70 queries .

© 2020-2025 乐筑天下

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