- UID
- 76992
- 积分
- 54
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-9-4
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2004-6-25 11:20:33
|
显示全部楼层
谢谢各楼的热心,特谢ishou前辈,让我得益不少!!
程序我已经改正过来,但还是有问题:
经多少修改测试,如果把后面 for() 我这段循环注释掉,命令执行时,AutoCAD不会报错!
如果把acedCommand(RTSTR,"TEXT",RT3DPOINT,pCircCenter,RTSHORT,i++,RTSTR,"",RTNONE);
改为:
acedCommand(RTSTR,"TEXT",RTSTR,"30,30" /* , RT3DPOINT,pCircCenter */ ,RTSHORT,i++,RTSTR,"",RTNONE);
当然图上我只画一个圆实体了!
就是说,文本的坐标换成指定写入,执行命令没有没有任何报错,正常!
我想,问题应出在, AcGePoint3dArray arrCircCenter; (我改后的变量)
这个arrCircCenterd在追加圆心坐标,和最后的acedCommand()输入文本时语法格式是否正确的问题上!!
再验证,我在for()前添加了一个已经初始化的点,AcGePoint3d ptCenter=(10.0, 10.0, 10.0);改后为:
//================在圆心数组坐标位置上添加文本纺号==============
AcGePoint3d ptCenter(10.0,10.0,10.0);
for(int i=0; i<=nCircCenter.length(); i++)
{
acedCommand( RTSTR,"TEXT",RT3DPOINT,ptCenter,
RTSTR,"3",RTSTR,"0",RTSHORT,i++,RTNONE);
}
这样,程序还是会报错,由于我把这程序注释掉,程序执得时并不报错(上文说得很清楚),
所以本人猜测问题应就出在这个aecdCommand的语法格式上, 输入文本时,应不能输入RT3DPOINT,这个变量类型的!
请前辈指点一下,当然我会去进修,查找资料!!!
============第二次添加=================
AcDbText::AcDbText 函数
AcDbText(
const AcGePoint3d& position,
const char* text,
AcDbObjectId style = AcDbObjectId::kNull,
double height = 0,
double rotation = 0);
position 输入文本插入点
text 输入文本字符串
style 输入要使用的
AcDbTextStyleTableRecord 的对象ID
height 输入形的高度
rotation 输入旋转角
从参数上看,明明是有AcGePoint3d变量的,晕~~~~~~~~~
但为什么:
AcGePoint3d ptCenter(10.0,10.0,0.0);
acedCommand(RTSTR,"TEXT",RT3DPOINT,ptCenter,RTSTR,"5",RTSTR,"0",RTSHORT,i++,RTNONE);
执行这个命令时都会报错!!!编译通过!!!! |
|