2011-06-21 26 views
11

我正在尋找(好)電路/框圖繪圖的算法或可視化工具。電路/框圖圖

我也對這個問題的一般公式感興趣。通過「電路圖」,我的意思是能夠探索帶有I/O端口和它們的連接(電線)的塊圖(矩形)的路徑&。這些框圖可以是分層的,即某些框可能有一些嵌套的內部子結構等。

此主題強烈關聯於經典圖形繪製,需要考慮端口位置的補充約束,以及可能是塊的形狀(各種尺寸的矩形)。 Graphviz工具對這個問題沒有反應(至少我以前的實驗並不令人滿意)。

強制執行算法保留了我的注意力,但我剛剛在經典有向圖上找到了論文。

任何提示?

[更新2013年11月21日]似乎是迄今爲止最好的參考就是Spönemann

回答

1

爲了使生產質量電路圖以及框圖,我強烈推薦JDAplevich的「電路宏」。它有很好的記錄和積極維護。請參閱此包裝生成的示例circuit macros examples

有一些學習曲線,例如可以使用「dpic」圖形語言繪製自己的圖表。但是這個工具本身非常強大。

對我來說有兩個遺留問題:

  1. 沒有實時更新
  2. SVG輸出缺乏

我砍死了一些JavaScript來

(watch m4 file change)->[m4->dpic->latex->pdf]->svg->(show in html) 

這裏是它的要點

// watch .m4 file 

var chokidar = require('chokidar'); 
var resolve = require('path').resolve; 
const touch = require('touch') 
const {exec} = require('child_process') 

chokidar.watch("*.m4").on('change', fn=>{ 
    let ff = resolve(fn) 
    console.log(ff, "changed") 
    exec("runtask.bat " + ff, {cwd:"../"}, (err,stdin,stdout)=>{ 
    console.log(err,stdin, stdout) 
    touch("index.html") //svg updated 
    }) 

}) 

這裏是runtask.bat的Windows

m4 pgf.m4 %1 | dpic -g > tmp.tex 

C:\texlive\2017\bin\win32\pdflatex template.tex 

tool\dist-64bits\pdf2svg template.pdf %~dpn1.svg 
tool\dist-64bits\pdf2svg template.pdf %~dp1tmp.svg 

這樣的話,你可以通過編寫M4/DPIC碼「畫」,看看結果在瀏覽器中活;而svg是從pdf生成的,看起來好多了。

1

有可能做graphviz的替代品 - 參見例如infovisprotovistulip

另請參閱其他相關問題1,2,3

你能解釋graphviz在哪裏不足嗎?您列出的我不確定的唯一要求是附加到特定的端口。我本來以爲你可以用複合形狀/子圖解決這個問題,但也許不是......?

編輯:另一種選擇,特別是如果你正在看軟件工程圖。你有沒有考慮過eclipse gmp toolkit?這是用來構建例如UML2 editor tools

hth。

+0

關於graphiz的問題:我還沒有能夠管理邊界路由,將圖形變成看起來像真正的工程師繪圖的東西(參見[示例])(http://www.mathworks.com/help/toolbox/fuzzy /sltank.png)) – JCLL

+0

關於Eclipse,我知道GMF,但我不確定它可以幫助我探索塊圖繪製的算法。需要再看一遍。 – JCLL

+0

好的。不,graphviz不會做直線佈局。不確定其他人。另一種選擇可能是yworks(http://www.yworks.com)。庫(yFiles)不是免費的,但是有一個免費的應用程序(yEd)包裝它,您可以將數據提供給它。它的直線佈局非常好(編輯器爲例如UML,BPMN提供模板)。心連心。 – sfinnie

0

我不知道任何工具都可以輕鬆製作漂亮的方塊圖,而且工作量極少。我見過的一些最好看的結果是從TikZ。看看這裏的例子:

+0

就可視化而言,Tikz也是我的解決方案。我也同意,爲這種方塊圖設計一個自動繪圖仍然需要一些人工(令人驚訝的是)。 – JCLL

+0

我希望一旦連接器工具獲得用戶可放置的連接點(http://wiki.inkscape.org/wiki/index.php/UsingTheConnectorTool),Inkscape就會成爲一個很好的工具。 – nibot

+0

更多鏈接:http://electronics.stackexchange.com/questions/1024/good-tools-for-drawing-schematics – nibot

3

我也是用TikZ的時刻,但你不妨試試http://blockdiag.com/

+0

Tikz岩石!學習需要時間,但你會喜歡它。您可以將節點放置在您喜歡的地方。一旦你找到了位置,休息會隨之而來。 – Dilawar