几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】谁能帮我看看这段代码是什么意思? (http://www.dimcax.com/hust/showthread.php?t=8282)

yang686526 2009-04-18 10:31 PM

【转帖】谁能帮我看看这段代码是什么意思?
 
谁能帮我看看这段代码是什么意思?
谁能帮我看看这段代码是什么意思?
这段代码对应了cad里的什么操作?始终弄不明白,尤其是那些函数里的参数.求哪位看出个所以然的谈谈自己的想法,感激不尽!
void setvars(int cmd,int bpmd,int fdia, int cmddia)
{
struct resbuf *cmdres,*bpmdres,*fdiares, *cmddias;
cmdres = ads_newrb(rtshort);
bpmdres = ads_newrb(rtshort);
fdiares = ads_newrb(rtshort);
cmddias = ads_newrb(rtshort);
cmdres ->resval.rint = cmd;
bpmdres->resval.rint = bpmd;
fdiares->resval.rint = fdia;
cmddias->resval.rint = cmddia;
ads_setvar("cmdecho",cmdres);
ads_setvar("blipmode",bpmdres);
ads_setvar("filedia",fdiares);
ads_setvar("cmddia",cmddias);
ads_relrb(cmdres);
ads_relrb(bpmdres);
ads_relrb(fdiares);
ads_relrb(cmddias);
}
void postacadcommand(cstring thecmdline)
{
cwnd * pacad = (cwnd::fromhandle(adsw_acadmainwnd()))->gettopwindow( );
lparam lparam = 0x00190001;
int len = thecmdline.getlength();
for(int i=0; i<len;i++)
{
pacad->postmessage( wm_char, wparam(thecmdline[i]), lparam);
}
return;
}
void cframedlg::onok()
{
cspath = "d:\\1.dwg";
setvars(0,0,0,1);
ads_command(rtstr, "._tilemode", rtstr,"0", rtnone);
ads_command(rtstr,"._pspace",rtnone);
ads_command(rtstr,"._insert",rtstr,(lpctstr)cspath, rtstr, "0,0,0", rtreal,1.0,rtstr,"",rtstr,"",rtnone);
ads_command(rtstr, "._zoom", rtstr,"_extents", rtnone);
ads_printf("continue mview to insert model space viewports for output.\n");
setvars(1,0,1,1);
postacadcommand("._mview ");
}
以上一些函数都属于ads函数,在objectarx中不再用了,采用了新的函数名(新旧函数对照表见adsmigr.h)
#define ads_newrb acutnewrb
#define ads_relrb acutrelrb
#define ads_setvar acedsetvar
#define ads_command acedcommand
#define ads_printf acutprintf
这几个函数的具体用法参见doc中acutnewrb、acutrelrb、acedsetvar、acedcommand、acutprintf、acutnewrb全局函数的用法。


所有的时间均为北京时间。 现在的时间是 02:23 AM.