zishanhe 发表于 2003-5-18 13:54:00

再求助:三维参数化设计软件开发arx编程中,AutoCAD为什么不认识命令?

进行三维参数化设计软件开发中,在command命令行下用“3darray”命令是可以的,但按照命令行中的执行顺序,在arx中编程时,老提示“unknown command 3darray”,即认为没有3darray这一命令!不知为什么?希望得到各位的帮助!

对这一问题,急需获得解决,所以不好意思,又发了一遍!

wangdan 发表于 2003-5-20 15:33:00

回复

wangdan 发表于 2003-5-20 15:37:00

恢复

可能是CAD的加载问题,你可重装CAD试试

zishanhe 发表于 2003-5-21 14:50:00

重装应该还是不行吧!

我在不同的电脑上均试着编过,但两边出同样的问题!难道是两边的CAD都会有问题吗?

wangdan 发表于 2003-5-22 19:40:00

希望下端文字能有用

使用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;
}

wangdan 发表于 2003-5-30 10:03:00

re

同学告诉我:程序不能直接拷贝,编译可能出问题。最好重敲。你在用arx wizzard吗?如果用的话头文件就少不少问题。我是一个刚接触编程的学生,所以好多都不太明白,我还得象你请教哪。

zishanhe 发表于 2003-6-2 10:07:00

thanks!

非常感谢,确实需要重新敲一遍,vc下面编译是没问题了,但在cad2000下执行时又出错:Invalid type in acutBuildList() arg #17,自己研究了半天也没研究清楚什么原因!
页: [1]
查看完整版本: 再求助:三维参数化设计软件开发arx编程中,AutoCAD为什么不认识命令?