[求助]在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:

penmode 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;
}