![]() |
【转帖】[求助]在arx中如何使用trim和break
[求助]在arx中如何使用trim和break
[求助]在arx中如何使用trim和break 我想在arx中使用trim和break函数,并能捕捉到图元对象的交点,不知该如何操作。望各位高手不惜赐教,最好能上传一个简单的例子,谢谢啦。 好掺,至今仍没有人回答,各位高手拜托了,想想办法帮帮忙吧 哪位兄弟知道实现方法,请不吝赐教 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42acdbblocktablerecord *getmodelspace(acdb::openmode mode){ acdbdatabase *pdwg = acdbhostapplicationservices()->workingdatabase(); acdbblocktable *pblocktable; acdbblocktablerecord *pmodelspace; pdwg->getsymboltable(pblocktable, acdb::kforread); pblocktable->getat(acdb_model_space, pmodelspace, mode); pblocktable->close(); return pmodelspace; } acdbobjectidarray breakentity(acdbobjectid objid,acgepoint3d spt,acgepoint3d ept){ double param1,param2; acgepoint3d p11,p21; acdbentity *pent; acdbcurve *pcurve; acdbobjectid nobjid; acgedoublearray params; acdbobjectidarray breaknewobjid=null; acdbopenobject(pcurve,objid,acdb::kforwrite); pcurve->getclosestpointto(spt,p11); pcurve->getclosestpointto(ept,p21); pcurve->getparamatpoint(p11,param1); pcurve->getparamatpoint(p21,param2); if (param1<param2){ params.append(param1); params.append(param2); }else{ params.append(param2); params.append(param1); } acdbvoidptrarray curvesegments; pcurve->getsplitcurves(params, curvesegments); acdbblocktablerecord *pmodelspace=getmodelspace(acdb::kforwrite); for (int i=0;curvesegments.length()>i;i++) { pent=(acdbentity*)curvesegments.at(i); pmodelspace->appendacdbentity(nobjid,pent); breaknewobjid.append(nobjid); pent->close(); } pmodelspace->close(); pcurve->close(); return breaknewobjid; } |
| 所有的时间均为北京时间。 现在的时间是 03:33 AM. |