messyなkitchenなブログ

ただひたすらに散らかった台所や人生やその他を晒す。

MENU

ノーランク

オブジェクト間を結ぶ線の制御方法、新しいのを見つけたのでメモしておきますわ。

ちょっとコンポーネント図を描いていました。↓こんなの

なんか窮屈なカメラ

横には余裕があるので、カメラ をうまく配置できないものか。

こんなの見つけました。 [norank]

Add norank option on links - PlantUML Q&A

ランクが無視される?

ということで試してみます。

- camera -- cam_port
+ camera -[norank]- cam_port

はい、カメラの位置が遠くなりました

一番遠くへ配置されるような動きになる様子です。 試しに別のオブジェクトを 1個、遠くへ配置してみます。

- card -- hub
+ card --- hub

別のオブジェクトに引きずられて遠くへ移動

ただ単純にオブジェクトを遠くへ配置したい場合は、obj1 -- obj2obj1 --- obj2 とか obj1 -------- obj2 のようにハイフンを伸ばせば実現できます。
今回見つけた [norank] は効果は異なりますが、図のレイアウト調整の際に役立ちそうな 小技 の一つだと感じました。


▶ソースコードはこちら(クリックすると展開されます)

@startuml
skinparam componentStyle rectangle

package "CPU Board" as board {
    interface "Camera port" as cam_port
    interface HDMI as hdmi
    interface I2C_1 as i2c
    interface "I2C_2" as i2c2
    interface USB as usb
}

package "Sensor cluster" as sensor {
    [room temp] as room
    [alc] as alcohol
    [co2] as co2
    co2 -left[hidden]- alcohol
}

package "Touch device" as tp {
    [Display] as display
    [Touch] as touch
}

[USB Hub] as hub
[Card Reader] as card
[Camera] as camera #pink
[A/D Con] as adc

camera -[norank]- cam_port
display -- hdmi
hub -- usb
touch -- hub
card -- hub

room -- i2c
co2 -- i2c2
alcohol -- adc
adc -- i2c2

@enduml