更改源对象值后重新计算字段
大家好!我正在使用Teigha .NET SWIG库来编辑图纸,最近遇到了一个问题......
我有一个与字段相关的问题,更确切地说,如何在整个图形中手动更新(评估)字段(使用.net api)。
考虑以下用例:
- 有 2 个块引用附加到模型空间;
- 每个参考指向不同的块记录;
- 每个块引用“具有”一个属性引用;
- 第一个属性引用具有“foo”作为字符串值;
- 第二属性引用有一个字段,指向第一属性文本值;
- 在AutoCAD中打开此图形,它显示2个块引用,两个块上都有“foo”文本;
- 在AutoCAD中,如果我们更改源值ot“bar”并触发一些使AutoCAD评估字段的操作,则“bar”将出现在第二位;作为这样的行动,我们可以考虑保存,绘图,再生等。
这是我的问题:
我正在使用Teigha库打开图形,更改“源”文本值并从中提取PDF文件。打开结果PDF文件后,我看到该字段未被计算,并且第二个属性包含“foo”而不是“bar”的旧值。那么,我应该采取什么措施来使字段重新计算?
我应该遍历所有数据库对象并搜索OdDbField并调用value()方法?
**** Hidden Message ***** 嗨,
试试这两种
编辑。Regen();//ed=编辑器
交易管理器。QueueForGraphicsFlush();//trA=交易
希望它对您有用。 谢谢你的帖子
在AutoCAD或BricsCAD中,编辑器类中提供了此类方法,但我没有使用任何此类平台。我使用的是开放设计联盟的Teigha.NETSWIG生成的组件,没有编辑器或事务<Teigha.NET SWIG 您的链接仅适用于会员。我们看不到
我放弃ODA.NET库的原因之一是SWIG生成的API与其他平台的.NET代码不兼容。他们的Teigha“Classic”.net平台保持了这种兼容性,但感觉它注定要灭绝。RealDwg的价格(对我来说)是一样的,更容易在其他平台上重用代码,而且预期寿命更长,所以我选择了它
2018年8月:
错了,它仍然存在,没有任何进展。我在RealDwg上构建了tvCAD。如果我现在就开始,我会对泰加有更好的了解。 我只是一名开发人员,不参与战略决策。
链接已更新
我将测试以下场景:打开数据库-编辑-保存-处置数据库-使用
再次打开TD_Db.oddbEvaluateFields(db, 255)
,意思是
EvalContext.kOpen | EvalContext.kSave| EvalContext.kPlot | EvalContext.kOpen | EvalContext.kEtransmit | EvalContext.kRegen | EvalContext.kDemand | EvalContext.kPreview
页:
[1]