python万年历类库(python操作visio绘制故障树)

生活 生活 更新时间: 2024-07-08 15:59:31

python万年历类库?生成效果:示例介绍:,我来为大家科普一下关于python万年历类库?以下内容希望对你有帮助!

python万年历类库(python操作visio绘制故障树)1

python万年历类库

生成效果:

示例介绍:

新建一个visio文件,套用故障树模板,添加故障树的模型并连线。

通过这个例子,可以将结构化的信息变成可视化的故障树。例如,用excel先分析,然后抽取绘图。

import win32com.client as win32from win32com.client import constantsappVisio = win32.gencache.EnsureDispatch("Visio.Application")vdoc = appVisio.Documents.Add("FAULT_M.VSTX")stn = appVisio.Documents.Open("FAULT_M.VSSX")#选择其中第一页page = vdoc.Pages.Item(1)# 从模板中选择一种形状masters = stn.Mastersmaster = masters.ItemU("Event")shp1 = page.Drop(master, 6, 8)# shp1便于获取对象,然后进行其他的控制,例如修改内容、颜色、样式等shp1.Text = '事件'shp2 = page.Drop(masters.ItemU("OR gate"), 6, 6)shp3 = []shp3.append(page.Drop(masters.ItemU("Event"), 4, 4))shp3[-1].Text = '原因A' #填写文字shp3.append(page.Drop(masters.ItemU("Event"), 6, 4))shp3[-1].Text = '原因B'shp3.append(page.Drop(masters.ItemU("Event"), 8, 4))shp3[-1].Text = '原因C'# 连接添加的shape# visAutoConnectDirDown可以将连线的箭头向下shp1.AutoConnect(shp2, constants.visAutoConnectDirDown, masters.ItemU("Dynamic connector")) for shp in shp3: shp2.AutoConnect(shp, constants.visAutoConnectDirDown, masters.ItemU("Dynamic connector"))

使用AutoConnect时,如果shape摆放过近,visio会自动调整shape的位置。

工具自动调整的效果如下:

visio自动调节shape位置的效果

将下面3个的间距调大后,连线后就没有发生位置移动了。最终带文字的效果如下: