blockdiagでフローチャート

フローチャートを作ることがあってblockdiagで作ってみました。

ざっとこんな感じで作成。
blockdiag便利ーーー

blockdiag {
orientation = portrait
node_width=192;
node_height=64;

InputFile -> A ;
A -> A-Yes ;
A -> A-No ;
A-Yes -> A-OutputFile -> OutputFile ;
A-No -> B ;
B -> B-Yes;
B -> B-No;
B-Yes -> C -> D -> NewOutputFile;
B-No -> OutputFile ;
NewOutputFile -> OutputFile;

// Shape設定
InputFile [shape = “flowchart.input”];
OutputFile [shape = “flowchart.input”];
A-OutputFile [shape = “flowchart.input”];
NewOutputFile [shape = “flowchart.input”];
A [shape = “diamond”];
B [shape = “diamond”];
A-Yes [shape = “minidiamond”];
A-No [shape = “minidiamond”];
B-Yes [shape = “minidiamond”];
B-No [shape = “minidiamond”];

// Group設定
group{
C; D;
label= “処理”;
}

// Label設定
A[label = “フラグチェック”];
A-OutputFile[label = “削除一覧ファイル”];
B[label = “新規フラグチェック”];
C[label = “新規ユーザアカウント生成”];
D[label = “新規ユーザパスワード生成”];
OutputFile[label = “新登録ユーザ一覧ファイル”];
NewOutputFile[label = “新規ユーザ一覧ファイル”];
InputFile[label = “登録ユーザ一覧ファイル”];
A-Yes[label = “YES”];
A-No[label = “No”];
B-Yes[label = “YES”];
B-No[label = “No”];

}

で仕上がった画像が下記の通り。

2012042504

悪くはないけどイメージのフローチャートと違う・・・・

イメージのフローチャートはWikipediaにあるような感じでした

分岐部分をこんな風に分ける方法ないのかなぁ。

あとは最後に線が集まっているところの線がわかりにくいなぁ。
その辺がClearされなくてもblockdiagは十分使いやすいん