使用PlantUML,我为我的文档创建了一个小状态图:
@startuml
state Powered {
[*] -d-> Starting
Powered -r-> Starting : Some error
Starting -d-> Operational
}
[*] -d-> Powered : Power On
Powered -u-> [*] : Power Off
Powered -d-> Powered : Reset
@enduml
Run Code Online (Sandbox Code Playgroud)
(顺便说一句:PlantUML 是一个非常好的工具,可以从文本描述嵌入嵌入标记文档(如 asciidoc 或 reStructuredText)创建图形输出)
正如你所看到的图表绘制有点草率
正如文档所描述的那样,您可以通过书写-left->或-l->简称而不是仅仅对箭头方向产生一些影响-->。
有没有影响的方式方法如何,并在那里箭头画出?我真的很想只绘制水平或垂直的 直线。
我想生成一个包含分层包的包图,其中可能包含重复的名称,但不在同一级别。例如:
@startuml
package A {
package B {
package C
}
package A
}
@enduml
Run Code Online (Sandbox Code Playgroud)
我想,package A.A也许可以接受。但因plantuml以下错误而失败:Thie element (A) is already defined。
我还尝试以下操作:
@startuml
folder A {
folder B {
folder C
}
folder A
}
@enduml
Run Code Online (Sandbox Code Playgroud)
然后,plantuml由于同样的错误而失败。
我试图将同一个对象链接到框中的多个对象。但盒子内的物体是水平放置的,而不是垂直放置的。
:Application:
rectangle Set{
Application-right--> (Set Property)
(Set Property)-right..> (Sensor Property) : <<extends>>
(Set Property)-right..> (Info Property) : <<extends>>
(Set Property) .right..> (Audio Property) : <<extends>>
(Set Property) .right..> (Car navigation Property) : <<extends>>
(Set Property) .right..> (Cluster Property) : <<extends>>
(Set Property) .right..> (Diagnostic Property) : <<extends>>
(Set Property) .right..> (HVAC Property) : <<extends>>
(Set Property) .right..> (Power Property) : <<extends>>
(Set Property) .right..> (Vendor extension Property) : <<extends>>
}
Run Code Online (Sandbox Code Playgroud)
我正在为未来的应用程序构建一个线框,并且想要一个左侧带有复选框列的网格。[ ]我正在表格内使用空复选框小部件。
这是我的代码:
\n\n@startuml\n\nsalt\n{\n {#\n Col1|Col2\n [ ]|Row data\n }\n}\n\n@enduml\nRun Code Online (Sandbox Code Playgroud)\n\n我发现该复选框呈现为按钮。有没有办法让它呈现为空复选框?
\n\n更新:
\n\n我提出了一种利用 UTF-8 字符 U+2610 和 U+2612 的解决方法。这或多或少给了我我所追求的东西,但我会将这个问题留待几天,以防有人有实际的解决方案。
\n\n@startuml\n\nsalt\n{\n {#\n Col1|Col2\n \xe2\x98\x90|Row data\n \xe2\x98\x92|Row data\n }\n}\n\n@enduml\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试在单列上垂直对齐 PlantUML 组件图的元素。我尝试了“从上到下方向”和“从左到右方向”选项,但没有好的结果。我发现的唯一方法是将每个元素包装在匿名“框架”内并设置“从左到右方向”选项。有办法避免这种情况吗?
作为一个相关的问题,是否有文档解释元素如何与最终视图对齐,以及“从上到下”和“从左到右”应该如何工作?
非常感谢!
participant是否可以在不使用全局设置的情况下更改特定的边框/字体颜色skinparam?
对于特定的情况participant,我需要具有与 中定义不同的边框+字体颜色skinparam。
我目前正在使用 PlantUML 来设计数据库的 ERD。一切都很好,图表已经完成,但我正在尝试为我的实体添加背景颜色,以区分它们各自的模式。
我正在考虑实体的背景颜色,或者可能是一个将实体保存在其中的彩色矩形。
我尝试使用skinparam实体的名称及其别名......
skinparam entity {
backgroundColor<<usr>> DarkOrchid
}
Run Code Online (Sandbox Code Playgroud)
skinparam entity {
backgroundColor<<User>> DarkOrchid
}
Run Code Online (Sandbox Code Playgroud)
这些都不起作用...任何人都可以帮忙吗?
谢谢
========= 编辑
根据要求,举一个小例子:
'==========='
'auth schema'
entity "User" as usr {
*id : number <<PK>>
--
password: varchar
salt: varchar
role: number <<FK>>
last_login_at : datetime
is_active : boolean
}
entity "User Role" as url {
*id : number <<PK>>
--
name: varchar
clearance_lvl: text
is_active : boolean
}
'====================='
'personnel data schema'
entity "Professor" as prof { …Run Code Online (Sandbox Code Playgroud) 如何在 Plant UML 中添加嵌套替代流程?
我有一个需要嵌套 alt 的用例。类似于下面的
当我添加它时,只显示最里面的 alt。需要帮助找到正确的语法
alt [condition 1]
do some steps
alt [condition 2]
do some steps
else [condition 2 Not true] so do nothing
else [condition 2 Not true] so do nothing
Run Code Online (Sandbox Code Playgroud) 我刚刚创建了一个状态图,现在我正在努力解决块的位置。我的目标是将状态 1、2、4、5 放在“向下”行中,将状态 3 放在状态 1 的右侧。
查看我的 UML 代码以及当前(左)和想要(右)设计的附加屏幕截图
UML代码:
@startuml diagramStackO
scale 400 width
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -up-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml
Run Code Online (Sandbox Code Playgroud)
屏幕截图(左:当前右:它应该是什么样子)
我与代码的唯一区别是我的类采用点格式,例如auth.Permission:
@startuml
class auth.Permission {
+ id
+ content_type
+ codename
}
class auth.Group {
+ id
+ name
+ permissions
}
auth.Group::permissions -- auth.Permission
@enduml
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,最终结果是错误的:创建了第三个类,而不是在正确的位置绘制关系:https://www.plantuml.com/plantuml/uml/SoWkIImgAStDuKhEIImkLaWiBSdG2qWjoiqiBixCprEevj9Mo4m14idvUIMfUINn9PK5gM1kIcfUOcugLoqN5x9MzwByqWA4Bf0I85K0D x0Of06XqieAIKf1LnVTVYw7rBmKeEi0
我做错了什么?谢谢。