区域另存为涉及很多地方,如出图等,以前一直有个误区就是利用Trim来做,搜集了大量关于Object
arx裁剪的资料,但是都没有做出来,后来再做一个项目是偶然发现利用database就可以简单的把区域内的图形存出来。具体思路是:
- 用区域选择并保存选择集,代码如下:PromptSelectionResult per1 = ed.SelectCrossingPolygon(CADhelpercs.LineToPoint(line));
ObjectIdCollection idc = new ObjectIdCollection();
foreach (var item in per1.Value.GetObjectIds())
{
idc.Add(item);
} - 利用数据database把选出来的数据另存出来即可,代码如下: Database ndb = db.Wblock(idc, line.StartPoint);
ndb.SaveAs(sfd.SelectedPath + "\\" + name, DwgVersion.AC1800); - 这里面有个重要的东西就是要关闭输入,不然存出来的dwg没有数据;