Enterprise Architect Python 脚本 - 向图表添加元素
Enterprise Architect Python Scripting - Add an element to a Diagram
我正在尝试编写一个 python 脚本,以便我可以将元素添加到 Sparx Enterprise Architect 中的图表。
TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
TestDiagEl.ElementID=TestEl.ElementID
TestDiagEl.Update
TestDiag.Update
eaRep.ReloadDiagram(TestDiag.DiagramID)
好像不行,我哪里做错了?
编辑
看来@geert是对的,另外我没有在更新后添加()。
编写代码时,您应该知道每一行代码的作用以及编写代码的原因。
在这种情况下
TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
在内存中创建一个新的图表对象
TestDiagEl.ElementID=TestEl.ElementID
将图表对象的元素 ID 设置为我的元素的元素 ID
TestDiagEl.Update
将图表对象保存到数据库
TestDiag.Update
将内存中的当前图表保存到数据库中
eaRep.ReloadDiagram(TestDiag.DiagramID)
从数据库中获取图表详细信息并在 GUI 中显示它们
一个问题是TestDiag.Update
。由于内存中的图表还不知道新的 DiagramObject,因此您实际上正在撤消添加的新 DiagramObject。去掉那一行,一切就OK了。
另一个问题是您传递给 DiagramObjects.AddNew
方法的参数。正如您在提供的 documentation 中看到的那样,最高值和最低值应该是正数,所以:
TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=20;b=80","")
我正在尝试编写一个 python 脚本,以便我可以将元素添加到 Sparx Enterprise Architect 中的图表。
TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
TestDiagEl.ElementID=TestEl.ElementID
TestDiagEl.Update
TestDiag.Update
eaRep.ReloadDiagram(TestDiag.DiagramID)
好像不行,我哪里做错了?
编辑 看来@geert是对的,另外我没有在更新后添加()。
编写代码时,您应该知道每一行代码的作用以及编写代码的原因。
在这种情况下
TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
在内存中创建一个新的图表对象
TestDiagEl.ElementID=TestEl.ElementID
将图表对象的元素 ID 设置为我的元素的元素 ID
TestDiagEl.Update
将图表对象保存到数据库
TestDiag.Update
将内存中的当前图表保存到数据库中
eaRep.ReloadDiagram(TestDiag.DiagramID)
从数据库中获取图表详细信息并在 GUI 中显示它们
一个问题是TestDiag.Update
。由于内存中的图表还不知道新的 DiagramObject,因此您实际上正在撤消添加的新 DiagramObject。去掉那一行,一切就OK了。
另一个问题是您传递给 DiagramObjects.AddNew
方法的参数。正如您在提供的 documentation 中看到的那样,最高值和最低值应该是正数,所以:
TestDiagEl=TestDiag.DiagramObjects.AddNew("l=10;r=110;t=20;b=80","")