几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】[讨论]请教一下从acdbline派生时需要重载哪些函数? (http://www.dimcax.com/hust/showthread.php?t=7021)

yang686526 2009-04-16 06:29 PM

【转帖】[讨论]请教一下从acdbline派生时需要重载哪些函数?
 
[讨论]请教一下从acdbline派生时需要重载哪些函数?
[讨论]请教一下从acdbline派生时需要重载哪些函数?
请教一下从acdbline派生时需要重载哪些函数? 9pt 10pt 11pt 12pt 13pt 15pt
可以派生出来的,但好象有些函数不能用,比如trim extend等,请大家讨论一下还有哪些函数需要重载?
以下是代码:
#include "aced.h"
#include "adslib.h"
#include "dbsymtb.h"
#include "acgi.h"
#include "dbapserv.h"
#include "dbents.h"
class myline: public acdbline
{
public:
acrx_declare_members(myline);
myline();
~myline();
};
acrx_dxf_define_members(myline,acdbentity,
acdb::kdhl_current, acdb::kmreleasecurrent, 0x5,\
myline,myline);
myline::myline()
{
}
myline::~myline()
{
}
void
addmyline()
{
ads_point pt1,pt2;
if ((ads_getpoint(null,"\nstart point:",pt1))!=rtnorm)
return;
if ((ads_getpoint(pt1,"\nend point:",pt2))!=rtnorm)
return;
acgepoint3d pt11,pt21;
pt11.set(pt1[x],pt1[y],pt1[z]);
pt21.set(pt2[x],pt2[y],pt2[z]);
myline *pnewobj = new myline;
pnewobj->setstartpoint(pt11);
pnewobj->setendpoint(pt21);
acdbblocktable *pblocktable;
acdbhostapplicationservices()->workingdatabase()
->getsymboltable(pblocktable, acdb::kforread);
acdbblocktablerecord *pblock;
pblocktable->getat(acdb_model_space, pblock,
acdb::kforwrite);
acdbobjectid objid;
pblock->appendacdbentity(objid, pnewobj);
pblocktable->close();
pblock->close();
pnewobj->close();
}
void
initapp()
{
myline::rxinit();
acrxbuildclasshierarchy();
acedregcmds->addcommand("qx",
"qq",
"qq",
acrx_cmd_transparent,
addmyline);
}
extern "c" acrx::appretcode
acrxentrypoint(acrx::appmsgcode msg, void* appid)
{
switch (msg) {
case acrx::kinitappmsg:
acrxdynamiclinker->unlockapplication(appid);
acrxdynamiclinker->registerappmdiaware(appid);
initapp();
break;
case acrx::kunloadappmsg:
acedregcmds->removegroup("qx");
deleteacrxclass(myline::desc());
}
return acrx::kretok;
}


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