1、需要平移pl线,根据创建的AcDbPolyline* pline = new AcDbPolyline()作为输入值,将pl指针表示的线段顶点坐标进行平移。
2、代码
ads_name ss;
acedSSAdd(NULL, NULL, ss);
ads_name entres;
acdbGetAdsName(entres, lineId);
acedSSAdd(entres, ss, ss);
AcGePoint2d pstart = pt[0];
acedCommandS(RTSTR, _T("MOVE"), RTPICKS, ss, RTSTR, _T(""), RTPOINT, pstart, RTPOINT, pmove, RTNONE);
acedSSFree(entres);
acedSSFree(ss);
3、解析
使用acedSSAdd,创建一个空的选择集;
acdbGetAdsName函数,可根据对象ID来获取实体;
acedCommandS函数,用于调用CAD内置的命令,如move命令;
acedSSFree函数,释放选择集,否则会一直打开多个选择集。
4、注意
对象ID的获取,需线执行pl线添加到图形数据库中。如下代码:
pBlockTableRecord->appendAcDbEntity(lineId, pl);
通过appendAcDbEntity函数,将多段线添加,并返回对象的ID信息。


被折叠的 条评论
为什么被折叠?



