int extractEntityInfo(struct resbuf *rb, int& sel_method, ads_name ename, ads_name subname, short& marker, AcGePoint3d& pickpnt, AcGeVector3d& pickvec, // AcGeMatrix3d& xform, struct resbuf*& containers) { if ( rb == NULL || rb->restype != RTLB ) { assert(0); return 0; } // Get the selection method. rb = rb->rbnext; sel_method = rb->resval.rint; acutPrintf(_T("method %d"),sel_method); // Get the first ename (could be either the actual entity name or subentity name). rb = rb->rbnext; // Bump up to the first name, always after sel method. ename[0] = rb->resval.rlname[0]; ename[1] = rb->resval.rlname[1]; subname[0] = rb->resval.rlname[0]; subname[1] = rb->resval.rlname[1]; // Get marker info. rb = rb->rbnext; marker = rb->resval.rint; if(sel_method==1 ||sel_method==2) {rb->rbnext; rb->rbnext; rb->rbnext; pickpnt.set(rb->resval.rpoint[0],rb->resval.rpoint[1],rb->resval.rpoint[2]); rb=rb->rbnext; if(rb->restype==RT3DPOINT) { pickvec.set(rb->resval.rpoint[0],rb->resval.rpoint[1],rb->resval.rpoint[2]); rb=rb->rbnext; } } return 1; } 调用该函数后能够获得实体名、选择方式、GS,但是选择点pickpnt和 pickvec总是(0,0,0),不知为什么? 各位帮帮忙吧!感激不尽!! |