交易。AddNewlyCreatedDBObject()参数
有人能告诉我当AddNewlyCreatedDBObject - add -的第二个参数设置为false时会发生什么吗?我已经搜索了文档等等,但是没有什么进展,或者可能我太笨了。
如果文档有什么值得大书特书的,我就不会用这样的问题来打扰你了。
预先感谢。
**** Hidden Message ***** 从帮助ArxMgd.chm
piccy:
你好,Kerry,
是的,这也是我在AutoCAD 2010的arxdoc.chm中发现的。
但是这一切意味着什么?为什么要删除尚未添加的对象?
为什么要从事务中删除对象,而不是从数据库中明确删除它?
如果从文档中引用的解释有隐藏的含义,我对此表示怀疑,那么我看不到它们。
记录某事不仅仅是列出列表和总结。那留档显然很糟糕。
感谢回复。
哈哈,欢迎来到AutoCAD API,我的朋友。试试ACA/MEP这样的垂直工具,你就会知道什么是糟糕的文档了。 这是许多行业的共同问题。程序员和其他设计技术人员不需要接受大量的技术写作培训,当任务出现时,他们会选择更重要的东西(阅读:不那么无聊)。最后,它最终落在了一个不知道自己在写什么,也没有任何将信息格式化为良好布局的经验的大三学生的桌子上。然后,负责人来了,要求把工作放在一边,以支持他们自己的宠物项目。最后,项目预算不足,因此任何多余的时间都只能花在关键问题上<最终结果:半成品、陈旧过时、过时且难以遵循。 要回答这个问题,您需要将add设置为false,以便在传输对象id时将对象转换为另一种类型的对象时从事务中删除该对象。例如,当您使用ConvertTo方法将轻型多段线转换为二维多段线时会发生这种情况:
using (Polyline pline = (Polyline)t.GetObject(plineId, OpenMode.ForWrite))
{
t.AddNewlyCreatedDBObject(pline, false);
Polyline2d poly2 = pline.ConvertTo(true);
t.AddNewlyCreatedDBObject(poly2, true);
t.Commit();
}
通过事务打开LW多段线,因此事务知道它。但您将其替换为一个Polyline2d,它将接受id。因此,您需要通过调用AddNewlyCreatedBobObject将LWPolyline删除到事务中,第二个参数为false。如果不这样做,提交时将出现致命错误
事实上,当您需要从事务中删除对象时,事务中应该有一个RemoveObject来处理罕见的情况,而不是一个带有奇怪第二个参数的AddNewlyCreatedBoObject。这就像按下任务栏上的“开始”按钮来停止计算机。
http://adndevblog.typepad.com/autocad/2012/06/converting-polyline-to-polyline2d.html @Maxence,欢迎来到沼泽。对于那些不知道的人,AutoCAD的Jon Skeet(我假设是你)。
顺便说一句,这是一个很好的例子,开始按钮也是如此。
顺便说一句,这是SMF(这个论坛)中的一个。
谢谢马克森斯和欢迎。
直到现在,当你通过假时,永远无法得到一个例子或解释。 哇,这就是为什么我的转换多边形崩溃的原因。干杯伴侣 大卫用
补充道:
就我个人而言,我把部分责任归咎于AutoDesk的“可见”人员,他们开始将vba翻译成vb.net供公众使用,因为它“更容易”。这导致了信息的二分法,从而导致支持两种语言的努力耗尽了预算,导致留档不达标。
页:
[1]