예제 #1
0
def instanceGen():
    ldmt_plugin_path = ld.getPath('LDMT') + '/ldmt_plugin'
    pluginPath = ldmt_plugin_path + "/instanceAlongCurve.py"
    if cmds.pluginInfo(pluginPath, q=1, l=1) != 1:
        cmds.loadPlugin(pluginPath)
    sel = cmds.ls(sl=1)
    curve = cmds.filterExpand(sel, sm=9)
    obj = cmds.filterExpand(sel, sm=12)
    cmds.select(curve, r=1)
    cmds.select(obj, add=1)
    mel.eval("instanceAlongCurve")
예제 #2
0
def ezMel2Python():
    ldmt_ui_path = ld.getPath('LDMT') + '/ldmt_ui'

    try:
        em2pUIFile = ldmt_ui_path + "/ezMel2Python.ui"
    except:
        print u'Error,can\'t load UI.'
        return

    if pm.window('ezMel2PyWin', exists=1):
        pm.deleteUI('ezMel2PyWin')

    ezMel2PythonWindow = pm.loadUI(uiFile=em2pUIFile)
    pm.showWindow('ezMel2PyWin')
    pm.window('ezMel2PyWin', e=1, tlc=(200, 250))
예제 #3
0
def spiralGen():
    ldmt_plugin_path = ld.getPath('LDMT') + '/ldmt_plugin'
    pluginPath = ldmt_plugin_path + "/curve2spiral.py"
    if cmds.pluginInfo("curve2spiral", q=1, l=1) != 1:
        cmds.loadPlugin(pluginPath)
    sel = cmds.ls(sl=1)
    sel = cmds.filterExpand(sel, sm=9)
    if len(sel) > 0:
        for i in sel:
            shapes = cmds.listRelatives(i, children=1)
            shape = shapes[0]
            node = cmds.createNode("curveSpiral")
            cmds.connectAttr(shape + ".worldSpace", node + '.ic')
            outputNode = cmds.createNode("nurbsCurve")
            cmds.connectAttr(node + '.oc', outputNode + '.create')
            cmds.select([outputNode, node], r=1)
    else:
        ld.msg("No Curve Selected!")
    from PySide2.QtUiTools import *
    from PySide2 import __version__
    from shiboken2 import wrapInstance
except ImportError:
    from PySide.QtCore import *
    from PySide.QtGui import *
    from PySide.QtUiTools import *
    from PySide import __version__
    from shiboken import wrapInstance

import maya.OpenMaya as om
import maya.api.OpenMaya as om2
import random
import ast

LDMTPATH = ld.getPath('LDMT')
ldmt_uifile = LDMTPATH + '/ldmt_ui/ldmt_instantMeshes.ui'
ldmt_list_form, ldmt_list_base = load_ui_type(ldmt_uifile)
ldmt_window_name = 'ldmt_instantMeshes'
ldmt_button_name = 'btn_' + ldmt_window_name.split('_')[1]
'''
#Functions
'''
'''
#UI
'''


class ldmt_cls(ldmt_list_form, ldmt_list_base):
    def __init__(self, parent=get_maya_window()):
        super(ldmt_cls, self).__init__(parent)
예제 #5
0
def getUiFile():
    LDMT_LOC = ld.getPath('LDMT')
    LDMT_uiFile = LDMT_LOC + "/ldmt_ui/ldmt_main.ui"
    return LDMT_uiFile
예제 #6
0
    from shiboken2 import wrapInstance
except ImportError:
    from PySide.QtCore import *
    from PySide.QtGui import *
    from PySide.QtUiTools import *
    from PySide import __version__
    from shiboken import wrapInstance

from ldmt_ribbonTools import *
from ldmt_checkUVBleed import *
from ldmt_function import ldmt_toggleUI
from ldmt_curveOnMesh import *
cmds.evalDeferred(
    "from ldmt_function import rjCMDSearch; rjCMDSearch.install()")
reload(ldmt_toggleUI)
ldmt_function_path = ld.getPath('LDMT') + '/ldmt_function'
ldmt_plugin_path = ld.getPath('LDMT') + '/ldmt_plugin'
maya_version = cmds.about(version=1)
maya_location = os.environ['MAYA_LOCATION']
maya_pyLocation = maya_location + "/bin" + "/mayapy.exe"
userName = getpass.getuser()


