Exemplo n.º 1
0
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))
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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("未设置当前任务")
Exemplo n.º 5
0
 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)
Exemplo n.º 7
0
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
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
def _get_project_path():
    _project_id = record.current_project_id()
    _project_handle = zfused_api.project.Project(_project_id)
    return _project_handle.production_path()
Exemplo n.º 10
0
 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)