在cad.net中有这样一个函数 DBObject.HandOverTo();
我曾经尝试使用此函数,但是一直报错
在经过我的一番查找资料和尝试之后,我发现,此函数无法在StartTransaction()开启事务的上下文中使用
我尝试使用OpenCloseTransaction,最终成功完成了替换,代码如下
var doc = Acap.DocumentManager.MdiActiveDocument;
var r1 = doc.Editor.GetEntity("\n选择要被替换的对象");
if (r1.Status != PromptStatus.OK)
return;
using var tr = doc.Database.TransactionManager.StartOpenCloseTransaction();
var selectEntity = (Entity)tr.GetObject(r1.ObjectId, OpenMode.ForWrite);
var newEntity = new Line(Point3d.Origin, new Point3d(100, 100, 0));
selectEntity.HandOverTo(newEntity, true, true);
tr.AddNewlyCreatedDBObject(newEntity, true);
tr.Commit();
其实此函数从用法上来看,命名为HandOverBy会更符合直觉
完
标签:HandOverTo,r1,tr,var,net,true,cad From: https://www.cnblogs.com/d1742647821/p/18310874