def ldmt_postInfo(userName, functionName):
    postInfoPath = ldmt_function_path + "/ldmt_postInfo.py"
    try:
        subprocess.Popen('"' + MAYA_pyLocation + '" ' + postInfoPath + ' ' +
                         userName + ' ' + functionName,
                         shell=True)
    except:
        subprocess.Popen('python ' + postInfoPath + ' ' + userName + ' ' +
예제 #7
0
    def generateNormalRope(self, count):
        from ldmt_function import ldmt_fixReverse
        ldmt_plugin_path = ld.getPath('LDMT') + '/ldmt_plugin'
        pluginPath = ldmt_plugin_path + "/curve2spiral.py"
        if cmds.pluginInfo(pluginPath, q=1, l=1) != 1:
            cmds.loadPlugin(pluginPath)
        selectedCurve = cmds.ls(sl=1)
        selectedCurve = cmds.filterExpand(selectedCurve, sm=9)
        for i in range(len(selectedCurve)):
            ropeWidthControl = selectedCurve[i] + ".ropeWidth"
            densityControl = selectedCurve[i] + ".ropeDensity"
            lengthDivisionsControl = selectedCurve[i] + ".lengthDivisions"
            widthDivisionsControl = selectedCurve[i] + ".widthDivisions"
            widthControl = selectedCurve[i] + ".width"
            taperControl = selectedCurve[i] + ".taper"
            reverseControl = selectedCurve[i] + ".reverse"
            # if used delete attributes
            if cmds.attributeQuery("ropeWidth", node=selectedCurve[i], ex=1):
                try:
                    cmds.deleteAttr(ropeWidthControl)
                    cmds.deleteAttr(densityControl)
                    cmds.deleteAttr(lengthDivisionsControl)
                    cmds.deleteAttr(widthDivisionsControl)
                    cmds.deleteAttr(widthControl)
                    cmds.deleteAttr(taperControl)
                    cmds.deleteAttr(reverseControl)
                except:
                    pass
            # get main curve shape
            shapes = cmds.listRelatives(selectedCurve[i], children=1)
            shape = shapes[0]
            # set main curve attirubtes
            cmds.addAttr(selectedCurve[i],
                         ln="ropeWidth",
                         h=0,
                         k=1,
                         dv=1,
                         at='double')
            cmds.addAttr(selectedCurve[i],
                         min=0,
                         ln="ropeDensity",
                         h=0,
                         k=1,
                         at='double',
                         dv=50)
            cmds.addAttr(selectedCurve[i],
                         min=3,
                         ln="lengthDivisions",
                         h=0,
                         k=1,
                         at='long',
                         dv=100)
            cmds.addAttr(selectedCurve[i],
                         min=3,
                         ln="widthDivisions",
                         h=0,
                         k=1,
                         at='long',
                         dv=9)
            cmds.addAttr(selectedCurve[i],
                         min=0.01,
                         ln="width",
                         h=0,
                         k=1,
                         at='double',
                         dv=1)
            cmds.addAttr(selectedCurve[i],
                         min=0,
                         ln="taper",
                         h=0,
                         k=1,
                         at='double',
                         dv=1)
            cmds.addAttr(selectedCurve[i],
                         min=0,
                         ln="reverse",
                         h=0,
                         k=1,
                         at='bool',
                         dv=0)

            # loop for each count
            for countIndex in range(count):
                # create spiral first
                node = str(cmds.createNode("curveSpiral"))
                cmds.connectAttr(shape + ".worldSpace", node + ".ic")
                outputNode = str(cmds.createNode("nurbsCurve"))
                cmds.connectAttr(node + ".oc", outputNode + ".create")
                cmds.select(outputNode, node)
                node_Rotation = node + ".rotation"
                cmds.setAttr(
                    node_Rotation, countIndex * 360 /
                    count)  # !important each count's rotation is arraged.
                nodeParent = cmds.listRelatives(outputNode, p=1)
                #Fix Orient Point Issue. You will konw trying without it when you edit the width. :P :P :P
                node_useRadMap = node + ".useRadiusMap"
                node_usePointCount = node + ".usePointCount"
                node_pointCount = node + ".pointCount"
                node_sweep = node + ".sweep"
                cmds.setAttr(node_useRadMap, 1)
                cmds.setAttr(node_usePointCount, 1)
                cmds.setAttr(node_pointCount, 200)
                RadMap_1_Pos = node + ".radiusMap[0].radiusMap_Position"
                RadMap_1_Val = node + ".radiusMap[0].radiusMap_FloatValue"
                RadMap_2_Pos = node + ".radiusMap[1].radiusMap_Position"
                RadMap_2_Val = node + ".radiusMap[1].radiusMap_FloatValue"
                RadMap_3_Pos = node + ".radiusMap[2].radiusMap_Position"
                RadMap_3_Val = node + ".radiusMap[2].radiusMap_FloatValue"
                RadMap_4_Pos = node + ".radiusMap[3].radiusMap_Position"
                RadMap_4_Val = node + ".radiusMap[3].radiusMap_FloatValue"
                cmds.setAttr(RadMap_1_Pos, 0)
                cmds.setAttr(RadMap_1_Val, 0)
                cmds.setAttr(RadMap_2_Pos, 0.01)
                cmds.setAttr(RadMap_2_Val, 1)
                cmds.setAttr(RadMap_3_Pos, 0.99)
                cmds.setAttr(RadMap_3_Val, 1)
                cmds.setAttr(RadMap_4_Pos, 1)
                cmds.setAttr(RadMap_4_Val, 0)
                #With that fix you are good to go.
                #generate tube
                getList = self.tubeGen()
                tubes = cmds.ls(sl=1)
                tube = tubes[0]
                node_radius = node + ".radius"
                tube_LengthDiv = tube + ".lengthDivisions"
                tube_WidthDiv = tube + ".widthDivisions"
                tube_Width = tube + ".width"
                tube_Taper = tube + ".taper"
                cmds.expression(s=(node_radius + "=" + ropeWidthControl))
                cmds.expression(s=(node_sweep + "=" + "10" + "*(2*" +
                                   reverseControl + "-1)"))
                cmds.expression(s=(node_pointCount + "=" + densityControl))
                cmds.expression(s=(tube_LengthDiv + "=" +
                                   lengthDivisionsControl))
                cmds.expression(s=(tube_WidthDiv + "=" +
                                   widthDivisionsControl))
                cmds.expression(s=(tube_Width + "=" + widthControl))
                cmds.expression(s=(tube_Taper + "=" + taperControl))
                cmds.parent(getList[0], selectedCurve[i])
                cmds.parent(getList[1], selectedCurve[i])
                cmds.parent(nodeParent[0], selectedCurve[i])
                cmds.hide(nodeParent[0])
            #finally set the default attribute value
            cmds.setAttr(lengthDivisionsControl, 100)
            cmds.setAttr(widthDivisionsControl, 9)
            cmds.setAttr(densityControl, 200)
        cmds.select(selectedCurve, r=1)
        ldmt_fixReverse.fixReverse()

        #rename
        for i in selectedCurve:
            cmds.rename(i, 'NormalRope_' + str(count) + 'Strand_#')