Maya Python开发FileManager时MNGR_Window报错及功能实现求助
问题排查与修复方案
核心错误点梳理
- 缺少
os、maya.cmds模块导入声明 - 类内实例方法未加
self参数,调用类内方法未加self.前缀,导致函数/变量寻址失败,触发未定义报错 - 按钮的
command参数绑定错误,直接写MakeFolders会寻址全局作用域的函数,找不到类内的方法 - 仅读取了资产名称输入框的值,未获取下拉选择的项目、资产类型参数,路径拼接逻辑完全缺失
- 没有按需求实现三级子文件夹(model/texture/shading)的自动生成逻辑
修复后完整可用代码
import os import maya.cmds as cmds class MNGR_Window(object): # 根目录可根据实际需求修改,这里对应你需求里的B盘根路径 ROOT_PATH = "B:/" # 固定需要生成的子文件夹名 SUB_FOLDERS = ["model", "texture", "shading"] def make_dir(self, path): if not os.path.exists(path): os.makedirs(path) return path def MakeFolders(self, *args): # 读取所有UI输入值 asset_name = cmds.textField(self.tb, q=True, tx=True).strip() project = cmds.optionMenu(self.project_menu, q=True, value=True) asset_type = cmds.optionMenu(self.type_menu, q=True, value=True) if not asset_name: cmds.warning("请输入资产名称") return # 拼接基础路径 base_path = os.path.join(self.ROOT_PATH, project, asset_type, asset_name) # 创建基础路径 self.make_dir(base_path) # 创建三级子文件夹 for folder in self.SUB_FOLDERS: self.make_dir(os.path.join(base_path, folder)) print(f'路径已创建完成:{base_path}') def __init__(self): self.window = "MNGR_window" self.title = "File Manager" self.size = (400,400) # 关闭已存在的旧窗口 if cmds.window(self.window, exists = True): cmds.deleteUI(self.window, window = True) # 创建新窗口 cmds.window(self.window, title=self.title, widthHeight=self.size) cmds.columnLayout(adjustableColumn = True) cmds.text(self.title) cmds.separator(height=20) cmds.text(label="资产名称") self.tb = cmds.textField(tx ="") self.project_menu = cmds.optionMenu(label= "所属项目") cmds.menuItem(label = "Project1") cmds.menuItem(label = "Project2") cmds.menuItem(label = "Project3") cmds.menuItem(label = "Project4") self.type_menu = cmds.optionMenu(label= "资产类型") cmds.menuItem(label = "Props") cmds.menuItem(label = "Chara") cmds.menuItem(label = "Scene") cmds.button(label="创建文件夹结构", command=self.MakeFolders) cmds.showWindow() myWindow = MNGR_Window()
验证说明
运行代码后窗口会正常弹出,输入资产名称、选择对应项目和资产类型,点击创建按钮即可自动生成要求的目录结构,资产目录下会自动生成model、texture、shading三个子文件夹。如果未输入资产名称会弹出警告提示。
内容的提问来源于stack exchange,提问作者WorkshopS
相关产品推荐
相关产品推荐

