掌握了您的基本問題是:設置默認線條樣式。你可以用Tools > Options > Links > Default Style > Routing
和/或Tools > Options > Links > Generalization link style Default = Tree
來做到這一點。這是EA提供的。
如果你想要別的東西,你或多或少都會迷路,除非你在加載項中付出了很多棘手的努力。爲什麼?考慮你添加一個新的連接器。這不僅會出現在您正在處理的圖表中,而且會出現在出現兩個連接元素的所有圖表中。在這裏,我開始試驗,並確認了OP的問題:如果您創建無可見圖新的連接器
,EA將不創建t_diagramlinks
的條目。它只會在修改線條樣式時創建一個條目。缺失的條目讓EA創建一個默認的連接器樣式。現在,您可以做的是在連接器創建後立即發出
Repository.Execute("INSERT INTO t_diagramlinks (diagramId, connectorId, style) VALUES (<diagramId>, <con.connectorID> 'Mode=2;')");
。這將爲單個圖中的連接器設置自動路由。您可以使用簡單的查詢來查找所連接的兩個元素都存在的所有圖表,並相應地重複上述SQL。爲了使它完成,您還需要訂閱EA_OnPostNewDiagramObject
,因爲這可能也是導致連接器出現在圖表上的原因。我沒有測試過這個,EA是否會立即在t_diagramobject
中創建一個條目,以便您可以調整該條目以及是否需要重新加載圖表以使更改可見。無論如何,大量的提前調整都可能破壞已經存在問題的EA用戶界面。
原來的答覆
爲了創建新的連接器,並讓它們顯示你可以使用這個(對不起,Perl的)代碼:根據需要
my $e = $rep->GetElementByGuid("{EB86E518-5BDC-477b-8CF8-2BEE0A102CF7}");
my $e1 = $rep->GetElementByGuid("{28636F81-2B1E-40af-A777-81ECEB067F31}");
my $con = $e1->Connectors->AddNew("", "Dependency");
$con->{SupplierId} = $e->ElementId;
$con->Update();
my $dia = $rep->GetCurrentDiagram();
$rep->ReloadDiagram ($dia->DiagramID);
這將創建一個新的鏈接, EA將在圖表重新加載後顯示。你不必提琴DiagramLinks。只有在你想調整連接器時才需要。也就是說,要隱藏它們或添加彎曲等。
你的意思是元素/關係窗口? –
關係窗口 –
你能用句子回答嗎? –