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")
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))
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)
def getUiFile(): LDMT_LOC = ld.getPath('LDMT') LDMT_uiFile = LDMT_LOC + "/ldmt_ui/ldmt_main.ui" return LDMT_uiFile
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 + ' ' +
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_#')