import os import tkinter.filedialog import tkinter.simpledialog from pyautocad import Autocad # 选择文件夹 folder_path = tkinter.filedialog.askdirectory() # 弹窗输入要查找的文本 search_text = tkinter.simpledialog.askstring("查找", "输入要查找的文本:") if not search_text: print("未输入查找文本") exit() # 递归遍历所有子文件夹查找DWG/DXF文件 cad_files = [] for root, dirs, files in os.walk(folder_path): for file in files: if file.lower().endswith(('.dwg', '.dxf')): if search_text.lower() in file.lower(): cad_files.append(os.path.join(root, file)) # 在AutoCAD中打开第一个匹配的文件并替换字体 acad = Autocad(create_if_not_exists=True) if cad_files: try: file_to_open = cad_files[0] print(f"尝试打开文件: {file_to_open}") # 打开文件 acad.app.Documents.Open(file_to_open) print(f"成功打开文件: {file_to_open}") # 等待文档完全加载 import time time.sleep(1) # 使用 acad.doc 而不是返回的文档对象 doc = acad.doc # 检查文档是否有 TextStyles 属性 if hasattr(doc, 'TextStyles'): print("找到 TextStyles 集合") for style in doc.TextStyles: try: # 尝试多种方式更新字体 if hasattr(style, 'FontFile'): style.FontFile = 'gbcbig.shx' print(f"已更新样式 {style.Name} 的字体为 gbcbig.shx") elif hasattr(style, 'font'): style.font = 'gbcbig.shx' print(f"已更新样式 {style.Name} 的字体为 gbcbig.shx") else: print(f"样式 {style.Name} 不支持字体修改") except Exception as e: print(f"更新样式 {style.Name} 失败: {e}") except Exception as e: print(f"打开文件时出错: {e}") print(f"错误类型: {type(e).__name__}") else: print("未找到文件名包含该文本的DWG或DXF文件") try: import win32gui import win32con def find_autocad_window(): """查找包含'AutoCAD'字样的窗口""" def enum_windows_callback(hwnd, windows): if win32gui.IsWindowVisible(hwnd): window_title = win32gui.GetWindowText(hwnd) if 'autocad' in window_title.lower(): windows.append((hwnd, window_title)) return True windows = [] win32gui.EnumWindows(enum_windows_callback, windows) return windows # 查找AutoCAD窗口 autocad_windows = find_autocad_window() if autocad_windows: # 获取第一个匹配的窗口 hwnd, title = autocad_windows[0] print(f"找到AutoCAD窗口: {title}") # 将窗口带到前台并置顶 win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) win32gui.SetForegroundWindow(hwnd) print("AutoCAD窗口已置顶") else: print("未找到AutoCAD窗口") except ImportError: print("缺少win32gui库,请安装pywin32") except Exception as e: print(f"设置窗口置顶失败: {e}")pyautocad查找文件夹内 名称含文本的cad文件打开
张小明
前端开发工程师
3个技巧让AI对话永不掉线:FastGPT上下文管理实战指南
想要AI对话像真人一样连贯自然吗?FastGPT上下文管理功能正是解决这一痛点的利器。本文将通过3个实操技巧,带你掌握如何让AI在多轮对话中保持完美的记忆和逻辑连贯性,告别对话断层和重复提问的尴尬。 【免费下载链接】FastGPT labring/FastGPT…
Langchain-Chatchat本地部署教程:从零构建安全可控的智能问答系统
Langchain-Chatchat本地部署教程:从零构建安全可控的智能问答系统 在企业数字化转型加速的今天,越来越多组织开始探索如何将大模型技术融入内部知识管理。然而,当通用AI助手面对财务制度、客户合同或医疗记录这类敏感信息时,数据…
RCMloader与Fusee兼容性故障排除解决方案
Nintendo Switch定制固件Atmosphere的启动过程中,RCMloader注入器与Fusee引导程序的兼容性问题是困扰技术用户的主要障碍。本文从底层技术机制出发,深入分析兼容性冲突的根源,并提供系统化的解决方案。 【免费下载链接】Atmosphere Atmosphre…
FlutterFire推送通知合规性实战终极指南:从风险识别到持续优化的完整框架
FlutterFire推送通知合规性实战终极指南:从风险识别到持续优化的完整框架 【免费下载链接】flutterfire firebase/flutterfire: FlutterFire是一系列Firebase官方提供的Flutter插件集合,用于在Flutter应用程序中集成Firebase的服务,包括身份验…
耗子面板批量部署实战:5分钟搞定100台服务器配置
耗子面板批量部署实战:5分钟搞定100台服务器配置 【免费下载链接】panel 耗子面板 - GO 开发的轻量 Linux 面板 项目地址: https://gitcode.com/GitHub_Trending/pane/panel 还在为手动配置服务器而熬夜加班?面对几十上百台新服务器,传…
华为OD机试真题2025双机位C卷 PythonJS 实现【挑选宝石】
目录 题目 思路 Code 题目 游乐园有一款互动游戏,游戏开始时会提供n个宝石,每个宝石都一个属性值a1,a2..an.玩家在游戏前可以挑选x颗宝石,将这些宝石的属性值相乘组成玩家的属性值。游戏玩家需要y点属性值,请帮助游戏玩家计算有…