再求助:三维参数化设计软件开发arx编程中,AutoCAD为什么不认识命令?
进行三维参数化设计软件开发中,在command命令行下用“3darray”命令是可以的,但按照命令行中的执行顺序,在arx中编程时,老提示“unknown command 3darray”,即认为没有3darray这一命令!不知为什么?希望得到各位的帮助!对这一问题,急需获得解决,所以不好意思,又发了一遍!
回复
恢复
可能是CAD的加载问题,你可重装CAD试试重装应该还是不行吧!
我在不同的电脑上均试着编过,但两边出同样的问题!难道是两边的CAD都会有问题吗?希望下端文字能有用
使用acedInvoke()函数调用 AutoCAD ROTATE3D 命令.
ROTATE3D 命令是在geom3d.arx中定义的,使用acedDefun注册的外部命令,所以除了使用acedInvoke()函数调用外,不能使用acedCommand 调用.另外,你还必须要保证geom3d.arx加载,并且在你使用acedDefun()方法定义的函数内通过acedInvoke()调用它.不能在用acedRegCmds->addCommand()方法定义的命令内使用.
下面是示例代码:
code:--------------------------------------------------------------------------------
int testfunc()
{
// make sure that geom3d.arx is loaded
acedArxLoad("geom3d.arx");
ads_name pieces;
ads_point Point1, Point2;
Point1 = 1.0;
Point1 = 1.0;
Point1 = 0.0;
Point1 = 10.0;
Point1 = 10.0;
Point1 = 10.0;
ads_real Angle = 32;
//Select the entities you want to rotate
acedSSGet( NULL,NULL, NULL, NULL, pieces );
resbuf* pBuf = acutBuildList(RTSTR,"c:rotate3d", RTPICKS, pieces,
RTSTR, "", RT3DPOINT, Point1, RT3DPOINT, Point2, RTREAL, Angle,
RTNONE);
resbuf* result=NULL;
acedInvoke(pBuf,&result);
acutRelRb(pBuf);
if (result!=NULL)
acutRelRb(result);
return RTNORM;
}
re
同学告诉我:程序不能直接拷贝,编译可能出问题。最好重敲。你在用arx wizzard吗?如果用的话头文件就少不少问题。我是一个刚接触编程的学生,所以好多都不太明白,我还得象你请教哪。thanks!
非常感谢,确实需要重新敲一遍,vc下面编译是没问题了,但在cad2000下执行时又出错:Invalid type in acutBuildList() arg #17,自己研究了半天也没研究清楚什么原因!
页:
[1]