def _build_project_menu(): if cmds.menu("zfused_project", q=True, exists=True): cmds.deleteUI("zfused_project") # project menu _project_id = record.current_project_id() if _project_id: _project_name = zfused_api.project.Project(_project_id).name() else: _project_name = u"暂无项目" cmds.menu("zfused_project", label=_project_name, parent="MayaWindow", tearOff=True, version=cmds.about(q=True, version=True)) _all_projects = zfused_api.zFused.get( "project_company", filter={"CompanyId": record.current_company_id()}) if _all_projects: _all_project_id_list = [ _project.get("ProjectId") for _project in _all_projects ] for _project_id in list(set(_all_project_id_list)): _project = zfused_api.project.Project(_project_id) _status = _project.status() if _status.category() == "in progress": _project_name = _project.name() cmds.menuItem(label="", divider=True, parent="zfused_project") cmds.menuItem( label=u"{}".format(_project_name), command= "from zfused_maya.interface import menubar;menubar.change_project({});" .format(_project_id))
def load_config(self): # clear asset type item self._clear() # get current project id _project_id = record.current_project_id() if not _project_id: return _project_handle = zfused_api.project.Project(_project_id) # interface _interface = record.Interface() _project_step_id = _interface.get("element_manage_project_step_id") _step_ids = _project_handle.task_step_ids("asset") if _step_ids: for _step_id in _step_ids: _step_handle = zfused_api.step.ProjectStep(_step_id) _name = _step_handle.name_code() self._step_name_id_dict[_name] = _step_id _name_checkbox = QtWidgets.QCheckBox() _name_checkbox.setText(_name) self.asset_step_checkbox_layout.addWidget(_name_checkbox) self.step_group.addButton(_name_checkbox) self._step_checkboxs.append(_name_checkbox) _name_checkbox.stateChanged.connect(self._task_step_id) if _step_id == _project_step_id: _name_checkbox.setChecked(True) self._step_changed.emit(_step_id)
def get_hud_init(): try: import zfused_api from zfused_maya.core import record _project_id = record.current_project_id() _project = zfused_api.project.Project(_project_id) _playblast_maya = _project.variables("playblast_maya") except: _playblast_maya = {} return _playblast_maya
def refresh(self): # project _project_id = record.current_project_id() if _project_id: _project_handle = zfused_api.project.Project(_project_id) self.project_button.setText(_project_handle.name_code()) else: self.project_button.setText("未设置项目") # task _task_id = record.current_task_id() if _task_id: _task_handle = zfused_api.task.Task(_task_id) _entity_handle = _task_handle.project_entity() self.link_button.setText(_entity_handle.name_code()) self.task_button.setText(_task_handle.name()) else: self.link_button.setText("未设置当前任务") self.task_button.setText("未设置当前任务")
def showEvent(self, event): _project_id = record.current_project_id() self.assembly_widget.load_project_id(_project_id) super(AssemblyManageWidget, self).showEvent(event)
def showEvent(self, event): _project_id = record.current_project_id() _company_id = record.current_company_id() self.asset_widget.load_project_id(_project_id, _company_id) super(AssetManageWidget, self).showEvent(event)
def scene_elements(): """ get maya file scene elemnets :rtype: list """ _scene_elements = [] _project_id = record.current_project_id() if not _project_id: return _scene_elements # get rendering elements _rendering_groups = [] _groups = cmds.ls(dag=True) for _group in _groups: if cmds.objExists("{}.redering".format(_group)): _is_rendering = cmds.getAttr("{}.redering".format(_group)) if _is_rendering: _rendering_groups.append(_group) _all_references = {} for _rendering in _rendering_groups: if cmds.referenceQuery(_redering, isNodeReferenced=True): _node = cmds.referenceQuery(_redering, referenceNode=True) if not _all_references.keys().__contains__(_node): _all_references[_node] = [] _all_references[_node].append(obj) for _reference in _all_references.keys(): namespace = cmds.referenceQuery(_reference, namespace=True) if namespace.startswith(":"): namespace = namespace[1::] rfn = cmds.referenceQuery(_reference, rfn=True) #get attr _node_attr = attr.get_node_attr(rfn) if not _node_attr: continue if _node_attr["project_id"] != _project_id: continue copy_data = copy.deepcopy(__CACHE_DICT) for k in _node_attr.keys(): if copy_data.keys().__contains__(k): copy_data[k] = _node_attr[k] copy_data["namespace"] = namespace copy_data["reference_node"] = rfn _scene_elements.append(copy_data) # reference node _reference_nodes = cmds.ls(type="reference") for _node in _reference_nodes: if _node not in _all_references.keys(): try: namespace = cmds.referenceQuery(_node, namespace=True) except: continue if namespace.startswith(":"): namespace = namespace[1::] _rfn = cmds.referenceQuery(_node, rfn=True) # 判定是否存在二级参考 _pns = cmds.referenceQuery(_node, rfn=True, p=True) if _pns: continue #get attr # ref_attr = node.GetAttr(_rfn) _node_attr = attr.get_node_attr(_rfn) if not _node_attr: continue if _node_attr["project_id"] != _project_id: continue copy_data = copy.deepcopy(__CACHE_DICT) for k in _node_attr.keys(): if copy_data.keys().__contains__(k): copy_data[k] = _node_attr[k] copy_data["namespace"] = namespace copy_data["reference_node"] = _rfn _scene_elements.append(copy_data) # gpu # sets _sets = cmds.ls(type="objectSet") for _set in _sets: _attr = attr.get_node_attr(_set) if _attr: if ":" not in _set: _attr["relation_ship"] = "parity" _scene_elements.append(_attr) return _scene_elements
def createmenu(self, _dict): current_project = u"没有项目" if record.current_project_id(): current_project_id = record.current_project_id() _task_handle = zfused_api.project.Project(str(current_project_id)) current_project = _task_handle.name() if cmds.menu("zfused_outsource_menu", ex=True): cmds.deleteUI("zfused_outsource_menu") cmds.setParent("MayaWindow") cmds.menu("zfused_outsource_menu", label=u"zfused_outsource", to=True) cmds.menuItem(label=u"zfused_outsource", d=True) # #current_project_itme # project_item=current_project # # cmds.menuItem(label=u"{}".format(project_item),to=True,en=True) # cmds.menuItem(d=True) cmds.menuItem(label=u"{}".format(current_project), subMenu=True, to=True) all_project = zfused_api.zFused.get("project_company") all_project_id_list = [] for _project in all_project: _id = _project.get("ProjectId") all_project_id_list.append(_id) for project_id in list(set(all_project_id_list)): _task_handle = zfused_api.project.Project(str(project_id)) _project_name = _task_handle.name() #_cmd="import zfused_maya.core.record as record; record.write_project_id({};))".format(project_id) _cmd = self._function(project_id) _project_code = _task_handle.code() cmds.menuItem(label=_project_code, d=True) cmds.menuItem(label=u"{}".format(_project_name), command=_cmd) cmds.setParent("zfused_outsource_menu", menu=True) #utility utility_menu = "utility" cmds.menuItem(d=True) cmds.menuItem(label=u"{}".format(utility_menu), subMenu=True, to=True) _parent_list = _dict.get(utility_menu) for child_menu in _parent_list: _child_dict = child_menu _name = _child_dict.get("name") _cmd = _child_dict.get("cmd") # print _cmd cmds.menuItem(label=u"{}".format(_name), command=u"{}".format(_cmd)) cmds.menuItem(d=True) cmds.setParent("zfused_outsource_menu", menu=True) #model model_menu = "model" cmds.menuItem(d=True) cmds.menuItem(label=u"{}".format(model_menu), subMenu=True, to=True) _parent_list = _dict.get(model_menu) for child_menu in _parent_list: _child_dict = child_menu _name = _child_dict.get("name") _cmd = _child_dict.get("cmd") # print _cmd cmds.menuItem(label=u"{}".format(_name), command=u"{}".format(_cmd)) cmds.menuItem(d=True) cmds.setParent("zfused_outsource_menu", menu=True) #animation animation_menu = "animation" cmds.menuItem(d=True) cmds.menuItem(label=u"{}".format(animation_menu), subMenu=True, to=True) _parent_list = _dict.get(animation_menu) for child_menu in _parent_list: _child_dict = child_menu _name = _child_dict.get("name") _cmd = _child_dict.get("cmd") # print _cmd cmds.menuItem(label=u"{}".format(_name), command=u"{}".format(_cmd)) cmds.menuItem(d=True) cmds.setParent("zfused_outsource_menu", menu=True) cmds.setParent("zfused_outsource_menu", menu=True)
def _get_project_path(): _project_id = record.current_project_id() _project_handle = zfused_api.project.Project(_project_id) return _project_handle.production_path()
def _init(self): self.project_id = record.current_project_id() self.task_id = record.current_task_id()
def showEvent(self, event): _project_id = record.current_project_id() self.check_widget.load_project_id(_project_id) super(CheckManageWidget, self).showEvent(event)