![]() |
【转帖】很奇怪的选择集问题.
很奇怪的选择集问题.
很奇怪的选择集问题. 通过 int rc = ads_ssget(_t("w"), pt1, pt2, null, ssname); 拾取到一个实体后,用pent->transformby将其移出拾取范围, 然而再次执行ads_ssget(_t("w"), pt1, pt2, null, ssname); 该实体再次被选中,不知道为什么?一直搞不清楚,希望有人能指点迷津啊 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 27int rc = ads_ssget(_t("w"), pt1, pt2, null, ssname); if(rc != rtnorm) { return ; } long length; ads_sslength(ssname, &length); ads_name entname; acdbobjectid oid; long rejected = 0; for(int i=0; i<length; i++) { rc=ads_ssname(ssname, i, entname); es=acdbgetobjectid(oid, entname); acdbentity *pent ; es = acdbopenacdbentity( pent , oid , acdb::kforwrite ) ; acgematrix3d mat ; acgevector3d vec( pt1[x]-pt2[x] , pt1[y]-pt2[y] , 0 ) ; mat.settranslation( vec) ; es = pent->transformby( mat ) ; pent->close() ; } ads_ssfree(ssname); rc = ads_ssget(_t("w"), pt1, pt2, null, ssname); //前面被移出的实体依旧被选中 ads_sslength(ssname, &length); if(rc != rtnorm) 解决方法: 在移动完实体后,刷新视图就好了 actrtransactionmanager->flushgraphics(); //刷新视图 |
| 所有的时间均为北京时间。 现在的时间是 08:09 AM. |