首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python-visio-1,查看本机模具的全部形状代码

python-visio-1,查看本机模具的全部形状代码

原创
作者头像
用户11552255
发布2025-08-28 14:23:27
发布2025-08-28 14:23:27
1081
举报
文章被收录于专栏:PYTHONPYTHON

一、当前版本

D:\Python\PycharmProjects\PythonProject1>python --version

Python 3.13.2

D:\Python\PycharmProjects\PythonProject1>

二、单板安装包版本

D:\Python\PycharmProjects\PythonProject1>pip list

Package                   Version

------------------------- --------

openpyxl                  3.1.5 // 2013-office-excel

pywin32                   311 //2013-office-visio

pywin32-ctypes            0.2.3

D:\Python\PycharmProjects\PythonProject1>

代码

# author:""

# D:\Python\Python313

# date:2025/8/26 21:49

# DevelopmentEnvironment: Windows 11 home Chinese(Simplified),64bit

# -*- coding: utf-8 -*-, T14P

# D:\Python\>python / >>> import os / >>> dir() dir(os) 查看模块定义全部名称

# Ctrl + / 批量注释的快捷键#

# visio2013 显示开发工具, 文件-->选项--》高级--》勾选以开发人员身份运行★

# A4: 210mm x 297mm 纵向 /A4: 297mm x 210mm 横向

# excel ->sheet->cell

# visio ->page ->shape,connect


visio-vssx.py


import win32com.client as win32

import sys #导入内置函数,命令行输入参数文件名

import os #读取目录文件

# 定义ANSI转义序列开始红色文本的代码

red = '\033[31m'

green = '\033[32m'

blue = '\033[34m'

# 定义ANSI转义序列结束颜色的代码

c_end = '\033[0m'

# Visio的模板/模具保存在

# C:\Program Files\Microsoft Office\root\Office16\Visio Content\2052目录下(2019专业版),

# C:\Program Files\Microsoft Office\Office15\Visio Content\2052(2013专业版,Win11)

# C:\Program Files(x86)\Microsoft Office\Office12\2052(2007专业版,Win7)

print(f"第一步,列出本机安装visio的模具目录, 比如2023visio专业版")

if len(sys.argv) < 2:

zy_path = r"C:\Program Files\Microsoft Office\Office15\Visio Content\2052" #2013visio的目录缺省值

print(f"Cur visio-vssx Dir: (defaulte) {zy_path}")

else:

zy_path = sys.argv[1]

print(f"Cur visio-vssx Dir: (inpute ) {zy_path}")

#第二步打印帮助信息

printf(f"第二步打印帮助信息")

appVisio = win32.Dispatch("Visio.Application")

print(f" 帮助信息:dir(appVisio.Documents)")

print(dir(appVisio.Documents)) # 查看Documents对象的所有方法/属性

print(f" 帮助信息:help(appVisio.Documents.Open)")

print(help(appVisio.Documents.Open)) # 查看Open方法的简要说明

appVisio = win32.Dispatch("Visio.Application")

appVisio.Visible = True #首次运行时,保持True, 以便调试。弹出visio窗口

#操作前建议设置Application.Visible = False以避免界面闪烁

#第三步 读取目录文件到列表files

printf(f"第三步 读取目录文件到列表files")

try:

files = os.listdir(zy_path)

except Exception as e:

print(f"An error occurred: \n{e}") #如果路径不存在,报错退出程序,代码-2

sys.exit(2)

if zy_path.find("\\\\") > 1: # 查找是否输入\\字符了,路径会失败,退出程序

print(f"路径输入错误\\,程序退出.{zy_path.find("\\\\")}")

sys.exit(3)

print(f"文件数量:{len(files)},{files}")

#第四步,过滤,保留VSSX文件到files_vssx。

printf(f"第四步,过滤,保留VSSX文件")

files_vssx=[]

for f in files:

if f.find(".VSSX")>-1 or f.find(".vssx")>-1 : files_vssx.append(f)

print(f"文件数量:{len(files_vssx)},{files_vssx}")

#第五步,循环读取模具文件的形状

printf(f"第五步,循环读取模具文件的形状")

for x , file in enumerate(files_vssx):

#stn = appVisio.Documents.Add(file) #打开模具文件名称,读取全部形状

stn = appVisio.Documents.Open(file) # 打开模具文件名称,读取全部形状,不close

#if x > 5: break #打开第5个文件后停止

sum_master=len(stn.Masters)

for y,elem in enumerate(stn.Masters,start=1):

print(f"{x:>3}{file:>14},{green}stn: {stn}{c_end},形状总数名称{sum_master}_{y:0>3}, {elem.NameU}")

#stn.Close() #弹出窗口提示是否保存,需要手动点击不保存

print(f"end")


#PyCharm 2024.3.6 (Community Edition)直接运行

#命令行运行python.exe visio-vssx.py

#命令行运行python.exe visio-vssx.py "C:\Program Files\Microsoft Office\Office15\Visio Content\2052"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档