This commit is contained in:
Jeffreytsai1004 2025-01-14 02:17:16 +08:00
parent 9787a55b24
commit 06258d32cd
476 changed files with 602197 additions and 0 deletions

View File

@ -0,0 +1,175 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as mc
import maya.mel as mel
import maya.OpenMaya as om
import maya.OpenMayaUI as omui
import maya.api.OpenMaya as OpenMaya
from maya.OpenMaya import MGlobal
import math
def run():
mesh=mc.ls(sl=1,fl=1)
if len(mesh) == 1:
checkLongName = mc.ls(mesh[0],l=1)
parentNode = checkLongName[0].split('|')
if len(parentNode) > 2:
outParent = ''
outParent = '|'.join(parentNode[1:-1])
mc.parent(mesh[0],w=1)
cleanList = ('sampleCurv*','sampleMes*','rotationPlan*')
for c in cleanList:
if mc.objExists(c):
mc.delete(c)
gface, gHitp,cEdge,cEdgePos = getClosestEdge()
mc.select(cEdge)
checkCVList=mc.ls( mc.polyListComponentConversion (cEdge,fe=True,tv=True),flatten=True)
mx,my,mz = mc.pointPosition(checkCVList[0],w=1)
mc.polyPlane(w=1, h=1, sx=1, sy=1, ax=(0,1,0), cuv=2, ch=0, n='rotationPlane')
mc.polyCreateFacet( p=[(mx, my, mz),(cEdgePos[0], cEdgePos[1], cEdgePos[2]),(gHitp[0], gHitp[1], gHitp[2])] )
mc.rename('sampleMesh')
mc.select("rotationPlane.vtx[0:2]", "sampleMesh.vtx[0:2]")
CMD = 'snap3PointsTo3Points(0);'
mel.eval(CMD)
mc.parent(mesh[0],'rotationPlane')
axes = ["X", "Y", "Z"]
for a in axes:
val = mc.getAttr( mesh[0] + ".rotate" + a)
valTmp = ''
if val > 0:
valTmp = val + 45
else:
valTmp = val - 45
valNew = int (valTmp/90)
mc.setAttr(( mesh[0] + ".rotate" + a), (valNew*90))
mc.move(gHitp[0], gHitp[1], gHitp[2], mesh[0], rpr=True,wd=True)
mc.select(mesh[0])
mc.parent(w=1)
if len(parentNode) > 2:
mc.parent(mesh[0],outParent)
for c in cleanList:
if mc.objExists(c):
mc.delete(c)
def getClosestEdge():
mayaMesh = mc.ls(sl=1,fl=1)
gFace = ''
gHitP = ''
gFace,gHitP = getClosestMeshHit(mayaMesh[0])
listF2E=mc.ls( mc.polyListComponentConversion (gFace,ff=True,te=True),flatten=True)
cEdge = ''
smallestDist = 1000000
cEdgePos = []
for l in listF2E:
mc.select(l)
mc.polyToCurve(form=2, degree=1, conformToSmoothMeshPreview=1)
sampleCurve = mc.ls(sl=1)
selectionList = om.MSelectionList()
selectionList.add(sampleCurve[0])
dagPath = om.MDagPath()
selectionList.getDagPath(0, dagPath)
omCurveOut = om.MFnNurbsCurve(dagPath)
pointInSpace = om.MPoint(gHitP[0],gHitP[1],gHitP[2])
closestPoint = om.MPoint()
closestPoint = omCurveOut.closestPoint(pointInSpace)
getDist = math.sqrt( ((closestPoint[0] - gHitP[0])**2) + ((closestPoint[1]- gHitP[1])**2) + ((closestPoint[2] - gHitP[2])**2))
if getDist < smallestDist:
smallestDist = getDist
cEdge = l
cEdgePos = [closestPoint[0],closestPoint[1],closestPoint[2]]
mc.delete(sampleCurve)
mc.select(cEdge)
return(gFace,gHitP,cEdge,cEdgePos)
def getClosestMeshHit(mayaMesh):
myShape = mc.listRelatives(mayaMesh, shapes=True,f=True)
checkList = screenVisPoly()
checkList.remove(myShape[0])
meshPos = mc.xform(mayaMesh,q=1, ws=1, a=1, piv=1)
posXXX = [meshPos[0],meshPos[1],meshPos[2]]
shortDistanceCheck = 10000
resultFace = []
resultCV =[]
resultHitPoint = []
for c in checkList:
transNode = mc.listRelatives(c, p=True)
getFaceDist,getFace,getHitPoint = getClosestPointOnFace(transNode[0],posXXX)
#print (getCV, getFaceDist, getFace)
if getFaceDist < shortDistanceCheck:
shortDistanceCheck = getFaceDist
resultFace = getFace
resultHitPoint = getHitPoint
return (resultFace,resultHitPoint)
def getClosestPointOnFace(mayaMesh,pos=[0,0,0]):
mVector = OpenMaya.MVector(pos)#using MVector type to represent position
selectionList = OpenMaya.MSelectionList()
selectionList.add(mayaMesh)
dPath= selectionList.getDagPath(0)
mMesh=OpenMaya.MFnMesh(dPath)
ID = mMesh.getClosestPoint(OpenMaya.MPoint(mVector),space=OpenMaya.MSpace.kWorld)[1] #getting closest face ID
closestPoint= mMesh.getClosestPoint(OpenMaya.MPoint(mVector),space=OpenMaya.MSpace.kWorld)[0]
cpx = closestPoint[0]
cpy = closestPoint[1]
cpz = closestPoint[2]
hitPointPosition = [cpx,cpy,cpz]
hitFaceName = (mayaMesh+'.f['+str(ID)+']')
getFaceDist = math.sqrt( ((pos[0] - cpx)**2) + ((pos[1]- cpy)**2) + ((pos[2] - cpz)**2))
return (getFaceDist, hitFaceName,hitPointPosition)
def screenVisPoly():
commonList= []
view = omui.M3dView.active3dView()
om.MGlobal.selectFromScreen(0, 0, view.portWidth(), view.portHeight(), om.MGlobal.kReplaceList)
objects = om.MSelectionList()
sel = om.MSelectionList()
om.MGlobal.getActiveSelectionList(objects)
om.MGlobal.setActiveSelectionList(sel, om.MGlobal.kReplaceList)
fromScreen = []
objects.getSelectionStrings(fromScreen)
shapesOnScreen = mc.listRelatives(fromScreen, shapes=True,f=True)
meshList = mc.ls(type='mesh',l=True)#only polygon
if len(meshList)>0 and shapesOnScreen is not None:
commonList = list(set(meshList) & set(shapesOnScreen))
return commonList
else:
commonList = []
return commonList
def getPolyFaceCenter(faceName):
meshFaceName = faceName.split('.')[0]
findVtx = mc.polyInfo(faceName, fv=1)
getNumber = []
checkNumber = ((findVtx[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
centerX = 0
centerY = 0
centerZ = 0
for g in getNumber:
x,y,z = mc.pointPosition((meshFaceName + '.vtx['+g + ']'),w=1)
centerX = centerX + x
centerY = centerY + y
centerZ = centerZ + z
centerX = centerX/len(getNumber)
centerY = centerY/len(getNumber)
centerZ = centerZ/len(getNumber)
return centerX,centerY,centerZ
if __name__ == "__main__":
run()

View File

@ -0,0 +1,382 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds # type: ignore
import maya.mel as mel # type: ignore
import math
# set currentArcCurve and storeEdge as global variables
global currentArcCurve
global storeEdge
currentArcCurve = ""
storeEdge = []
def run():
if cmds.window("arcDeformerUI", exists = True):
cmds.deleteUI("arcDeformerUI")
arcDeformerUI = cmds.window("arcDeformerUI",title = "Arc Deformer", w=320)
cmds.frameLayout(labelVisible= False)
cmds.rowColumnLayout(nc=4 ,cw=[(1,5),(2,60),(3,20),(4,180)])
cmds.text(l ='')
cmds.text(l ='Curve Type')
cmds.text(l ='')
cmds.radioButtonGrp('curveType', nrb=2, sl=1, labelArray2=['Bezier', 'Nurbs'], cw = [(1,100),(2,100)],cc=lambda x: controlNumberSwitch())
cmds.setParent( '..' )
cmds.rowColumnLayout(nc=10 ,cw=[(1,10),(2,60),(3,20),(4,50),(5,10),(6,50),(7,10),(8,50),(9,10),(10,95)])
cmds.text(l ='')
cmds.text(l ='Options')
cmds.text(l ='')
cmds.checkBox('makeArc', label= "Arc" ,v = 1, cc= lambda x: makeArcSwitch())
cmds.text(l ='')
cmds.checkBox('snapCurve', label= "Snap" ,v = 1, cc= lambda x: disableEvenSpaceCheckBox())
cmds.text(l ='')
cmds.checkBox('evenSpace', label= "Even" ,v = 1)
cmds.text(l ='')
cmds.checkBox('cleanCurve', label= "Keep Curve" ,v = 1)
cmds.setParent( '..' )
cmds.intSliderGrp('CPSlider', cw3=[80, 30, 180], label = 'Control Point ', field= 1, min= 2, max= 10, fmx = 500, v = 3 )
cmds.floatSliderGrp('dropOffSlider' , label = 'DropOff', v = 0.01, cw3=[80, 30, 180], field=1 ,pre = 2, min= 0.01, max= 10)
cmds.rowColumnLayout(nc=4 ,cw=[(1,120),(2,80),(3,10),(4,80)])
cmds.text(l ='')
cmds.button( l= 'Run', c = lambda x: arcEdgeLoop())
cmds.text(l ='')
cmds.button( l= 'Done', c = lambda x: arcDone())
cmds.text(l ='')
cmds.setParent( '..' )
cmds.showWindow(arcDeformerUI)
def arcDone():
global storeEdge
global currentArcCurve
if cmds.objExists('arcCurve*'):
arcCurveList = cmds.ls( "arcCurve*", transforms =1 )
a = arcCurveList[0]
for a in arcCurveList:
if 'BaseWire' not in a:
shapeNode = cmds.listRelatives(a, fullPath=True )
hist = cmds.listConnections(cmds.listConnections(shapeNode[0],sh=1, d=1 ) ,d=1 ,sh=1)
cmds.delete(hist,ch=1)
cmds.delete('arcCurve*')
if len(currentArcCurve)>0:
if cmds.objExists(currentArcCurve):
shapeNode = cmds.listRelatives(currentArcCurve, fullPath=True )
hist = cmds.listConnections(cmds.listConnections(shapeNode[0],sh=1, d=1 ) ,d=1 ,sh=1)
cmds.delete(hist,ch=1)
if cmds.objExists(currentArcCurve):
cmds.select(currentArcCurve)
cmds.select(storeEdge,add=1)
if cmds.objExists(currentArcCurve + 'BaseWire'):
cmds.delete(currentArcCurve + 'BaseWire')
def arcEdgeLoop():
global storeEdge
global currentArcCurve
currentDropOff = cmds.floatSliderGrp('dropOffSlider' ,q=1,v=1)
snapCheck = cmds.checkBox('snapCurve',q = 1 ,v = 1)
goEven = cmds.checkBox('evenSpace', q=1 ,v = 1)
conP = cmds.intSliderGrp('CPSlider',q=1 , v = True )
curveT = cmds.radioButtonGrp('curveType', q=1, sl=1)
goArc = cmds.checkBox('makeArc', q=1 ,v = 1)
cClean = cmds.checkBox('cleanCurve', q=1 ,v = 1)
selEdge = cmds.filterExpand(expand=True ,sm=32)
selCurve = cmds.filterExpand(expand=True ,sm=9)
if selCurve:
if len(selEdge)>0 and len(selCurve)== 1:
storeEdge = selEdge
cmds.select(selCurve,d=1)
selMeshForDeformer = cmds.ls(sl=1,o=1)
getCircleState,listVtx = vtxLoopOrderCheck()
newCurve = cmds.duplicate(selCurve[0], rr=1)
cmds.rename(newCurve[0],'newsnapCurve')
currentArcCurve = 'newsnapCurve'
cmds.rebuildCurve(currentArcCurve,ch=1, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s = 100, d=1, tol=0.01)
#check tip order
curveTip = cmds.pointOnCurve(currentArcCurve , pr = 0, p=1)
tipA = cmds.pointPosition(listVtx[0],w=1)
tipB = cmds.pointPosition(listVtx[-1],w=1)
distA = math.sqrt( ((tipA[0] - curveTip[0])**2) + ((tipA[1] - curveTip[1])**2) + ((tipA[2] - curveTip[2])**2) )
distB = math.sqrt( ((tipB[0] - curveTip[0])**2) + ((tipB[1] - curveTip[1])**2) + ((tipB[2] - curveTip[2])**2) )
if distA > distB:
listVtx.reverse()
#snap to curve
if goEven == 1:
for q in range(len(selEdge)+1):
if q == 0:
pp = cmds.pointOnCurve(currentArcCurve , pr = 0, p=1)
cmds.move( pp[0], pp[1], pp[2],listVtx[q] , a =True, ws=True)
else:
pp = cmds.pointOnCurve(currentArcCurve , pr = (1.0/len(selEdge)*q), p=1)
cmds.move( pp[0], pp[1], pp[2],listVtx[q] , a =True, ws=True)
else:
sum = 0
totalEdgeLoopLength = 0
Llist = []
uList = []
pList = []
for i in range(len(listVtx)-1):
pA = cmds.pointPosition(listVtx[i], w =1)
pB = cmds.pointPosition(listVtx[i+1], w =1)
checkDistance = math.sqrt( ((pA[0] - pB[0])**2) + ((pA[1] - pB[1])**2) + ((pA[2] - pB[2])**2) )
Llist.append(checkDistance)
totalEdgeLoopLength = totalEdgeLoopLength + checkDistance
for j in Llist:
sum = sum + j
uList.append(sum)
for k in uList:
p = k / totalEdgeLoopLength
pList.append(p)
for q in range(len(selEdge)+1):
if q == 0:
pp = cmds.pointOnCurve(currentArcCurve , pr = 0, p=1)
cmds.move( pp[0], pp[1], pp[2],listVtx[q] , a =True, ws=True)
else:
pp = cmds.pointOnCurve(currentArcCurve , pr = pList[q-1], p=1)
cmds.move( pp[0], pp[1], pp[2],listVtx[q] , a =True, ws=True)
cmds.delete('newsnapCurve')
deformerNames = cmds.wire(selMeshForDeformer, gw=0, en = 1, ce = 0, li= 0, dds = [(0,1)], dt=1, w = selCurve[0])
cmds.connectControl("dropOffSlider", (deformerNames[0]+".dropoffDistance[0]"))
if snapCheck == 0:
cmds.setAttr((deformerNames[0] + '.dropoffDistance[0]'),1)
else:
cmds.setAttr((deformerNames[0] + '.dropoffDistance[0]'),currentDropOff)
currentArcCurve = selCurve[0]
cmds.select(selCurve[0])
else:
if selEdge:
storeEdge = selEdge
if cClean == 0:
if cmds.objExists('arcCurve*'):
arcDone()
selMeshForDeformer = cmds.ls(sl=1,o=1)
getCircleState,listVtx = vtxLoopOrderCheck()
deformerNames = []
#make nurbs curve
if getCircleState == 0: #Arc
if goArc == 1:
midP = int(len(listVtx)/2)
cmds.move(0.01, 0, 0,selEdge[midP],r=1, cs=1 ,ls=1, wd =1)
p1 = cmds.pointPosition(listVtx[0], w =1)
p2 = cmds.pointPosition(listVtx[midP], w =1)
p3 = cmds.pointPosition(listVtx[-1], w =1)
newNode = cmds.createNode('makeThreePointCircularArc')
cmds.setAttr((newNode + '.pt1'), p1[0], p1[1] , p1[2])
cmds.setAttr((newNode + '.pt2'), p2[0], p2[1] , p2[2])
cmds.setAttr((newNode + '.pt3'), p3[0], p3[1] , p3[2])
cmds.setAttr((newNode + '.d'), 3)
cmds.setAttr((newNode + '.s'), len(listVtx))
newCurve = cmds.createNode('nurbsCurve')
cmds.connectAttr((newNode+'.oc'), (newCurve+'.cr'))
cmds.delete(ch=1)
transformNode = cmds.listRelatives(newCurve, fullPath=True , parent=True )
cmds.select(transformNode)
cmds.rename(transformNode,'arcCurve0')
getNewNode = cmds.ls(sl=1)
currentArcCurve = getNewNode[0]
numberP = 0
if curveT == 2:#nubs curve
numberP = int(conP) - 3
if numberP < 1:
numberP = 1
else:
numberP = int(conP) -1
cmds.rebuildCurve(currentArcCurve,ch=1, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s= numberP, d=3, tol=0.01)
else:
p1 = cmds.pointPosition(listVtx[0], w =1)
cmds.curve(d= 1, p=p1)
cmds.rename('arcCurve0')
getNewNode = cmds.ls(sl=1)
currentArcCurve = getNewNode[0]
for l in range(1,len(listVtx)):
p2 = cmds.pointPosition(listVtx[l], w =1)
cmds.curve(currentArcCurve, a= 1, d= 1, p=p2)
numberP = int(conP) -1
cmds.rebuildCurve(currentArcCurve,ch=1, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s= numberP, d=1, tol=0.01)
else: #circle
p1 = cmds.pointPosition(listVtx[0], w =1)
cmds.curve(d= 1, p=p1)
cmds.rename('arcCurve0')
getNewNode = cmds.ls(sl=1)
currentArcCurve = getNewNode[0]
for l in range(1,len(listVtx)):
p2 = cmds.pointPosition(listVtx[l], w =1)
cmds.curve(currentArcCurve, a= 1, d= 1, p=p2)
cmds.curve(currentArcCurve, a= 1, d= 1, p=p1)
cmds.closeCurve(currentArcCurve,ch=0, ps=2, rpo=1, bb= 0.5, bki=0, p=0.1)
conP = cmds.intSliderGrp('CPSlider',q=1 , v = True )
numberP = int(conP)
if numberP < 4:
numberP = 4
cmds.intSliderGrp('CPSlider',e=1 , v = 4 )
cmds.rebuildCurve(currentArcCurve,ch=1, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s = numberP, d=3, tol=0.01)
###########################################################################
cmds.delete(currentArcCurve ,ch=1)
totalEdgeLoopLength = 0;
sum = 0
Llist = []
uList = []
pList = []
#cmds.select(selEdge)
for i in range(len(listVtx)-1):
pA = cmds.pointPosition(listVtx[i], w =1)
pB = cmds.pointPosition(listVtx[i+1], w =1)
checkDistance = math.sqrt( ((pA[0] - pB[0])**2) + ((pA[1] - pB[1])**2) + ((pA[2] - pB[2])**2) )
Llist.append(checkDistance)
totalEdgeLoopLength = totalEdgeLoopLength + checkDistance
if goEven == 1:
avg = totalEdgeLoopLength / (len(selEdge))
for j in range(len(selEdge)):
sum = ((j+1)*avg)
uList.append(sum)
else:
for j in Llist:
sum = sum + j
uList.append(sum)
for k in uList:
p = k / totalEdgeLoopLength
pList.append(p)
#snap to curve
if snapCheck == 1:
for q in range(len(pList)):
if q+1 == len(listVtx):
pp = cmds.pointOnCurve(currentArcCurve, pr = 0, p=1)
cmds.move( pp[0], pp[1], pp[2],listVtx[0] , a =True, ws=True)
else:
pp = cmds.pointOnCurve(currentArcCurve , pr = pList[q], p=1)
cmds.move( pp[0], pp[1], pp[2],listVtx[q+1] , a =True, ws=True)
#convert to Bezier Curve
cmds.delete(currentArcCurve ,ch=1)
cmds.select(currentArcCurve)
if curveT == 1:
cmds.nurbsCurveToBezier()
if getCircleState == 1: #circle need to fix bug
cmds.closeCurve(currentArcCurve,ch=0, ps=2, rpo=1, bb= 0.5, bki=0, p=0.1)
cmds.closeCurve(currentArcCurve,ch=0, ps=2, rpo=1, bb= 0.5, bki=0, p=0.1)
#wireWrap
deformerNames = cmds.wire( selMeshForDeformer, gw=0, en = 1, ce = 0, li= 0, dds = [(0,1)], dt=1, w = currentArcCurve)
#select controllers
if getCircleState == 0:
cmds.setToolTo('moveSuperContext')
degree = cmds.getAttr(currentArcCurve + '.degree')
spans = cmds.getAttr(currentArcCurve + '.spans')
numberCVs = degree + spans
collect = []
for x in range(int(numberCVs/3)-1):
g = currentArcCurve + '.cv[' + str((x+1)*3) + ']'
collect.append(g)
cmds.select(collect ,r=1)
else:
cmds.select(currentArcCurve + '.cv[*]')
cmd = 'doMenuNURBComponentSelection("' + currentArcCurve + '", "controlVertex");'
mel.eval(cmd)
cmds.connectControl("dropOffSlider", (deformerNames[0]+".dropoffDistance[0]"))
if snapCheck == 0:
cmds.setAttr((deformerNames[0] + '.dropoffDistance[0]'),1)
else:
cmds.setAttr((deformerNames[0] + '.dropoffDistance[0]'),currentDropOff)
#add to viewport even in isolate mode
for x in range(1,5):
cmds.isolateSelect(('modelPanel' + str(x)), ado= currentArcCurve )
def makeArcSwitch():# min point for Nurbs are 4 point
goArc = cmds.checkBox('makeArc', q=1 ,v = 1)
curveT = cmds.radioButtonGrp('curveType', q=1, sl=1)
if goArc == 0:
cmds.intSliderGrp('CPSlider', e=1, min= 4, v = 4 , fmx = 500)
else:
if curveT == 1:
cmds.intSliderGrp('CPSlider', e=1, min= 2, v = 3, fmx = 500)
else:
cmds.intSliderGrp('CPSlider', e=1, min= 4, v = 4, fmx = 500)
def disableEvenSpaceCheckBox():
snapCheck = cmds.checkBox('snapCurve',q = 1 ,v = 1)
if snapCheck == 0 :
cmds.checkBox('evenSpace', e=1 ,en=0)
else:
cmds.checkBox('evenSpace', e=1 ,en=1)
def controlNumberSwitch():# min point for Nurbs are 4 point
curveT = cmds.radioButtonGrp('curveType', q=1, sl=1)
getCurrentV = cmds.intSliderGrp('CPSlider', q=1 ,v = 1 )
if curveT == 2:
cmds.intSliderGrp('CPSlider', e=1, min= 4 )
if getCurrentV < 4:
cmds.intSliderGrp('CPSlider', e=1, v= 4 )
else:
cmds.intSliderGrp('CPSlider', e=1, min= 2 )
def vtxLoopOrderCheck():
selEdges = cmds.ls(sl=1,fl=1)
shapeNode = cmds.listRelatives(selEdges[0], fullPath=True , parent=True )
transformNode = cmds.listRelatives(shapeNode[0], fullPath=True , parent=True )
edgeNumberList = []
for a in selEdges:
checkNumber = ((a.split('.')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
edgeNumberList.append(findNumber)
getNumber = []
for s in selEdges:
evlist = cmds.polyInfo(s,ev=True)
checkNumber = ((evlist[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
dup = set([x for x in getNumber if getNumber.count(x) > 1])
getHeadTail = list(set(getNumber) - dup)
checkCircleState = 0
if not getHeadTail: #close curve
checkCircleState = 1
getHeadTail.append(getNumber[0])
vftOrder = []
vftOrder.append(getHeadTail[0])
count = 0
while len(dup)> 0 and count < 1000:
checkVtx = transformNode[0]+'.vtx['+ vftOrder[-1] + ']'
velist = cmds.polyInfo(checkVtx,ve=True)
getNumber = []
checkNumber = ((velist[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
findNextEdge = []
for g in getNumber:
if g in edgeNumberList:
findNextEdge = g
edgeNumberList.remove(findNextEdge)
checkVtx = transformNode[0]+'.e['+ findNextEdge + ']'
findVtx = cmds.polyInfo(checkVtx,ev=True)
getNumber = []
checkNumber = ((findVtx[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
gotNextVtx = []
for g in getNumber:
if g in dup:
gotNextVtx = g
dup.remove(gotNextVtx)
vftOrder.append(gotNextVtx)
count += 1
if checkCircleState == 0:
vftOrder.append(getHeadTail[1])
else:#close curve remove connected vtx
if vftOrder[0] == vftOrder[1]:
vftOrder = vftOrder[1:]
elif vftOrder[0] == vftOrder[-1]:
vftOrder = vftOrder[0:-1]
finalList = []
for v in vftOrder:
finalList.append(transformNode[0]+'.vtx['+ v + ']' )
return checkCircleState, finalList
if __name__ == "__main__":
run()

View File

@ -0,0 +1,236 @@
import maya.cmds as cmds
import maya.mel as mel
import maya.OpenMaya as om
import maya.OpenMayaAnim as oma
import collections
util = om.MScriptUtil()
util.createFromInt(0)
dummy = {}
dummy['mob'] = om.MObject()
dummy['intPtr'] = util.asIntPtr()
dummy['omp'] = om.MPoint()
class MDagPath(om.MDagPath):
def __init__(self, node=None):
super(MDagPath, self).__init__()
if node is not None:
sel = om.MSelectionList()
sel.add(node)
sel.getDagPath(0, self, dummy['mob'])
def __str__(self):
return self.fullPathName()
class MeshData(object):
def __init__(self, mfnMesh):
self.mesh = mfnMesh
self.regist()
def minmax(self, minA, maxA, pos):
for i in range(3):
if minA[i] > pos[i]:
minA[i] = pos[i]
if maxA[i] <= pos[i]:
maxA[i] = pos[i]
def createBlock(self, minA, maxA):
functions = []
split = 8
for i in range(3):
reach = (maxA[i] - minA[i]) / split
code = "lambda x: "
for j in range(split - 1):
characters = {'min': minA[i], 'reach': reach, 'i': j}
if j == 0:
code += "(((%(min)s - 10000000 <= x < (%(min)s + %(reach)s * (%(i)s+2)))) * (%(i)s+2) or " % characters
elif j == split - 2:
code += "(((%(min)s + %(reach)s * (%(i)s+1)) <= x < (%(min)s + 100000000))) * (%(i)s+2) or 0) - 1" % characters
else:
code += "(((%(min)s + %(reach)s * (%(i)s+1)) <= x < (%(min)s + %(reach)s * (%(i)s+2)))) * (%(i)s+2) or " % characters
functions.append(eval(code))
getBlockKeyFunc = lambda x, y, z: (functions[0](x), functions[1](y), functions[2](z))
indexDict = collections.defaultdict(list)
for x in range(1, split):
reachX = (maxA[0] - minA[0]) / split
for y in range(1, split):
reachY = (maxA[1] - minA[1]) / split
for z in range(1, split):
reachZ = (maxA[2] - minA[2]) / split
# Use a tuple of coordinates instead of MPoint
p = (reachX * x + minA[0], reachY * y + minA[1], reachZ * z + minA[2])
a = indexDict[p]
for xx in range(2):
for yy in range(2):
for zz in range(2):
a.append((x - xx, y - yy, z - zz))
return getBlockKeyFunc, indexDict
def getPoints(self):
posA = om.MPointArray()
self.mesh.getPoints(posA, om.MSpace.kWorld)
return posA
def regist(self):
posA = self.getPoints()
length = posA.length()
self.posA = posA
minXYZ = [100000, 100000, 100000]
maxXYZ = [-100000, -100000, -100000]
for i in range(length):
pos = posA[i]
self.minmax(minXYZ, maxXYZ, pos)
getBlockKeyFunc, indexDict = self.createBlock(minXYZ, maxXYZ)
pointsDict = collections.defaultdict(list)
for i in range(length):
pos = posA[i]
key = getBlockKeyFunc(pos[0], pos[1], pos[2])
pointsDict[key].append((pos, i))
for points, keys in indexDict.items():
if not any(pointsDict[k] for k in keys):
indexDict[points] = False
self.point_boxIndex = indexDict
self.boxIndex_points = pointsDict
def getColosetVertexId(self, point):
minLength = 10000000000
colosetBox = None
# Convert back to MPoint for distance calculation
for k, v in self.point_boxIndex.items():
if v:
k_point = om.MPoint(k[0], k[1], k[2]) # Convert tuple back to MPoint
length = k_point.distanceTo(point)
if length < minLength:
minLength = length
colosetBox = k
if colosetBox is None:
return -1
minLength = 10000000000
result = -1
for k in self.point_boxIndex[colosetBox]:
points = self.boxIndex_points[k]
for _point, idx in points:
length = _point.distanceTo(point)
if length < minLength:
minLength = length
result = idx
return result
class LatticeData(MeshData):
def __init__(self, mfnLattice):
super(LatticeData, self).__init__(mfnLattice)
def getPoints(self):
mfnLattice = self.mesh
divisions = cmds.lattice(mfnLattice.fullPathName(), q=True, divisions=True)
points = om.MPointArray()
for u in range(divisions[2]):
for t in range(divisions[1]):
for s in range(divisions[0]):
trans = cmds.pointPosition(mfnLattice.fullPathName() + '.pt[%s][%s][%s]' % (s, t, u), world=True)
points.append(om.MPoint(trans[0], trans[1], trans[2]))
return points
def progress(**kwargs):
if cmds.about(b=True):
return False
if kwargs.get('maxValue', False) is not False and kwargs['maxValue'] == 0:
return False
cmds.progressWindow(**kwargs)
def isLttice(targetMesh):
try:
oma.MFnLattice(MDagPath(targetMesh))
return True
except:
return False
def applySnapOnClosetVertex(targetMesh, moveVertexList):
if isLttice(targetMesh):
target = oma.MFnLattice(MDagPath(targetMesh))
tgtMesh = LatticeData(target)
else:
target = om.MFnMesh(MDagPath(targetMesh))
tgtMesh = MeshData(target)
tgtPoints = tgtMesh.getPoints()
moveNode = moveVertexList[0].split('.')[0]
if isLttice(moveNode):
compName = 'pt'
movTarget = oma.MFnLattice(MDagPath(moveNode))
movMesh = LatticeData(movTarget)
else:
compName = 'vtx'
movTarget = om.MFnMesh(MDagPath(moveNode))
movMesh = MeshData(movTarget)
movPoints = movMesh.getPoints()
length = movPoints.length()
vtx = cmds.ls(moveVertexList, fl=True)
if compName == 'pt':
divisions = cmds.lattice(moveNode, divisions=True, q=True)
vertexIndex = [
(int(v.split('[')[-3].split(']')[0]),
int(v.split('[')[-2].split(']')[0]),
int(v.split('[')[-1].split(']')[0]))
for v in vtx
]
vertexIndex = tuple((s + divisions[0] * t + (divisions[0] * divisions[1]) * u) for s, t, u in vertexIndex)
else:
vertexIndex = tuple(int(v.split('[')[-1].split(']')[0]) for v in vtx)
progress(title='rsSnapOnClosestVertex', progress=0, maxValue=length, status='', isInterruptable=True)
for i in range(length):
if i in vertexIndex:
if i % 50 == 0:
progress(e=True, progress=i, status=f'{i}/{length}')
num = tgtMesh.getColosetVertexId(movPoints[i])
point = tgtPoints[num]
cmds.move(point.x, point.y, point.z, f'{moveNode}.{compName}[{i}]', a=True, ws=True)
progress(endProgress=1)
def cmd():
try:
companyName = cmds.displayString('rsCompany', q=True, value=True)
if companyName == 'square-enix':
pass
else:
mel.eval('RsDccTpc ("rsSnapOnClosestVertex", "2015/10", "kimutoru@rstool", "cmd", "功能描述","");')
except Exception as e:
print(f"Error: {e}")
cmds.undoInfo(ock=True)
sel = cmds.ls(sl=True)
if len(sel) > 1:
if isLttice(sel[0].split('.')[0]):
vtx = cmds.ls('*.pt[*][*][*]', sl=True, fl=True)
if not vtx:
moveNode = sel[0].split('.')[0]
vtx = cmds.ls(moveNode + '.pt[*]')
else:
vtx = cmds.ls('*.vtx[*]', sl=True, fl=True)
if not vtx:
moveNode = sel[0].split('.')[0]
vtx = cmds.ls(moveNode + '.vtx[*]')
applySnapOnClosetVertex(sel[-1], vtx)
else:
cmds.error('[rsSnapOnClosestVertex] 请至少选择两个对象,一个是目标对象,另一个是要移动的顶点列表。')
cmds.undoInfo(cck=True)
# if __name__ == "__main__":
# cmd()

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,220 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as mc # type: ignore
import maya.mel as mel # type: ignore
import math
import re
def evenEdgeLoopDoitRun(smoothType):
sel=mc.ls(sl=1,fl=1)
if sel:
shape = mc.listRelatives(sel,p=1 )
mc.displaySmoothness(divisionsU=0, divisionsV=0, pointsWire=4, pointsShaded=1, polygonObject=1)
sortEdgeLoopGrp = getEdgeRingGroup(0,'')
for s in sortEdgeLoopGrp:
mc.select(s)
evenEdgeLoopDoit(smoothType)
mc.select(sel)
cmd = 'doMenuComponentSelection("' + shape[0] +'", "edge");'
mel.eval(cmd)
mc.select(sel)
def run():
if mc.window("evenEdgeLoopDoitUI", exists = True):
mc.deleteUI("evenEdgeLoopDoitUI")
evenEdgeLoopDoitUI = mc.window("Even Edge Loop", w = 230, s = 1 ,mxb = False,mnb = False)
mc.columnLayout(adj=1)
mc.rowColumnLayout(nc= 5 ,cw=[(1,75),(2,10),(3,75),(4,10),(5,75)])
mc.button( l= "Average", c = lambda x: evenEdgeLoopDoitRun("even") )
mc.text(l='')
mc.button( l= "Arc", c = lambda x: evenEdgeLoopDoitRun("2P") )
mc.text(l='')
mc.button( l= "Straighten ", c = lambda x: evenEdgeLoopDoitRun("straighten") )
mc.showWindow(evenEdgeLoopDoitUI)
def evenEdgeLoopDoit(smoothType):
if mc.objExists('tempEvenCurve'):
mc.delete('tempEvenCurve')
sel =mc.ls(sl=1,fl=1)
getCircleState,listVtx = vtxLoopOrderCheck()
mc.polyToCurve(form=2, degree=1, conformToSmoothMeshPreview=1)
mc.rename('tempEvenCurve')
curveCVs =mc.ls('tempEvenCurve.cv[*]',fl=1)
posCurve = mc.xform(curveCVs[0], a=1,ws=1, q=1, t=1)
posEdge = mc.xform(listVtx[0], a=1,ws=1, q=1, t=1)
if posCurve == posEdge:
pass
else:
listVtx = listVtx[::-1]
if len(curveCVs)>2:
if smoothType == '2P':
if len(curveCVs)>3:
mc.delete(curveCVs[1:-1])
mc.rebuildCurve('tempEvenCurve',ch=0, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s = 2 , d=2, tol=0)
midA = len(listVtx)/3
midB = len(listVtx)/3*2
midA = int(midA)
midB = int(midB)
posA = mc.xform(listVtx[midA], q=1, ws=1, t=1)
posB = mc.xform(listVtx[midB], q=1, ws=1, t=1)
mc.xform('tempEvenCurve.cv[1]', a=1, ws=1, t = (posA[0],posA[1],posA[2]) )
mc.xform('tempEvenCurve.cv[2]', a=1, ws=1, t = (posB[0],posB[1],posB[2]) )
mc.rebuildCurve('tempEvenCurve',ch=0, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s = (len(listVtx)-1) , d=1, tol=0)
curveCVs =mc.ls('tempEvenCurve.cv[*]',fl=1)
elif smoothType == 'straighten ':
mc.delete(curveCVs[1:-1])
newNumber = (len(listVtx)-1)
mc.rebuildCurve('tempEvenCurve',ch=0, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s = newNumber , d=1, tol=0)
if newNumber == 2:
mc.delete('tempEvenCurve.cv[1]','tempEvenCurve.cv[3]')
curveCVs =mc.ls('tempEvenCurve.cv[*]',fl=1)
else:
mc.rebuildCurve('tempEvenCurve',ch=1, rpo=1, rt=0, end=1, kr=0, kcp=0, kep=1, kt=0, s = 0 , d=1, tol=0)
if len(curveCVs)< 4:
mc.delete( 'tempEvenCurve.cv[1]', 'tempEvenCurve.cv[3]')
curveCVs =mc.ls('tempEvenCurve.cv[*]',fl=1)
posCurve = mc.xform(curveCVs[0], a=1,ws=1, q=1, t=1)
posEdge = mc.xform(listVtx[0], a=1,ws=1, q=1, t=1)
posEdge[0] = round(posEdge[0],3)
posEdge[1] = round(posEdge[1],3)
posEdge[2] = round(posEdge[2],3)
posCurve[0] = round(posCurve[0],3)
posCurve[1] = round(posCurve[1],3)
posCurve[2] = round(posCurve[2],3)
for i in range(len(curveCVs)):
pos = mc.xform(curveCVs[i], a=1,ws=1, q=1, t=1)
mc.xform(listVtx[i], a=1, ws=1, t = (pos[0],pos[1],pos[2]) )
mc.delete('tempEvenCurve')
def getEdgeRingGroup(listSort,listInput):
selEdges = mc.ls(sl=1,fl=1)
trans = selEdges[0].split(".")[0]
e2vInfos = mc.polyInfo(selEdges, ev=True)
e2vDict = {}
fEdges = []
for info in e2vInfos:
evList = [ int(i) for i in re.findall('\\d+', info) ]
e2vDict.update(dict([(evList[0], evList[1:])]))
while True:
try:
startEdge, startVtxs = e2vDict.popitem()
except:
break
edgesGrp = [startEdge]
num = 0
for vtx in startVtxs:
curVtx = vtx
while True:
nextEdges = []
for k in e2vDict:
if curVtx in e2vDict[k]:
nextEdges.append(k)
if nextEdges:
if len(nextEdges) == 1:
if num == 0:
edgesGrp.append(nextEdges[0])
else:
edgesGrp.insert(0, nextEdges[0])
nextVtxs = e2vDict[nextEdges[0]]
curVtx = [ vtx for vtx in nextVtxs if vtx != curVtx ][0]
e2vDict.pop(nextEdges[0])
else:
break
else:
break
num += 1
fEdges.append(edgesGrp)
retEdges =[]
for f in fEdges:
f= list(map(lambda x: (trans +".e["+ str(x) +"]"), f))
retEdges.append(f)
if listSort == 1:
sortEdgeLoopOrder=[]
getCircleState,listVtx = vtxLoopOrderCheck(listInput)
for l in listVtx:
for r in retEdges:
checkCvList = mc.ls(mc.polyListComponentConversion( r,fe=True, tv=True), fl=True,l=True)
if l in checkCvList:
sortEdgeLoopOrder.append(r)
return sortEdgeLoopOrder
else:
return retEdges
def vtxLoopOrderCheck():
selEdges = mc.ls(sl=1,fl=1)
shapeNode = mc.listRelatives(selEdges[0], fullPath=True , parent=True )
transformNode = mc.listRelatives(shapeNode[0], fullPath=True , parent=True )
edgeNumberList = []
for a in selEdges:
checkNumber = ((a.split('.')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
edgeNumberList.append(findNumber)
getNumber = []
for s in selEdges:
evlist = mc.polyInfo(s,ev=True)
checkNumber = ((evlist[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
dup = set([x for x in getNumber if getNumber.count(x) > 1])
getHeadTail = list(set(getNumber) - dup)
checkCircleState = 0
if not getHeadTail: #close curve
checkCircleState = 1
getHeadTail.append(getNumber[0])
vftOrder = []
vftOrder.append(getHeadTail[0])
count = 0
while len(dup)> 0 and count < 1000:
checkVtx = transformNode[0]+'.vtx['+ vftOrder[-1] + ']'
velist = mc.polyInfo(checkVtx,ve=True)
getNumber = []
checkNumber = ((velist[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
findNextEdge = []
for g in getNumber:
if g in edgeNumberList:
findNextEdge = g
edgeNumberList.remove(findNextEdge)
checkVtx = transformNode[0]+'.e['+ findNextEdge + ']'
findVtx = mc.polyInfo(checkVtx,ev=True)
getNumber = []
checkNumber = ((findVtx[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
gotNextVtx = []
for g in getNumber:
if g in dup:
gotNextVtx = g
dup.remove(gotNextVtx)
vftOrder.append(gotNextVtx)
count += 1
if checkCircleState == 0:
vftOrder.append(getHeadTail[1])
else:#close curve remove connected vtx
if vftOrder[0] == vftOrder[1]:
vftOrder = vftOrder[1:]
elif vftOrder[0] == vftOrder[-1]:
vftOrder = vftOrder[0:-1]
finalList = []
for v in vftOrder:
finalList.append(transformNode[0]+'.vtx['+ v + ']' )
return checkCircleState, finalList
#edge
if __name__ == "__main__":
run()

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

View File

@ -0,0 +1,485 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as mc
import maya.mel as mel
import maya.OpenMaya as om
import maya.OpenMayaUI as omui
from maya.OpenMaya import MGlobal
import math
import maya.api.OpenMaya as oma
import re
def run():
cleanList = ('instPicker','instRot')
for c in cleanList:
if mc.objExists(c):
mc.delete(c)
global ctx
ctx = 'Click2dTo3dCtx'
global storeHitFace
storeHitFace =''
if mc.draggerContext(ctx, exists=True):
mc.deleteUI(ctx)
mc.draggerContext(ctx, pressCommand = instDragPick, rc = instDragClean, dragCommand = instDragMove, name=ctx, cursor='crossHair',undoMode='step')
mc.setToolTo(ctx)
def instDragPick():
preSelect = mc.ls(sl=1,fl=1,l=1)
global ctx
global screenX,screenY
global checkScreenMeshList
global storeCameraPosition
global storeMeshNode
global parentDir
global targetMeshName
global instDul
global storeHitFace
global cameraFarClip
global storeRotCount
global lockCount
global edgeAlignRecord
edgeAlignRecord = 0
storeRotCount = 0
vpX, vpY, _ = mc.draggerContext(ctx, query=True, anchorPoint=True)
screenX = vpX
screenY = vpY
pos = om.MPoint()
dir = om.MVector()
omui.M3dView().active3dView().viewToWorld(int(vpX), int(vpY), pos, dir)
pos2 = om.MFloatPoint(pos.x, pos.y, pos.z)
view = omui.M3dView.active3dView()
cam = om.MDagPath()
view.getCamera(cam)
camPath = cam.fullPathName()
cameraTrans = mc.listRelatives(camPath,type='transform',p=True)
cameraFarClip = mc.getAttr(cameraTrans[0]+'.farClipPlane')
storeCameraPosition = mc.xform(cameraTrans,q=1,ws=1,rp=1)
##########################################################
storeMeshNode=[]
instDul = 0
checkHit = 0
finalMesh = []
shortDistance = cameraFarClip
distanceBetween = cameraFarClip
hitpoint = om.MFloatPoint()
hitFace = om.MScriptUtil()
hitFace.createFromInt(0)
hitFacePtr = hitFace.asIntPtr()
##########################################################
checkScreenMeshList = screenVisPoly()
for mesh in checkScreenMeshList:
selectionList = om.MSelectionList()
selectionList.add(mesh)
dagPath = om.MDagPath()
selectionList.getDagPath(0, dagPath)
fnMesh = om.MFnMesh(dagPath)
intersection = fnMesh.closestIntersection(
om.MFloatPoint(pos2),
om.MFloatVector(dir),
None,
None,
False,
om.MSpace.kWorld,
cameraFarClip,
False,
None,
hitpoint,
None,
hitFacePtr,
None,
None,
None)
if intersection:
x = hitpoint.x
y = hitpoint.y
z = hitpoint.z
distanceBetween = math.sqrt( ((float(storeCameraPosition[0]) - x)**2) + ((float(storeCameraPosition[1]) - y)**2) + ((float(storeCameraPosition[2]) - z)**2))
if distanceBetween < shortDistance:
shortDistance = distanceBetween
finalMesh = mesh
if preSelect:
checkShape = mc.listRelatives(preSelect, shapes=True, fullPath=True)
finalMesh = checkShape
if len(finalMesh) > 0:
#preSelect = mc.ls(sl=1,fl=1,l=1)
#checkShape = mc.listRelatives(preSelect, shapes=True, fullPath=True)
#finalMesh = checkShape
storeMeshNode=mc.listRelatives(finalMesh,type='transform',p=True,f=True)
shapeNode = mc.listRelatives(storeMeshNode[0], fullPath=True,ad=True )
parentDir = '|'.join(storeMeshNode[0].split('|')[0:-1])
targetMeshName = storeMeshNode[0].split('|')[-1]
#move pivot to bbox base
rotSave = mc.getAttr(targetMeshName + '.rotate')
posSave = mc.xform(targetMeshName, q=True, ws=True, piv=True)[:3]
mc.setAttr(targetMeshName + '.rotate',0,0,0)
bbox = mc.exactWorldBoundingBox(targetMeshName)
base_position = bbox[1]
mc.move(posSave[0], base_position, posSave[2] , (targetMeshName+ '.scalePivot'), (targetMeshName + '.rotatePivot'), ws=True)
##########################################################
mc.group(empty=1,n ='instPicker')
mc.duplicate('instPicker')
mc.rename('instRot')
mc.parent('instRot','instPicker')
mc.select('instPicker',storeMeshNode[0])
mc.matchTransform(pos=1,rot=1)
mc.parent(storeMeshNode[0],'instRot')
mc.select('instPicker|instRot|'+targetMeshName)
mc.setAttr('instPicker.rotate',rotSave[0][0],rotSave[0][1],rotSave[0][2])
mc.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
mc.delete(constructionHistory=True)
##########################################################
for s in shapeNode:
if s in checkScreenMeshList:
checkScreenMeshList.remove(s)
currentRoteY = mc.getAttr('instRot.rotateY')
lockCount = int(currentRoteY / 15)*15
def instDragClean():
global parentDir
global targetMeshName
global instDul
global edgeAlignRecord
edgeAlignRecord = 0
if mc.objExists('instPicker'):
if len(parentDir) == 0:
mc.select('instPicker|instRot|'+targetMeshName)
mc.parent(w=1)
else:
mc.parent(('|instPicker|instRot|'+targetMeshName),(parentDir))
cleanList = ('instPicker','instRot')
for c in cleanList:
if mc.objExists(c):
mc.delete(c)
instDul = 0
mc.select(cl=1)
def instDragMove():
global screenX
global storeMeshNode
global storeHitFace
global cameraFarClip
global storeRotCount
global storeRotCount
global lockCount
global edgeAlignRecord
if storeMeshNode:
if mc.objExists('instPicker'):
global ctx
global screenX,screenY
global storeCameraPosition
global checkScreenMeshList
global parentDir
global targetMeshName
global instDul
modifiers = mc.getModifiers()
vpX, vpY, _ = mc.draggerContext(ctx, query=True, dragPoint=True)
if (modifiers == 4):
#press Ctrl ----> rotate
if screenX > vpX:
lockCount = lockCount - 2
else:
lockCount = lockCount + 2
screenX = vpX
if lockCount < -360:
lockCount = -360
elif lockCount > 360:
lockCount = 360
getX = int(lockCount / 15)*15
if storeRotCount != getX:
storeRotCount = getX
mc.setAttr('instRot.rotateY',storeRotCount)
mc.refresh(cv=True,f=True)
elif(modifiers == 5):
#press Shift + Ctrl
if edgeAlignRecord == 0:
alignEdge()
edgeAlignRecord = 1
mc.refresh(cv=True,f=True)
elif(modifiers == 1):
#press Shift -----> dulpicate current mesh
if instDul == 0:
newD = mc.duplicate(('|instPicker|instRot|'+targetMeshName),rr=1)
if len(parentDir) == 0:
mc.select('instPicker|instRot|'+targetMeshName)
mc.parent(w=1)
else:
mc.parent(('|instPicker|instRot|'+targetMeshName),(parentDir))
targetMeshName = newD[0]
mc.select(targetMeshName)
instDul = 1
mc.refresh(cv=True,f=True)
else:
pos = om.MPoint()
dir = om.MVector()
omui.M3dView().active3dView().viewToWorld(int(vpX), int(vpY), pos, dir)
pos2 = om.MFloatPoint(pos.x, pos.y, pos.z)
############################################################
checkHit = 0
finalMesh = ''
hitFaceName = ''
finalX = 0
finalY = 0
finalZ = 0
shortDistance = cameraFarClip
distanceBetween = cameraFarClip
hitpoint = om.MFloatPoint()
hitFace = om.MScriptUtil()
hitFace.createFromInt(0)
hitFacePtr = hitFace.asIntPtr()
############################################################
for mesh in checkScreenMeshList:
selectionList = om.MSelectionList()
selectionList.add(mesh)
dagPath = om.MDagPath()
selectionList.getDagPath(0, dagPath)
fnMesh = om.MFnMesh(dagPath)
intersection = fnMesh.closestIntersection(
om.MFloatPoint(pos2),
om.MFloatVector(dir),
None,
None,
False,
om.MSpace.kWorld,
cameraFarClip,
False,
None,
hitpoint,
None,
hitFacePtr,
None,
None,
None)
if intersection:
x = hitpoint.x
y = hitpoint.y
z = hitpoint.z
distanceBetween = math.sqrt( ((float(storeCameraPosition[0]) - x)**2) + ((float(storeCameraPosition[1]) - y)**2) + ((float(storeCameraPosition[2]) - z)**2))
if distanceBetween < shortDistance:
shortDistance = distanceBetween
finalMesh = mesh
if finalMesh:
selectionList = om.MSelectionList()
selectionList.add(finalMesh)
dagPath = om.MDagPath()
selectionList.getDagPath(0, dagPath)
fnMesh = om.MFnMesh(dagPath)
intersection = fnMesh.closestIntersection(
om.MFloatPoint(pos2),
om.MFloatVector(dir),
None,
None,
False,
om.MSpace.kWorld,
cameraFarClip,
False,
None,
hitpoint,
None,
hitFacePtr,
None,
None,
None)
finalX = hitpoint.x
finalY = hitpoint.y
finalZ = hitpoint.z
hitFace = om.MScriptUtil(hitFacePtr).asInt()
hitFaceName = (finalMesh + '.f[' + str(hitFace) +']')
instDul = 0
mc.setAttr('instPicker.translate', finalX,finalY,finalZ)
if storeHitFace != hitFaceName:
rx, ry, rz = checkFaceAngle(hitFaceName)
mc.setAttr('instPicker.rotate', rx,ry,rz)
storeHitFace = hitFaceName
mc.refresh(cv=True,f=True)
def screenVisPoly():
commonList= []
view = omui.M3dView.active3dView()
om.MGlobal.selectFromScreen(0, 0, view.portWidth(), view.portHeight(), om.MGlobal.kReplaceList)
objects = om.MSelectionList()
sel = om.MSelectionList()
om.MGlobal.getActiveSelectionList(objects)
om.MGlobal.setActiveSelectionList(sel, om.MGlobal.kReplaceList)
fromScreen = []
objects.getSelectionStrings(fromScreen)
shapesOnScreen = mc.listRelatives(fromScreen, shapes=True,f=True)
meshList = mc.ls(type='mesh',l=True)#only polygon
if len(meshList)>0 and shapesOnScreen is not None:
commonList = list(set(meshList) & set(shapesOnScreen))
return commonList
else:
commonList = []
return commonList
def checkFaceAngle(faceName):
shapeNode = mc.listRelatives(faceName, fullPath=True , parent=True )
transformNode = mc.listRelatives(shapeNode[0], fullPath=True , parent=True )
obj_matrix = oma.MMatrix(mc.xform(transformNode, query=True, worldSpace=True, matrix=True))
face_normals_text = mc.polyInfo(faceName, faceNormals=True)[0]
face_normals = [float(digit) for digit in re.findall(r'-?\d*\.\d*', face_normals_text)]
v = oma.MVector(face_normals) * obj_matrix
upvector = oma.MVector (0,1,0)
getHitNormal = v
quat = oma.MQuaternion(upvector, getHitNormal)
quatAsEuler = oma.MEulerRotation()
quatAsEuler = quat.asEulerRotation()
rx, ry, rz = math.degrees(quatAsEuler.x), math.degrees(quatAsEuler.y), math.degrees(quatAsEuler.z)
return rx, ry, rz
def alignEdge():
mesh=mc.ls(sl=1,fl=1)
if len(mesh) == 1:
checkLongName = mc.ls(mesh[0],l=1)
parentNode = checkLongName[0].split('|')
if len(parentNode) > 2:
outParent = ''
outParent = '|'.join(parentNode[1:-1])
mc.parent(mesh[0],w=1)
cleanList = ('sampleCurv*','sampleMes*','rotationPlan*')
for c in cleanList:
if mc.objExists(c):
mc.delete(c)
gface, gHitp,cEdge,cEdgePos = getClosestEdge()
mc.select(cEdge)
checkCVList=mc.ls( mc.polyListComponentConversion (cEdge,fe=True,tv=True),flatten=True)
mx,my,mz = mc.pointPosition(checkCVList[0],w=1)
mc.polyPlane(w=1, h=1, sx=1, sy=1, ax=(0,1,0), cuv=2, ch=0, n='rotationPlane')
mc.polyCreateFacet( p=[(mx, my, mz),(cEdgePos[0], cEdgePos[1], cEdgePos[2]),(gHitp[0], gHitp[1], gHitp[2])] )
mc.rename('sampleMesh')
mc.select("rotationPlane.vtx[0:2]", "sampleMesh.vtx[0:2]")
CMD = 'snap3PointsTo3Points(0);'
mel.eval(CMD)
mc.parent(mesh[0],'rotationPlane')
axes = ["X", "Y", "Z"]
for a in axes:
val = mc.getAttr( mesh[0] + ".rotate" + a)
valTmp = ''
if val > 0:
valTmp = val + 45
else:
valTmp = val - 45
valNew = int (valTmp/90)
mc.setAttr(( mesh[0] + ".rotate" + a), (valNew*90))
mc.move(gHitp[0], gHitp[1], gHitp[2], mesh[0], rpr=True,wd=True)
mc.select(mesh[0])
mc.parent(w=1)
if len(parentNode) > 2:
mc.parent(mesh[0],outParent)
for c in cleanList:
if mc.objExists(c):
mc.delete(c)
def getClosestEdge():
mayaMesh = mc.ls(sl=1,fl=1)
gFace = ''
gHitP = ''
gFace,gHitP = getClosestMeshHit(mayaMesh[0])
listF2E=mc.ls( mc.polyListComponentConversion (gFace,ff=True,te=True),flatten=True)
cEdge = ''
smallestDist = 1000000
cEdgePos = []
for l in listF2E:
mc.select(l)
mc.polyToCurve(form=2, degree=1, conformToSmoothMeshPreview=1)
sampleCurve = mc.ls(sl=1)
selectionList = om.MSelectionList()
selectionList.add(sampleCurve[0])
dagPath = om.MDagPath()
selectionList.getDagPath(0, dagPath)
omCurveOut = om.MFnNurbsCurve(dagPath)
pointInSpace = om.MPoint(gHitP[0],gHitP[1],gHitP[2])
closestPoint = om.MPoint()
closestPoint = omCurveOut.closestPoint(pointInSpace)
getDist = math.sqrt( ((closestPoint[0] - gHitP[0])**2) + ((closestPoint[1]- gHitP[1])**2) + ((closestPoint[2] - gHitP[2])**2))
if getDist < smallestDist:
smallestDist = getDist
cEdge = l
cEdgePos = [closestPoint[0],closestPoint[1],closestPoint[2]]
mc.delete(sampleCurve)
mc.select(cEdge)
return(gFace,gHitP,cEdge,cEdgePos)
def getClosestMeshHit(mayaMesh):
myShape = mc.listRelatives(mayaMesh, f=True,ad =True)
checkList = screenVisPoly()
removeList = list(set(checkList) - set(myShape))
checkList = removeList
meshPos = mc.xform(mayaMesh,q=1, ws=1, a=1, piv=1)
posXXX = [meshPos[0],meshPos[1],meshPos[2]]
shortDistanceCheck = 10000
resultFace = []
resultCV =[]
resultHitPoint = []
for c in checkList:
transNode = mc.listRelatives(c, p=True,f=True)
getFaceDist,getFace,getHitPoint = getClosestPointOnFace(transNode[0],posXXX)
#print(getCV, getFaceDist, getFace)
if getFaceDist < shortDistanceCheck:
shortDistanceCheck = getFaceDist
resultFace = getFace
resultHitPoint = getHitPoint
return (resultFace,resultHitPoint)
def getClosestPointOnFace(mayaMesh,pos=[0,0,0]):
mVector = oma.MVector(pos)#using MVector type to represent position
selectionList = oma.MSelectionList()
selectionList.add(mayaMesh)
dPath= selectionList.getDagPath(0)
mMesh=oma.MFnMesh(dPath)
ID = mMesh.getClosestPoint(oma.MPoint(mVector),space=oma.MSpace.kWorld)[1] #getting closest face ID
closestPoint= mMesh.getClosestPoint(oma.MPoint(mVector),space=oma.MSpace.kWorld)[0]
cpx = closestPoint[0]
cpy = closestPoint[1]
cpz = closestPoint[2]
hitPointPosition = [cpx,cpy,cpz]
hitFaceName = (mayaMesh+'.f['+str(ID)+']')
getFaceDist = math.sqrt( ((pos[0] - cpx)**2) + ((pos[1]- cpy)**2) + ((pos[2] - cpz)**2))
return (getFaceDist, hitFaceName,hitPointPosition)
def getPolyFaceCenter(faceName):
meshFaceName = faceName.split('.')[0]
findVtx = mc.polyInfo(faceName, fv=1)
getNumber = []
checkNumber = ((findVtx[0].split(':')[1]).split('\n')[0]).split(' ')
for c in checkNumber:
findNumber = ''.join([n for n in c.split('|')[-1] if n.isdigit()])
if findNumber:
getNumber.append(findNumber)
centerX = 0
centerY = 0
centerZ = 0
for g in getNumber:
x,y,z = mc.pointPosition((meshFaceName + '.vtx['+g + ']'),w=1)
centerX = centerX + x
centerY = centerY + y
centerZ = centerZ + z
centerX = centerX/len(getNumber)
centerY = centerY/len(getNumber)
centerZ = centerZ/len(getNumber)
return centerX,centerY,centerZ

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,933 @@
//Maya ASCII 2023 scene
//Name: Plug_Circle_01.ma
//Last modified: Sat, Feb 04, 2023 03:35:19 PM
//Codeset: 1252
requires maya "2023";
requires "stereoCamera" "10.0";
requires -nodeType "aiOptions" -nodeType "aiAOVDriver" -nodeType "aiAOVFilter" "mtoa" "5.2.2.1";
currentUnit -l centimeter -a degree -t film;
fileInfo "application" "maya";
fileInfo "product" "Maya 2023";
fileInfo "version" "2023";
fileInfo "cutIdentifier" "202202161415-df43006fd3";
fileInfo "osv" "Windows 10 Home v2009 (Build: 19045)";
fileInfo "UUID" "36B384AC-4245-AD57-F87B-0AA5EB1218F5";
createNode transform -n "Plug_Mesh";
rename -uid "1E048A9A-46E1-F90A-96B7-8DBF11CFCBB9";
createNode mesh -n "Plug_MeshShape" -p "Plug_Mesh";
rename -uid "9DBA7D69-4922-6911-F85C-3BB54D314C5F";
setAttr -k off ".v";
setAttr -s 4 ".iog[0].og";
setAttr ".iog[0].og[1].gcl" -type "componentList" 3 "e[186]" "e[188]" "e[190:191]";
setAttr ".iog[0].og[3].gcl" -type "componentList" 1 "f[0:91]";
setAttr ".iog[0].og[4].gcl" -type "componentList" 2 "f[0:85]" "f[90:91]";
setAttr ".iog[0].og[5].gcl" -type "componentList" 1 "e[180:183]";
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".pv" -type "double2" 0.5 0.5 ;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr -s 111 ".uvst[0].uvsp[0:110]" -type "float2" 0.74458295 0 0 0
1 1.8370836e-09 0.25541702 1 0.38161409 1 1 1 0 0.25541702 0 0.38161409 0 1 0.29491401
0 0.61838591 0 1 0.29491401 1 0.61838591 1 0.74458259 0.70508599 1 0 0.70508599 0
0 0.25 0 1 0 1 0.25 0 1 0.25 1 0 0.25 0.5 0 0.75 0 1 0.5 1 0.75 1 1 0.5 1 0.75 1
0 0.5 0 0.75 0.04144964 0.48762348 0.30231681 0.88973552 0.14228116 0.82315218 0.052164458
0.68937385 0.056264307 0.056264348 0.25 0 0.25722334 0 0.5 0 0.49012059 0 0.75 0
0.72942942 0 1 0 0.90614009 0.061316129 1 0.25 0.92816645 0.27539909 1 0.5 0.93910134
0.49768305 1 0.75 0.94373643 0.72186822 1 1 0.94373643 0.94373643 0.75 1 0.72186828
0.94373655 0.5 1 0.49768305 0.93910134 0.25 1 0.27539912 0.92816663 0 1 0.061316129
0.90614009 0 0.75 0 0.72942942 0 0.5 0 0.49012059 0 0.25 2.905433e-09 0.25722331
0 0 0.49719083 0.89579564 0.89561576 0.68298644 0.82643974 0.82531327 0.68623865
0.89236349 0.28934753 0.051318988 0.48980436 0.039268769 0.11914473 0.12172028 0.89797664
0.49500996 0.49349761 0.46753225 0.68049711 0.05367947 0.82007825 0.14280608 0.88085902
0.30383161 0.036252577 0.27916166 0.059993941 0.059993986 0.25770214 0 0 0.25770214
0.48946571 0 0.72806585 0 0.89991832 0.065380648 0.92340481 0.27708274 0.93506449
0.49752948 0.94000685 0.72000343 0.94000685 0.94000685 0.72000349 0.94000697 0.49752948
0.93506449 0.27708277 0.92340493 0.065380648 0.89991832 0 0.72806585 0 0.48946571
0.5 0 0.5 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1;
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr -s 105 ".pt[0:104]" -type "float3" -0.30090532 3.7604761e-10
0.30090532 -0.28361243 0 0.28361243 -0.27271876 0 0.27271876 -0.1628488 3.7604755e-10
0.39315209 -0.1534899 0 0.37055725 -0.14759429 0 0.35632402 0.30090532 3.7604761e-10
0.30090532 0.28361243 0 0.28361243 0.27271876 0 0.27271876 0.39315209 3.7604767e-10
0.1628488 0.37055725 0 0.1534899 0.35632402 0 0.14759429 -0.30090532 3.760478e-10
-0.30090532 -0.28361243 0 -0.28361243 -0.27271876 0 -0.27271876 -0.1628488 3.7604783e-10
-0.39315209 -0.1534899 0 -0.37055725 -0.14759429 0 -0.35632402 -0.39315209 3.7604767e-10
0.1628488 -0.37055725 0 0.1534899 -0.35632402 0 0.14759429 8.742477e-09 3.7604755e-10
0.42554432 8.597711e-09 0 0.40108865 8.429355e-09 0 0.38568234 0.1628488 3.7604755e-10
0.39315209 0.1534899 0 0.37055725 0.14759429 0 0.35632402 0.42554432 3.7604772e-10
-3.8473851e-09 0.40108865 0 -2.7866696e-09 0.38568234 0 -2.2996094e-09 0.39315209
3.7604778e-10 -0.1628488 0.37055725 0 -0.15348987 0.35632402 0 -0.14759427 0.30090532
3.760478e-10 -0.30090532 0.28361243 0 -0.28361243 0.27271876 0 -0.27271876 3.8473851e-09
3.7604786e-10 -0.42554432 2.7866696e-09 0 -0.40108865 2.2996094e-09 0 -0.38568234
0.1628488 3.7604783e-10 -0.39315209 0.15348987 0 -0.37055725 0.14759427 0 -0.35632402
-0.42554432 3.7604772e-10 -8.742477e-09 -0.40108865 0 -8.597711e-09 -0.38568234 0
-8.429355e-09 -0.39315209 3.7604778e-10 -0.1628488 -0.37055725 0 -0.1534899 -0.35632402
0 -0.14759429 4.8988977e-09 0 -8.6429105e-17 -0.26868948 0 0.26868948 -0.26191306
0 0.26191306 -0.24587677 0 0.24587677 -0.13306767 0 0.32125357 -0.14174645 0 0.34220636
-0.14541359 0 0.35105935 -0.32125357 0 0.13306767 -0.34220636 0 0.14174645 -0.35105935
0 0.14541359 8.4899865e-09 0 0.34772232 8.7455634e-09 0 0.3704012 8.8352552e-09 0
0.37998408 0.13306767 0 0.32125357 0.14174645 0 0.34220636 0.14541359 0 0.35105935
0.24587677 0 0.24587677 0.26191306 0 0.26191306 0.26868948 0 0.26868948 0.32125357
0 0.13306767 0.34220636 0 0.14174645 0.35105935 0 0.14541359 0.34772232 0 2.4059116e-10
0.3704012 0 -6.167587e-10 0.37998408 0 -1.0204312e-09 0.32125357 0 -0.13306759 0.34220636
0 -0.14174634 0.35105935 0 -0.14541349 0.24587677 0 -0.24587677 0.26191306 0 -0.26191306
0.26868948 0 -0.26868948 0.13306759 0 -0.32125357 0.14174634 0 -0.34220636 0.14541349
0 -0.35105935 -2.4059113e-10 0 -0.34772232 6.1675826e-10 0 -0.3704012 1.0204312e-09
0 -0.37998408 -0.13306767 0 -0.32125357 -0.14174645 0 -0.34220636 -0.14541359 0 -0.35105935
-0.24587677 0 -0.24587677 -0.26191306 0 -0.26191306 -0.26868948 0 -0.26868948 -0.32125357
0 -0.13306767 -0.34220636 0 -0.14174645 -0.35105935 0 -0.14541359 -0.34772232 0 -8.4899865e-09
-0.3704012 0 -8.7455634e-09 -0.37998408 0 -8.8352552e-09 0 0.012611797 0 0 0.012611797
0 0 0.012611797 0 0 0.012611797 0 0 0.012605692 0 0 0.012605353 0 0 0.012605353 0
0 0.012605013 0;
setAttr -s 105 ".vt[0:104]" -0.93426073 1.2542004e-15 0.93426073 -0.88056892 0.027129758 0.88056892
-0.84674579 0.069256335 0.84674579 -0.50561833 1.2920214e-15 1.22067094 -0.4765605 0.027129758 1.15051901
-0.4582555 0.069256335 1.10632682 0.93426073 1.2543159e-15 0.93426073 0.88056892 0.027129758 0.88056892
0.84674579 0.069256335 0.84674579 1.22067094 1.1976179e-15 0.50561833 1.15051901 0.027129758 0.4765605
1.10632682 0.069256335 0.4582555 -0.93426073 1.0072435e-15 -0.93426073 -0.88056892 0.027129758 -0.88056892
-0.84674579 0.069256335 -0.84674579 -0.50561833 9.6937373e-16 -1.22067094 -0.4765605 0.027129758 -1.15051901
-0.4582555 0.069256335 -1.10632682 -1.22067094 1.197669e-15 0.50561833 -1.15051901 0.027129758 0.4765605
-1.10632682 0.069256335 0.4582555 2.7143924e-08 1.3054115e-15 1.3212446 2.6694453e-08 0.027129758 1.24531269
2.617174e-08 0.069256335 1.19747961 0.50561833 1.2921722e-15 1.22067094 0.4765605 0.027129758 1.15051901
0.4582555 0.069256335 1.10632682 1.3212446 1.1306906e-15 -1.1945486e-08 1.24531269 0.027129758 -8.6521492e-09
1.19747961 0.069256335 -7.1399002e-09 1.22067094 1.0637404e-15 -0.50561821 1.15051901 0.027129758 -0.47656038
1.10632682 0.069256335 -0.45825538 0.93426073 1.0070958e-15 -0.93426073 0.88056892 0.027129758 -0.88056892
0.84674579 0.069256335 -0.84674579 1.1945486e-08 9.5606991e-16 -1.3212446 8.6521492e-09 0.027129758 -1.24531269
7.1399002e-09 0.069256335 -1.19747961 0.50561821 9.6936695e-16 -1.22067094 0.47656038 0.027129758 -1.15051901
0.45825538 0.069256335 -1.10632682 -1.3212446 1.1307985e-15 -2.7143924e-08 -1.24531269 0.027129758 -2.6694453e-08
-1.19747961 0.069256335 -2.617174e-08 -1.22067094 1.063929e-15 -0.50561833 -1.15051901 0.027129758 -0.4765605
-1.10632682 0.069256335 -0.4582555 1.5210269e-08 0.84926534 -2.6834793e-16 -0.83423531 0.78056127 0.83423531
-0.81319702 0.82918811 0.81319702 -0.76340687 0.84926534 0.76340687 -0.41315272 0.84926534 0.99743903
-0.44009894 0.82918811 1.062492967 -0.4514848 0.78056127 1.089980841 -0.99743903 0.84926534 0.41315272
-1.062492967 0.82918811 0.44009894 -1.089980841 0.78056127 0.4514848 2.6360002e-08 0.84926534 1.079620361
2.7153527e-08 0.82918811 1.15003419 2.7432e-08 0.78056127 1.1797868 0.41315272 0.84926534 0.99743903
0.44009894 0.82918811 1.062492967 0.4514848 0.78056127 1.089980841 0.76340687 0.84926534 0.76340687
0.81319702 0.82918811 0.81319702 0.83423531 0.78056127 0.83423531 0.99743903 0.84926534 0.41315272
1.062492967 0.82918811 0.44009894 1.089980841 0.78056127 0.4514848 1.079620361 0.84926534 7.469953e-10
1.15003419 0.82918811 -1.9149333e-09 1.1797868 0.78056127 -3.1682676e-09 0.99743903 0.84926534 -0.41315261
1.062492967 0.82918811 -0.44009882 1.089980841 0.78056127 -0.45148462 0.76340687 0.84926534 -0.76340687
0.81319702 0.82918811 -0.81319702 0.83423531 0.78056127 -0.83423531 0.41315261 0.84926534 -0.99743903
0.44009882 0.82918811 -1.062492967 0.45148462 0.78056127 -1.089980841 -7.4699535e-10 0.84926534 -1.079620361
1.9149322e-09 0.82918811 -1.15003419 3.1682676e-09 0.78056127 -1.1797868 -0.41315272 0.84926534 -0.99743903
-0.44009894 0.82918811 -1.062492967 -0.4514848 0.78056127 -1.089980841 -0.76340687 0.84926534 -0.76340687
-0.81319702 0.82918811 -0.81319702 -0.83423531 0.78056127 -0.83423531 -0.99743903 0.84926534 -0.41315272
-1.062492967 0.82918811 -0.44009894 -1.089980841 0.78056127 -0.4514848 -1.079620361 0.84926534 -2.6360002e-08
-1.15003419 0.82918811 -2.7153527e-08 -1.1797868 0.78056127 -2.7432e-08 -2.0046000481 -0.012612605 2
1.99539983 -0.012612605 2 -2.0046000481 -0.012612605 -2 1.99539983 -0.012612605 -2
-2.20306802 -0.012605045 2.19846773 -2.20306802 -0.012604625 -2.19846773 2.19386768 -0.012604625 2.19846773
2.19386768 -0.012604205 -2.19846773;
setAttr -s 196 ".ed";
setAttr ".ed[0:165]" 19 18 1 18 0 1 2 20 1 20 19 1 2 1 1 5 2 1 1 0 1 0 3 1
5 4 1 23 5 1 4 3 1 3 21 1 25 24 1 24 6 1 8 26 1 26 25 1 8 7 1 11 8 1 7 6 1 6 9 1
11 10 1 29 11 1 10 9 1 9 27 1 16 15 1 15 12 1 14 17 1 17 16 1 14 13 1 47 14 1 13 12 1
12 45 1 37 36 1 36 15 1 17 38 1 38 37 1 43 42 1 42 18 1 20 44 1 44 43 1 23 22 1 26 23 1
22 21 1 21 24 1 29 28 1 32 29 1 28 27 1 27 30 1 32 31 1 35 32 1 31 30 1 30 33 1 35 34 1
41 35 1 34 33 1 33 39 1 40 39 1 39 36 1 38 41 1 41 40 1 46 45 1 45 42 1 44 47 1 47 46 1
1 19 1 1 4 1 7 25 1 7 10 1 13 16 1 16 37 1 19 43 1 4 22 1 22 25 1 10 28 1 28 31 1
31 34 1 37 40 1 34 40 1 43 46 1 13 46 1 57 49 1 51 55 1 51 50 1 50 53 1 53 52 1 52 51 1
50 49 1 49 54 1 54 53 1 59 58 1 58 52 1 54 60 1 60 59 1 57 56 1 96 57 1 56 55 1 55 94 1
62 61 1 61 58 1 60 63 1 63 62 1 65 64 1 64 61 1 63 66 1 66 65 1 68 67 1 67 64 1 66 69 1
69 68 1 71 70 1 70 67 1 69 72 1 72 71 1 74 73 1 73 70 1 72 75 1 75 74 1 77 76 1 76 73 1
75 78 1 78 77 1 80 79 1 79 76 1 78 81 1 81 80 1 83 82 1 82 79 1 81 84 1 84 83 1 86 85 1
85 82 1 84 87 1 87 86 1 89 88 1 88 85 1 87 90 1 90 89 1 92 91 1 91 88 1 90 93 1 93 92 1
95 94 1 94 91 1 93 96 1 96 95 1 94 48 1 48 82 1 49 2 1 5 54 1 23 60 1 26 63 1 8 66 1
11 69 1 29 72 1 32 75 1 35 78 1 41 81 1 38 84 1 17 87 1 14 90 1 47 93 1 44 96 1 20 57 1
48 70 1 58 48 1 53 59 1;
setAttr ".ed[166:195]" 50 56 1 59 62 1 62 65 1 65 68 1 68 71 1 71 74 1 74 77 1
77 80 1 80 83 1 83 86 1 86 89 1 89 92 1 92 95 1 56 95 1 97 99 0 97 98 0 98 100 0
99 100 0 97 101 1 99 102 1 101 102 0 98 103 1 101 103 0 100 104 1 103 104 0 102 104 0
12 99 0 0 97 0 33 100 0 6 98 0;
setAttr -s 92 -ch 388 ".fc[0:91]" -type "polyFaces"
f 7 -14 -44 -12 -8 193 181 -196
mu 0 7 2 0 10 9 1 97 101
f 7 -52 -48 -24 -20 195 182 -195
mu 0 7 5 13 12 11 2 105 104
f 4 -7 64 0 1
mu 0 4 1 16 22 6
f 4 -5 2 3 -65
mu 0 4 16 67 65 22
f 4 4 65 -9 5
mu 0 4 67 16 17 37
f 4 6 7 -11 -66
mu 0 4 16 1 9 17
f 4 -19 66 12 13
mu 0 4 2 18 24 0
f 4 -17 14 15 -67
mu 0 4 18 43 41 24
f 4 16 67 -21 17
mu 0 4 43 18 19 45
f 4 18 19 -23 -68
mu 0 4 18 2 11 19
f 4 -31 68 24 25
mu 0 4 8 20 21 3
f 4 -29 26 27 -69
mu 0 4 20 59 57 21
f 4 -25 69 32 33
mu 0 4 3 21 28 4
f 4 -28 34 35 -70
mu 0 4 21 57 55 28
f 4 -1 70 36 37
mu 0 4 6 22 30 7
f 4 -4 38 39 -71
mu 0 4 22 65 63 30
f 4 8 71 -41 9
mu 0 4 37 17 23 39
f 4 10 11 -43 -72
mu 0 4 17 9 10 23
f 4 40 72 -16 41
mu 0 4 39 23 24 41
f 4 42 43 -13 -73
mu 0 4 23 10 0 24
f 4 20 73 -45 21
mu 0 4 45 19 25 47
f 4 22 23 -47 -74
mu 0 4 19 11 12 25
f 4 44 74 -49 45
mu 0 4 47 25 26 49
f 4 46 47 -51 -75
mu 0 4 25 12 13 26
f 4 48 75 -53 49
mu 0 4 49 26 27 51
f 4 50 51 -55 -76
mu 0 4 26 13 5 27
f 4 -33 76 56 57
mu 0 4 4 28 29 14
f 4 -36 58 59 -77
mu 0 4 28 55 53 29
f 4 52 77 -60 53
mu 0 4 51 27 29 53
f 4 54 55 -57 -78
mu 0 4 27 5 14 29
f 4 -37 78 60 61
mu 0 4 7 30 31 15
f 4 -40 62 63 -79
mu 0 4 30 63 61 31
f 4 28 79 -64 29
mu 0 4 59 20 31 61
f 4 30 31 -61 -80
mu 0 4 20 8 15 31
f 4 82 83 84 85
mu 0 4 74 81 82 72
f 4 86 87 88 -84
mu 0 4 81 36 38 82
f 6 145 146 -131 -135 -139 -143
mu 0 6 32 76 68 33 34 35
f 4 -88 147 -6 148
mu 0 4 38 36 67 37
f 4 -92 -149 -10 149
mu 0 4 40 38 37 39
f 4 -100 -150 -42 150
mu 0 4 42 40 39 41
f 4 -104 -151 -15 151
mu 0 4 44 42 41 43
f 4 -108 -152 -18 152
mu 0 4 46 44 43 45
f 4 -112 -153 -22 153
mu 0 4 48 46 45 47
f 4 -116 -154 -46 154
mu 0 4 50 48 47 49
f 4 -120 -155 -50 155
mu 0 4 52 50 49 51
f 4 -124 -156 -54 156
mu 0 4 54 52 51 53
f 4 -128 -157 -59 157
mu 0 4 56 54 53 55
f 4 -132 -158 -35 158
mu 0 4 58 56 55 57
f 4 -136 -159 -27 159
mu 0 4 60 58 57 59
f 4 -140 -160 -30 160
mu 0 4 62 60 59 61
f 4 -144 -161 -63 161
mu 0 4 64 62 61 63
f 4 -95 -162 -39 162
mu 0 4 66 64 63 65
f 4 -163 -3 -148 -81
mu 0 4 66 65 67 36
f 6 -147 163 -115 -119 -123 -127
mu 0 6 68 76 75 69 70 71
f 6 -91 164 -146 -97 -82 -86
mu 0 6 72 73 76 32 80 74
f 6 -164 -165 -99 -103 -107 -111
mu 0 6 75 76 73 77 78 79
f 4 -85 165 89 90
mu 0 4 72 82 84 73
f 4 -89 91 92 -166
mu 0 4 82 38 40 84
f 4 -87 166 -94 80
mu 0 4 36 81 83 66
f 4 -83 81 -96 -167
mu 0 4 81 74 80 83
f 4 -90 167 97 98
mu 0 4 73 84 85 77
f 4 -93 99 100 -168
mu 0 4 84 40 42 85
f 4 -98 168 101 102
mu 0 4 77 85 86 78
f 4 -101 103 104 -169
mu 0 4 85 42 44 86
f 4 -102 169 105 106
mu 0 4 78 86 87 79
f 4 -105 107 108 -170
mu 0 4 86 44 46 87
f 4 -106 170 109 110
mu 0 4 79 87 88 75
f 4 -109 111 112 -171
mu 0 4 87 46 48 88
f 4 -110 171 113 114
mu 0 4 75 88 89 69
f 4 -113 115 116 -172
mu 0 4 88 48 50 89
f 4 -114 172 117 118
mu 0 4 69 89 90 70
f 4 -117 119 120 -173
mu 0 4 89 50 52 90
f 4 -118 173 121 122
mu 0 4 70 90 91 71
f 4 -121 123 124 -174
mu 0 4 90 52 54 91
f 4 -122 174 125 126
mu 0 4 71 91 92 68
f 4 -125 127 128 -175
mu 0 4 91 54 56 92
f 4 -126 175 129 130
mu 0 4 68 92 93 33
f 4 -129 131 132 -176
mu 0 4 92 56 58 93
f 4 -130 176 133 134
mu 0 4 33 93 94 34
f 4 -133 135 136 -177
mu 0 4 93 58 60 94
f 4 -134 177 137 138
mu 0 4 34 94 95 35
f 4 -137 139 140 -178
mu 0 4 94 60 62 95
f 4 -138 178 141 142
mu 0 4 35 95 96 32
f 4 -141 143 144 -179
mu 0 4 95 62 64 96
f 4 93 179 -145 94
mu 0 4 66 83 96 64
f 4 95 96 -142 -180
mu 0 4 83 80 32 96
f 4 180 185 -187 -185
mu 0 4 97 98 99 100
f 4 -182 184 188 -188
mu 0 4 101 97 102 103
f 4 -183 187 190 -190
mu 0 4 104 105 106 107
f 4 183 189 -192 -186
mu 0 4 98 108 109 110
f 7 192 -181 -194 -2 -38 -62 -32
mu 0 7 8 98 97 1 6 7 15
f 7 194 -184 -193 -26 -34 -58 -56
mu 0 7 5 108 98 8 3 4 14;
setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ;
setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ;
setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ;
setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ;
setAttr ".db" yes;
setAttr ".vs" 4;
setAttr ".bw" 4;
createNode transform -n "Plug_controler" -p "Plug_Mesh";
rename -uid "28246CD5-44EB-01E5-45A4-039D73095DDF";
setAttr ".v" no;
setAttr ".rp" -type "double3" -2.4424906541753444e-15 0 -3.9968028886505635e-15 ;
setAttr ".sp" -type "double3" -2.4424906541753444e-15 0 -3.9968028886505635e-15 ;
createNode nurbsCurve -n "Plug_controlerShape" -p "Plug_controler";
rename -uid "D3B7FC80-425C-B88A-E87F-A5AAE7D57753";
setAttr -k off ".v";
setAttr ".ove" yes;
setAttr ".ovrgbf" yes;
setAttr ".ovrgb" -type "float3" 0 0.53846669 1 ;
setAttr ".cc" -type "nurbsCurve"
3 68 2 no 3
73 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
71
0.20686707830461301 1.1102230246251565e-16 -2.2324513085130748
2.3826125097526738e-16 1.1102230246251565e-16 -2.2420153507431881
-0.20686707830461318 1.1102230246251565e-16 -2.2324513085130873
-0.41196923963640886 1.1102230246251565e-16 -2.2038407788589192
-0.61355662467188965 1.1102230246251565e-16 -2.1564278567318969
-0.80990936091964172 1.1102230246251565e-16 -2.0906170524662855
-0.99935223606602541 1.1102230246251565e-16 -2.0069698406398429
-1.1802689902959673 1.1102230246251565e-16 -1.9061998697706957
-1.3511161056518295 1.1102230246251565e-16 -1.789166873719809
-1.5104359747843905 1.1102230246251565e-16 -1.6568693367448168
-1.6568693367448164 1.1102230246251565e-16 -1.5104359747843905
-1.7891668737198088 5.5511151231257827e-17 -1.3511161056518293
-1.9061998697706948 5.5511151231257827e-17 -1.1802689902959673
-2.006969840639842 5.5511151231257827e-17 -0.99935223606602519
-2.0906170524662842 5.5511151231257827e-17 -0.80990936091964172
-2.1564278567318951 5.5511151231257827e-17 -0.61355662467188909
-2.2038407788589169 0 -0.4119692396364088
-2.232451308513085 0 -0.20686707830461323
-2.2420153507431828 0 -2.1397042986067343e-16
-2.232451308513085 0 0.20686707830461276
-2.203840778858916 0 0.4119692396364083
-2.1564278567318942 -5.5511151231257827e-17 0.61355662467188843
-2.0906170524662833 -5.5511151231257827e-17 0.80990936091964083
-2.0069698406398411 -5.5511151231257827e-17 0.99935223606602408
-1.9061998697706943 -5.5511151231257827e-17 1.1802689902959664
-1.7891668737198072 -5.5511151231257827e-17 1.3511161056518279
-1.6568693367448144 -1.1102230246251565e-16 1.5104359747843894
-1.5104359747843892 -1.1102230246251565e-16 1.6568693367448146
-1.3511161056518277 -1.1102230246251565e-16 1.7891668737198068
-1.1802689902959662 -1.1102230246251565e-16 1.9061998697706932
-0.99935223606602408 -1.1102230246251565e-16 2.0069698406398397
-0.80990936091964083 -1.1102230246251565e-16 2.0906170524662824
-0.61355662467188854 -1.1102230246251565e-16 2.1564278567318929
-0.41196923963640825 -1.1102230246251565e-16 2.2038407788589143
-0.2068670783046129 -1.1102230246251565e-16 2.2324513085130837
-2.8540790132205498e-17 -1.1102230246251565e-16 2.2420153507431801
0.20686707830461282 -1.1102230246251565e-16 2.2324513085130828
0.41196923963640808 -1.1102230246251565e-16 2.2038407788589143
0.6135566246718881 -1.1102230246251565e-16 2.1564278567318929
0.80990936091964039 -1.1102230246251565e-16 2.0906170524662815
0.99935223606602375 -1.1102230246251565e-16 2.0069698406398393
1.1802689902959653 -1.1102230246251565e-16 1.9061998697706926
1.3511161056518268 -1.1102230246251565e-16 1.7891668737198061
1.5104359747843876 -1.1102230246251565e-16 1.6568693367448133
1.6568693367448128 -1.1102230246251565e-16 1.5104359747843881
1.7891668737198057 -5.5511151231257827e-17 1.3511161056518268
1.9061998697706912 -5.5511151231257827e-17 1.1802689902959651
2.0069698406398384 -5.5511151231257827e-17 0.99935223606602386
2.0906170524662802 -5.5511151231257827e-17 0.80990936091964016
2.1564278567318911 -5.5511151231257827e-17 0.61355662467188798
2.2038407788589121 0 0.41196923963640808
2.2324513085130815 0 0.20686707830461298
2.2420153507431779 0 3.5477364116248252e-16
2.2324513085130806 0 -0.20686707830461232
2.2038407788589121 0 -0.41196923963640736
2.1564278567318902 5.5511151231257827e-17 -0.6135566246718871
2.0906170524662797 5.5511151231257827e-17 -0.80990936091963917
2.0069698406398375 5.5511151231257827e-17 -0.99935223606602208
1.9061998697706908 5.5511151231257827e-17 -1.180268990295964
1.7891668737198041 5.5511151231257827e-17 -1.3511161056518253
1.6568693367448117 1.1102230246251565e-16 -1.5104359747843861
1.5104359747843865 1.1102230246251565e-16 -1.6568693367448106
1.3511161056518253 1.1102230246251565e-16 -1.7891668737198037
1.1802689902959642 1.1102230246251565e-16 -1.9061998697706892
0.99935223606602297 1.1102230246251565e-16 -2.0069698406398366
0.80990936091963961 1.1102230246251565e-16 -2.0906170524662779
0.61355662467188776 1.1102230246251565e-16 -2.1564278567318884
0.4119692396364078 1.1102230246251565e-16 -2.2038407788589107
0.20686707830461301 1.1102230246251565e-16 -2.2324513085130748
2.3826125097526738e-16 1.1102230246251565e-16 -2.2420153507431881
-0.20686707830461318 1.1102230246251565e-16 -2.2324513085130873
;
createNode transform -n "PlugIt_PlugCountNumber_16";
rename -uid "E011BEAD-41B8-C7AC-F995-F98EFB7C36AC";
createNode transform -s -n "persp";
rename -uid "E8A0B781-4A20-BA27-43D8-D8AA71C075B3";
setAttr ".v" no;
setAttr ".t" -type "double3" 7.2083769849353159 4.7604822424923228 3.6540654689288816 ;
setAttr ".r" -type "double3" -29.138352729602545 70.2000000000005 0 ;
createNode camera -s -n "perspShape" -p "persp";
rename -uid "F8EF1BF7-44EA-5CBD-9C68-8DB0FFEC956C";
setAttr -k off ".v" no;
setAttr ".fl" 34.999999999999993;
setAttr ".coi" 9.312309005938026;
setAttr ".imn" -type "string" "persp";
setAttr ".den" -type "string" "persp_depth";
setAttr ".man" -type "string" "persp_mask";
setAttr ".tp" -type "double3" -0.0046001672744750977 0.41832636622712016 0 ;
setAttr ".hc" -type "string" "viewSet -p %camera";
createNode transform -s -n "top";
rename -uid "7EA63017-4C47-B359-58EB-17B6AC1E9F7C";
setAttr ".v" no;
setAttr ".t" -type "double3" 0 1000.1 0 ;
setAttr ".r" -type "double3" -90 0 0 ;
createNode camera -s -n "topShape" -p "top";
rename -uid "BB2AB6B9-4DB0-E771-0FE7-D18C9FF05371";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".coi" 1000.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "top";
setAttr ".den" -type "string" "top_depth";
setAttr ".man" -type "string" "top_mask";
setAttr ".hc" -type "string" "viewSet -t %camera";
setAttr ".o" yes;
setAttr ".ai_translator" -type "string" "orthographic";
createNode transform -s -n "front";
rename -uid "C82092EF-4FD8-8DFA-5D7D-B9BB977FE1F6";
setAttr ".v" no;
setAttr ".t" -type "double3" 0 0 1000.1 ;
createNode camera -s -n "frontShape" -p "front";
rename -uid "D9C6AB85-45C6-307F-D9BC-939C67DE6F4D";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".coi" 1000.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "front";
setAttr ".den" -type "string" "front_depth";
setAttr ".man" -type "string" "front_mask";
setAttr ".hc" -type "string" "viewSet -f %camera";
setAttr ".o" yes;
setAttr ".ai_translator" -type "string" "orthographic";
createNode transform -s -n "side";
rename -uid "965FECF0-4F5D-D000-FDAE-819E6CF8CAD7";
setAttr ".v" no;
setAttr ".t" -type "double3" 1000.1 0 0 ;
setAttr ".r" -type "double3" 0 90 0 ;
createNode camera -s -n "sideShape" -p "side";
rename -uid "CA4F0315-4CB2-AE73-F93A-9BB270E665C0";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".coi" 1000.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "side";
setAttr ".den" -type "string" "side_depth";
setAttr ".man" -type "string" "side_mask";
setAttr ".hc" -type "string" "viewSet -s %camera";
setAttr ".o" yes;
setAttr ".ai_translator" -type "string" "orthographic";
createNode groupId -n "groupId2";
rename -uid "C4D1033B-4F72-D85C-4D74-F3ACEBD93E79";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_EdgeBorder_set";
rename -uid "8139E85E-4B6B-8D9F-012F-3AB64608B83B";
setAttr ".ihi" 0;
setAttr ".an" -type "string" "gCharacterSet";
createNode groupId -n "groupId4";
rename -uid "4C0DF705-40D3-ED32-50A0-EE835A25941D";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_AllFaces_set";
rename -uid "0A9EC76A-455B-7389-A0CB-EEB13E3272B8";
setAttr ".ihi" 0;
createNode groupId -n "groupId5";
rename -uid "19D5CD95-4233-A77D-8B86-73AB75EB546A";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_Selection_set";
rename -uid "1EC4B6C3-4FEF-2315-349A-FFAE083E0218";
setAttr ".ihi" 0;
createNode groupId -n "groupId6";
rename -uid "02A16DB2-4E70-8CA1-F5AD-C283DD14BC09";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_ExtraSecure_set";
rename -uid "75D0573E-4802-2344-5039-6AB4C3B31142";
setAttr ".ihi" 0;
createNode materialInfo -n "materialInfo2";
rename -uid "34A08C2E-4231-689A-3C82-9AADE04FAF22";
createNode shadingEngine -n "PlugIt_Plug_SG";
rename -uid "FF0400C5-4732-59DB-85A4-3A97910FC6A9";
setAttr ".ihi" 0;
setAttr -s 2 ".dsm";
setAttr ".ro" yes;
createNode lambert -n "PlugIt_Plug_Shd";
rename -uid "31620B3E-439F-8FDB-53F6-87AF02806ED4";
setAttr ".c" -type "float3" 0.89999998 0.38077497 0 ;
createNode lightLinker -s -n "lightLinker1";
rename -uid "781E86EB-46FC-1075-A9F5-5EAA3D1C40BB";
setAttr -s 3 ".lnk";
setAttr -s 3 ".slnk";
createNode shapeEditorManager -n "shapeEditorManager";
rename -uid "17BA9001-4F46-2026-B355-F3885FD3400F";
createNode poseInterpolatorManager -n "poseInterpolatorManager";
rename -uid "25380382-40B8-C7AD-BB20-78A056374302";
createNode displayLayerManager -n "layerManager";
rename -uid "6CD7B6F0-4917-911C-3CC1-5AB17F82F7DD";
createNode displayLayer -n "defaultLayer";
rename -uid "82FF0AD2-46AF-0EEA-CC09-36935A2A1A68";
createNode renderLayerManager -n "renderLayerManager";
rename -uid "AFA8F3C3-4A22-A472-B605-5BBBE0BD28CC";
createNode renderLayer -n "defaultRenderLayer";
rename -uid "9049C159-40D0-B0A4-39E8-11A8010EE7D2";
setAttr ".g" yes;
createNode aiOptions -s -n "defaultArnoldRenderOptions";
rename -uid "37DD0E2F-486C-76B5-57D3-BA8C84683BA3";
setAttr ".version" -type "string" "5.2.2.1";
createNode aiAOVFilter -s -n "defaultArnoldFilter";
rename -uid "DEA2D130-4F20-A259-4C06-15BCB9D33581";
setAttr ".ai_translator" -type "string" "gaussian";
createNode aiAOVDriver -s -n "defaultArnoldDriver";
rename -uid "9699B1C6-40C4-3870-E504-749C06BF0D59";
setAttr ".ai_translator" -type "string" "exr";
createNode aiAOVDriver -s -n "defaultArnoldDisplayDriver";
rename -uid "2FC48E37-48FB-B095-B660-C6A1CBBCC3FF";
setAttr ".output_mode" 0;
setAttr ".ai_translator" -type "string" "maya";
createNode script -n "uiConfigurationScriptNode";
rename -uid "526ED475-4166-75B9-ED3E-9E93D2B8B4F0";
setAttr ".b" -type "string" (
"// Maya Mel UI Configuration File.\n//\n// This script is machine generated. Edit at your own risk.\n//\n//\n\nglobal string $gMainPane;\nif (`paneLayout -exists $gMainPane`) {\n\n\tglobal int $gUseScenePanelConfig;\n\tint $useSceneConfig = $gUseScenePanelConfig;\n\tint $nodeEditorPanelVisible = stringArrayContains(\"nodeEditorPanel1\", `getPanel -vis`);\n\tint $nodeEditorWorkspaceControlOpen = (`workspaceControl -exists nodeEditorPanel1Window` && `workspaceControl -q -visible nodeEditorPanel1Window`);\n\tint $menusOkayInPanels = `optionVar -q allowMenusInPanels`;\n\tint $nVisPanes = `paneLayout -q -nvp $gMainPane`;\n\tint $nPanes = 0;\n\tstring $editorName;\n\tstring $panelName;\n\tstring $itemFilterName;\n\tstring $panelConfig;\n\n\t//\n\t// get current state of the UI\n\t//\n\tsceneUIReplacement -update $gMainPane;\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Top View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels $panelName;\n"
+ "\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|top\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n"
+ " -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n"
+ " -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 0\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n"
+ "\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Side View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|side\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n"
+ " -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n"
+ " -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 0\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n"
+ " -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Front View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|front\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n"
+ " -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n"
+ " -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n"
+ " -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 0\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Persp View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|persp\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n"
+ " -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n"
+ " -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n"
+ " -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 0\n -shadows 0\n -captureSequenceNumber -1\n -width 1943\n -height 1874\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"ToggledOutliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"ToggledOutliner\")) -mbv $menusOkayInPanels $panelName;\n"
+ "\t\t$editorName = $panelName;\n outlinerEditor -e \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 1\n -showReferenceMembers 1\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n"
+ " -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -isSet 0\n -isSetMember 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -renderFilterIndex 0\n -selectionOrder \"chronological\" \n -expandAttribute 0\n $editorName;\n"
+ "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"Outliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n"
+ " -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n"
+ " -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"graphEditor\" (localizedPanelLabel(\"Graph Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n"
+ " -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 1\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 1\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n"
+ " -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 1\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayValues 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showPlayRangeShades \"on\" \n -lockPlayRangeShades \"off\" \n -smoothness \"fine\" \n -resultSamples 1\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n"
+ " -keyMinScale 1\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -preSelectionHighlight 0\n -constrainDrag 0\n -valueLinesToggle 0\n -highlightAffectedCurves 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dopeSheetPanel\" (localizedPanelLabel(\"Dope Sheet\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n"
+ " -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 0\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 1\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n"
+ " -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayValues 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -outliner \"dopeSheetPanel1OutlineEd\" \n -showSummary 1\n"
+ " -showScene 0\n -hierarchyBelow 0\n -showTicks 1\n -selectionWindow 0 0 0 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"timeEditorPanel\" (localizedPanelLabel(\"Time Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Time Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"clipEditorPanel\" (localizedPanelLabel(\"Trax Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n"
+ " -initialized 0\n -manageSequencer 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"sequenceEditorPanel\" (localizedPanelLabel(\"Camera Sequencer\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n clipEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperGraphPanel\" (localizedPanelLabel(\"Hypergraph Hierarchy\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels $panelName;\n"
+ "\n\t\t\t$editorName = ($panelName+\"HyperGraphEd\");\n hyperGraph -e \n -graphLayoutStyle \"hierarchicalLayout\" \n -orientation \"horiz\" \n -mergeConnections 0\n -zoom 1\n -animateTransition 0\n -showRelationships 1\n -showShapes 0\n -showDeformers 0\n -showExpressions 0\n -showConstraints 0\n -showConnectionFromSelected 0\n -showConnectionToSelected 0\n -showConstraintLabels 0\n -showUnderworld 0\n -showInvisible 0\n -transitionFrames 1\n -opaqueContainers 0\n -freeform 0\n -imagePosition 0 0 \n -imageScale 1\n -imageEnabled 0\n -graphType \"DAG\" \n -heatMapDisplay 0\n -updateSelection 1\n -updateNodeAdded 1\n -useDrawOverrideColor 0\n -limitGraphTraversal -1\n"
+ " -range 0 0 \n -iconSize \"smallIcons\" \n -showCachedConnections 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperShadePanel\" (localizedPanelLabel(\"Hypershade\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"visorPanel\" (localizedPanelLabel(\"Visor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"nodeEditorPanel\" (localizedPanelLabel(\"Node Editor\")) `;\n\tif ($nodeEditorPanelVisible || $nodeEditorWorkspaceControlOpen) {\n"
+ "\t\tif (\"\" == $panelName) {\n\t\t\tif ($useSceneConfig) {\n\t\t\t\t$panelName = `scriptedPanel -unParent -type \"nodeEditorPanel\" -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -connectedGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n"
+ " -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -showUnitConversions 0\n -editorMode \"default\" \n -hasWatchpoint 0\n $editorName;\n\t\t\t}\n\t\t} else {\n\t\t\t$label = `panel -q -label $panelName`;\n\t\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n"
+ " -additiveGraphingMode 0\n -connectedGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -showUnitConversions 0\n -editorMode \"default\" \n -hasWatchpoint 0\n $editorName;\n\t\t\tif (!$useSceneConfig) {\n\t\t\t\tpanel -e -l $label $panelName;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"createNodePanel\" (localizedPanelLabel(\"Create Node\")) `;\n\tif (\"\" != $panelName) {\n"
+ "\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"polyTexturePlacementPanel\" (localizedPanelLabel(\"UV Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"renderWindowPanel\" (localizedPanelLabel(\"Render View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"shapePanel\" (localizedPanelLabel(\"Shape Editor\")) `;\n\tif (\"\" != $panelName) {\n"
+ "\t\t$label = `panel -q -label $panelName`;\n\t\tshapePanel -edit -l (localizedPanelLabel(\"Shape Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"posePanel\" (localizedPanelLabel(\"Pose Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tposePanel -edit -l (localizedPanelLabel(\"Pose Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynRelEdPanel\" (localizedPanelLabel(\"Dynamic Relationships\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"relationshipPanel\" (localizedPanelLabel(\"Relationship Editor\")) `;\n"
+ "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"referenceEditorPanel\" (localizedPanelLabel(\"Reference Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynPaintScriptedPanelType\" (localizedPanelLabel(\"Paint Effects\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"scriptEditorPanel\" (localizedPanelLabel(\"Script Editor\")) `;\n"
+ "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"profilerPanel\" (localizedPanelLabel(\"Profiler Tool\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"contentBrowserPanel\" (localizedPanelLabel(\"Content Browser\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Content Browser\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"Stereo\" (localizedPanelLabel(\"Stereo\")) `;\n"
+ "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Stereo\")) -mbv $menusOkayInPanels $panelName;\n{ string $editorName = ($panelName+\"Editor\");\n stereoCameraView -e \n -camera \"|persp\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n"
+ " -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 4 4 \n -bumpResolution 4 4 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 0\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n"
+ " -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n"
+ " -clipGhosts 1\n -greasePencils 0\n -shadows 0\n -captureSequenceNumber -1\n -width 0\n -height 0\n -sceneRenderFilter 0\n -displayMode \"centerEye\" \n -viewColor 0 0 0 1 \n -useCustomBackground 1\n $editorName;\n stereoCameraView -e -viewSelected 0 $editorName;\n stereoCameraView -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName; };\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\tif ($useSceneConfig) {\n string $configName = `getPanel -cwl (localizedPanelLabel(\"Current Layout\"))`;\n if (\"\" != $configName) {\n\t\t\tpanelConfiguration -edit -label (localizedPanelLabel(\"Current Layout\")) \n\t\t\t\t-userCreated false\n\t\t\t\t-defaultImage \"vacantCell.xP:/\"\n\t\t\t\t-image \"\"\n\t\t\t\t-sc false\n\t\t\t\t-configString \"global string $gMainPane; paneLayout -e -cn \\\"single\\\" -ps 1 100 100 $gMainPane;\"\n"
+ "\t\t\t\t-removeAllPanels\n\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Persp View\")) \n\t\t\t\t\t\"modelPanel\"\n"
+ "\t\t\t\t\t\"$panelName = `modelPanel -unParent -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\nmodelEditor -e \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -greasePencils 0\\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1943\\n -height 1874\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n"
+ "\t\t\t\t\t\"modelPanel -edit -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\nmodelEditor -e \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -greasePencils 0\\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1943\\n -height 1874\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n"
+ "\t\t\t\t$configName;\n\n setNamedPanelLayout (localizedPanelLabel(\"Current Layout\"));\n }\n\n panelHistory -e -clear mainPanelHistory;\n sceneUIReplacement -clear;\n\t}\n\n\ngrid -spacing 5 -size 12 -divisions 5 -displayAxes yes -displayGridLines yes -displayDivisionLines yes -displayPerspectiveLabels no -displayOrthographicLabels no -displayAxesBold yes -perspectiveLabelPosition axis -orthographicLabelPosition edge;\nviewManip -drawCompass 0 -compassAngle 0 -frontParameters \"\" -homeParameters \"\" -selectionLockParameters \"\";\n}\n");
setAttr ".st" 3;
createNode script -n "sceneConfigurationScriptNode";
rename -uid "DEDDA65A-479E-A861-C81F-88815F58CB1A";
setAttr ".b" -type "string" "playbackOptions -min 0 -max 100 -ast 0 -aet 100 ";
setAttr ".st" 6;
createNode nodeGraphEditorInfo -n "hyperShadePrimaryNodeEditorSavedTabsInfo";
rename -uid "FF9F8F9D-4DAF-D490-23E1-3CAAF5D6974E";
setAttr ".tgi[0].tn" -type "string" "Untitled_1";
setAttr ".tgi[0].vl" -type "double2" -57.142854872204104 -15.476189861221945 ;
setAttr ".tgi[0].vh" -type "double2" 57.142854872204104 15.476189861221945 ;
select -ne :time1;
setAttr -av -k on ".cch";
setAttr -k on ".fzn";
setAttr -av -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr ".o" 1;
setAttr -av ".unw" 1;
setAttr -av -k on ".etw";
setAttr -av -k on ".tps";
setAttr -av -k on ".tms";
select -ne :hardwareRenderingGlobals;
setAttr -av -k on ".ihi";
setAttr ".otfna" -type "stringArray" 22 "NURBS Curves" "NURBS Surfaces" "Polygons" "Subdiv Surface" "Particles" "Particle Instance" "Fluids" "Strokes" "Image Planes" "UI" "Lights" "Cameras" "Locators" "Joints" "IK Handles" "Deformers" "Motion Trails" "Components" "Hair Systems" "Follicles" "Misc. UI" "Ornaments" ;
setAttr ".otfva" -type "Int32Array" 22 0 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 ;
setAttr -k on ".hwi" yes;
setAttr -av ".ta";
setAttr -av ".tq";
setAttr -av ".etmr";
setAttr -av ".tmr";
setAttr -av ".aoon";
setAttr -av ".aoam";
setAttr -av ".aora";
setAttr -k on ".hff";
setAttr -av -k on ".hfd";
setAttr -av -k on ".hfs";
setAttr -av -k on ".hfe";
setAttr -av ".hfc";
setAttr -av -k on ".hfcr";
setAttr -av -k on ".hfcg";
setAttr -av -k on ".hfcb";
setAttr -av -k on ".hfa";
setAttr -av ".mbe";
setAttr -av -k on ".mbsof";
setAttr -k on ".blen";
setAttr -k on ".blat";
setAttr -av ".msaa" yes;
setAttr ".aasc" 4;
setAttr ".laa" yes;
setAttr ".fprt" yes;
select -ne :renderPartition;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 3 ".st";
setAttr -cb on ".an";
setAttr -cb on ".pt";
select -ne :renderGlobalsList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
select -ne :defaultShaderList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 6 ".s";
select -ne :postProcessList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 2 ".p";
select -ne :defaultRenderingList1;
setAttr -k on ".ihi";
select -ne :standardSurface1;
setAttr ".b" 0.80000001192092896;
setAttr ".bc" -type "float3" 1 1 1 ;
setAttr ".s" 0.20000000298023224;
select -ne :initialShadingGroup;
setAttr -av -k on ".cch";
setAttr -k on ".fzn";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".bbx";
setAttr -k on ".vwm";
setAttr -k on ".tpv";
setAttr -k on ".uit";
setAttr -k on ".mwc";
setAttr -cb on ".an";
setAttr -cb on ".il";
setAttr -cb on ".vo";
setAttr -cb on ".eo";
setAttr -cb on ".fo";
setAttr -cb on ".epo";
setAttr ".ro" yes;
setAttr -cb on ".ai_override";
setAttr -cb on ".ai_surface_shaderr";
setAttr -cb on ".ai_surface_shaderg";
setAttr -cb on ".ai_surface_shaderb";
setAttr -cb on ".ai_volume_shaderr";
setAttr -cb on ".ai_volume_shaderg";
setAttr -cb on ".ai_volume_shaderb";
select -ne :initialParticleSE;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".mwc";
setAttr -cb on ".an";
setAttr -cb on ".il";
setAttr -cb on ".vo";
setAttr -cb on ".eo";
setAttr -cb on ".fo";
setAttr -cb on ".epo";
setAttr ".ro" yes;
setAttr -cb on ".ai_override";
setAttr -cb on ".ai_surface_shaderr";
setAttr -cb on ".ai_surface_shaderg";
setAttr -cb on ".ai_surface_shaderb";
setAttr -cb on ".ai_volume_shaderr";
setAttr -cb on ".ai_volume_shaderg";
setAttr -cb on ".ai_volume_shaderb";
select -ne :defaultRenderGlobals;
addAttr -ci true -h true -sn "dss" -ln "defaultSurfaceShader" -dt "string";
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -av -k on ".macc";
setAttr -av -k on ".macd";
setAttr -av -k on ".macq";
setAttr -av -k on ".mcfr";
setAttr -cb on ".ifg";
setAttr -av -k on ".clip";
setAttr -av -k on ".edm";
setAttr -av -k on ".edl";
setAttr -av ".ren" -type "string" "arnold";
setAttr -av -k on ".esr";
setAttr -av -k on ".ors";
setAttr -cb on ".sdf";
setAttr -av -k on ".outf" 51;
setAttr -av -cb on ".imfkey" -type "string" "exr";
setAttr -av -k on ".gama";
setAttr -k on ".exrc";
setAttr -k on ".expt";
setAttr -av -k on ".an";
setAttr -cb on ".ar";
setAttr -av -k on ".fs";
setAttr -av -k on ".ef";
setAttr -av -k on ".bfs";
setAttr -av -cb on ".me";
setAttr -cb on ".se";
setAttr -av -k on ".be";
setAttr -av -k on ".ep";
setAttr -av -k on ".fec";
setAttr -av -k on ".ofc";
setAttr -cb on ".ofe";
setAttr -cb on ".efe";
setAttr -cb on ".oft";
setAttr -cb on ".umfn";
setAttr -cb on ".ufe";
setAttr -av -k on ".pff";
setAttr -av -cb on ".peie";
setAttr -av -cb on ".ifp";
setAttr -k on ".rv";
setAttr -av -k on ".comp";
setAttr -av -k on ".cth";
setAttr -av -k on ".soll";
setAttr -cb on ".sosl";
setAttr -av -k on ".rd";
setAttr -av -k on ".lp";
setAttr -av -k on ".sp";
setAttr -av -k on ".shs";
setAttr -av -k on ".lpr";
setAttr -cb on ".gv";
setAttr -cb on ".sv";
setAttr -av -k on ".mm";
setAttr -av -k on ".npu";
setAttr -av -k on ".itf";
setAttr -av -k on ".shp";
setAttr -cb on ".isp";
setAttr -av -k on ".uf";
setAttr -av -k on ".oi";
setAttr -av -k on ".rut";
setAttr -av -k on ".mot";
setAttr -av -k on ".mb";
setAttr -av -k on ".mbf";
setAttr -av -k on ".mbso";
setAttr -av -k on ".mbsc";
setAttr -av -k on ".afp";
setAttr -av -k on ".pfb";
setAttr -av -k on ".pram";
setAttr -av -k on ".poam";
setAttr -av -k on ".prlm";
setAttr -av -k on ".polm";
setAttr -av -cb on ".prm";
setAttr -av -cb on ".pom";
setAttr -cb on ".pfrm";
setAttr -cb on ".pfom";
setAttr -av -k on ".bll";
setAttr -av -k on ".bls";
setAttr -av -k on ".smv";
setAttr -av -k on ".ubc";
setAttr -av -k on ".mbc";
setAttr -cb on ".mbt";
setAttr -av -k on ".udbx";
setAttr -av -k on ".smc";
setAttr -av -k on ".kmv";
setAttr -cb on ".isl";
setAttr -cb on ".ism";
setAttr -cb on ".imb";
setAttr -av -k on ".rlen";
setAttr -av -k on ".frts";
setAttr -av -k on ".tlwd";
setAttr -av -k on ".tlht";
setAttr -av -k on ".jfc";
setAttr -cb on ".rsb";
setAttr -av -k on ".ope";
setAttr -av -k on ".oppf";
setAttr -av -k on ".rcp";
setAttr -av -k on ".icp";
setAttr -av -k on ".ocp";
setAttr -cb on ".hbl";
setAttr ".dss" -type "string" "lambert1";
select -ne :defaultResolution;
setAttr -av -k on ".cch";
setAttr -av -k on ".ihi";
setAttr -av -k on ".nds";
setAttr -k on ".bnm";
setAttr -av -k on ".w" 268;
setAttr -av -k on ".h" 268;
setAttr -av ".pa" 1;
setAttr -av -k on ".al";
setAttr -av -k on ".dar" 1;
setAttr -av -k on ".ldar";
setAttr -av -k on ".dpi";
setAttr -av -k on ".off";
setAttr -av -k on ".fld";
setAttr -av -k on ".zsl";
setAttr -av -k on ".isu";
setAttr -av -k on ".pdu";
select -ne :defaultColorMgtGlobals;
setAttr ".cfe" yes;
setAttr ".cfp" -type "string" "<MAYA_RESOURCES>/OCIO-configs/Maya-legacy/config.ocio";
setAttr ".vtn" -type "string" "sRGB gamma (legacy)";
setAttr ".vn" -type "string" "sRGB gamma";
setAttr ".dn" -type "string" "legacy";
setAttr ".wsn" -type "string" "scene-linear Rec 709/sRGB";
setAttr ".ote" yes;
setAttr ".ovt" no;
setAttr ".povt" no;
setAttr ".otn" -type "string" "sRGB gamma (legacy)";
setAttr ".potn" -type "string" "sRGB gamma (legacy)";
select -ne :hardwareRenderGlobals;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -av ".ctrs" 256;
setAttr -av ".btrs" 512;
setAttr -av -k off -cb on ".fbfm";
setAttr -av -k off -cb on ".ehql";
setAttr -av -k off -cb on ".eams";
setAttr -av -k off -cb on ".eeaa";
setAttr -av -k off -cb on ".engm";
setAttr -av -k off -cb on ".mes";
setAttr -av -k off -cb on ".emb";
setAttr -av -k off -cb on ".mbbf";
setAttr -av -k off -cb on ".mbs";
setAttr -av -k off -cb on ".trm";
setAttr -av -k off -cb on ".tshc";
setAttr -av -k off -cb on ".enpt";
setAttr -av -k off -cb on ".clmt";
setAttr -av -k off -cb on ".tcov";
setAttr -av -k off -cb on ".lith";
setAttr -av -k off -cb on ".sobc";
setAttr -av -k off -cb on ".cuth";
setAttr -av -k off -cb on ".hgcd";
setAttr -av -k off -cb on ".hgci";
setAttr -av -k off -cb on ".mgcs";
setAttr -av -k off -cb on ".twa";
setAttr -av -k off -cb on ".twz";
setAttr -cb on ".hwcc";
setAttr -cb on ".hwdp";
setAttr -cb on ".hwql";
setAttr -k on ".hwfr";
setAttr -k on ".soll";
setAttr -k on ".sosl";
setAttr -k on ".bswa";
setAttr -k on ".shml";
setAttr -k on ".hwel";
connectAttr "groupId2.id" "Plug_MeshShape.iog.og[1].gid";
connectAttr "Plug_EdgeBorder_set.mwc" "Plug_MeshShape.iog.og[1].gco";
connectAttr "groupId4.id" "Plug_MeshShape.iog.og[3].gid";
connectAttr "Plug_AllFaces_set.mwc" "Plug_MeshShape.iog.og[3].gco";
connectAttr "groupId5.id" "Plug_MeshShape.iog.og[4].gid";
connectAttr "Plug_Selection_set.mwc" "Plug_MeshShape.iog.og[4].gco";
connectAttr "groupId6.id" "Plug_MeshShape.iog.og[5].gid";
connectAttr "Plug_ExtraSecure_set.mwc" "Plug_MeshShape.iog.og[5].gco";
connectAttr "groupId2.msg" "Plug_EdgeBorder_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[1]" "Plug_EdgeBorder_set.dsm" -na;
connectAttr "groupId4.msg" "Plug_AllFaces_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[3]" "Plug_AllFaces_set.dsm" -na;
connectAttr "groupId5.msg" "Plug_Selection_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[4]" "Plug_Selection_set.dsm" -na;
connectAttr "groupId6.msg" "Plug_ExtraSecure_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[5]" "Plug_ExtraSecure_set.dsm" -na;
connectAttr "PlugIt_Plug_SG.msg" "materialInfo2.sg";
connectAttr "PlugIt_Plug_Shd.msg" "materialInfo2.m";
connectAttr "PlugIt_Plug_Shd.oc" "PlugIt_Plug_SG.ss";
connectAttr "Plug_MeshShape.iog" "PlugIt_Plug_SG.dsm" -na;
relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" "PlugIt_Plug_SG.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" "PlugIt_Plug_SG.message" ":defaultLightSet.message";
connectAttr "layerManager.dli[0]" "defaultLayer.id";
connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid";
connectAttr ":defaultArnoldDisplayDriver.msg" ":defaultArnoldRenderOptions.drivers"
-na;
connectAttr ":defaultArnoldFilter.msg" ":defaultArnoldRenderOptions.filt";
connectAttr ":defaultArnoldDriver.msg" ":defaultArnoldRenderOptions.drvr";
connectAttr "PlugIt_Plug_SG.pa" ":renderPartition.st" -na;
connectAttr "PlugIt_Plug_Shd.msg" ":defaultShaderList1.s" -na;
connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na;
// End of Plug_Circle_01.ma

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -0,0 +1,770 @@
//Maya ASCII 2023 scene
//Name: Plug_Circle_10.ma
//Last modified: Sat, Feb 04, 2023 03:45:40 PM
//Codeset: 1252
requires maya "2023";
requires "stereoCamera" "10.0";
requires "mtoa" "5.2.2.1";
currentUnit -l centimeter -a degree -t film;
fileInfo "application" "maya";
fileInfo "product" "Maya 2023";
fileInfo "version" "2023";
fileInfo "cutIdentifier" "202202161415-df43006fd3";
fileInfo "osv" "Windows 10 Home v2009 (Build: 19045)";
fileInfo "UUID" "3EE63C59-4C52-79EF-C2D2-0E897456D850";
createNode transform -n "Plug_Mesh";
rename -uid "C1381A8C-4750-575E-E063-22B695CE810A";
createNode mesh -n "Plug_MeshShape" -p "Plug_Mesh";
rename -uid "8CAAFF86-4899-C1E5-F557-C686568FC835";
setAttr -k off ".v";
setAttr -s 8 ".iog[0].og";
setAttr ".iog[0].og[0].gcl" -type "componentList" 3 "e[6]" "e[8]" "e[10:11]";
setAttr ".iog[0].og[3].gcl" -type "componentList" 1 "map[0:1]";
setAttr ".iog[0].og[4].gcl" -type "componentList" 1 "f[0:93]";
setAttr ".iog[0].og[5].gcl" -type "componentList" 1 "f[4:93]";
setAttr ".iog[0].og[6].gcl" -type "componentList" 1 "e[0:3]";
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".pv" -type "double2" 0.5 0.5 ;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr -s 110 ".uvst[0].uvsp[0:109]" -type "float2" 0.5 0 0.5 0 1 1 0
1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0.037089907 0.0084742326 0.016948555
0.0083871 0.016700802 0 0.036686543 0.01854495 0 0.018544948 0 0 0.080582775 0 0.96291012
0 0.93973786 0.019893698 0.014255499 0.47760975 1.7556114e-05 0.48145503 0 0.50000006
0 0.50000006 0 0.48165673 0 0.51854497 0 0.51834327 0 0.52239037 7.6289011e-06 0.98010647
0.0061949193 0.98145503 0 0.99152553 0.016948801 0.99167103 0.016658066 0.98165673
0 1 0.037089899 1 0.036686543 1 0.06026122 1 0.91941911 1 0.96291012 0.99152559 0.98305112
0.99167097 0.98334199 1 0.96331346 0.98145509 1 0.98165673 1 0.98010647 0.98574489
0.52239007 0.99998242 0.51854497 1 0.018544948 1 0.0084743993 0.98305106 0.0083288625
0.98334229 0.018343262 1 0 0.96331346 0.019893605 0.99380481 0.48145503 1 0.47760972
0.99999237 0.50000006 1 0.49996325 1 0.51834327 1 0.48145506 1 0.012442735 0.047469892
0.012440103 0.96497893 0.024760479 0.049521219 0.024760544 0.9752394 0.02389624 0.024861597
0.48867202 0.012515158 0.5 0.024760485 0.51132935 0.012515085 0.9762314 0.024803732
0.9752394 0.049521234 0.51132989 0.98755687 0.97623134 0.9875595 0.50000006 0.9752394
0.9752394 0.9752394 0.4885743 0.98752928 0.023767956 0.98755956 0.98756033 0.047460936
0.98756033 0.96497875 0.021306001 0.028713141 0.47367141 0 0.52632856 0 0.97869414
0.012478689 0.9983604 0.026253369 0.5 0 0.0016396416 0.055417601 1 0.083943486 1
0.8751753 0 0.91605657 0 0.12482484 0.9786942 0.97128654 0.52632856 1 0.47367141
1 0.021305859 0.98752153 0 0 0.5 0 1 0 1 1 0.9983604 0.94458246 0 1 0.0016396306
0.97374666 0.5 1 0.5 1 0 0 0.5 0 0.5 1 0 1 1 0 1 1;
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr -s 104 ".vt[0:103]" -2 -1.6391277e-07 2 2 -1.6391277e-07 2 -2 -1.6391277e-07 -2
2 -1.6391277e-07 -2 -2.19846773 1.2068358e-07 2.19846773 -2.19846773 1.4873604e-07 -2.19846773
2.19846773 1.4894431e-07 2.19846773 2.19846773 1.620956e-07 -2.19846773 -1.40007389 -0.1091873 0.80833304
-1.41412771 -0.1091873 0.75588316 -1.43463898 -0.048141718 0.75588316 -1.37193358 -0.048141718 0.86449212
-1.361678 -0.1091873 0.84672898 5.8308309e-08 -0.1091873 1.61666596 -0.052449796 -0.1091873 1.60261202
-0.062705368 -0.048141718 1.62037504 0.06270548 -0.048141718 1.62037504 0.052449908 -0.1091873 1.60261202
1.40007389 -0.1091873 0.80833286 1.361678 -0.1091873 0.8467288 1.37193358 -0.048141718 0.864492
1.43463898 -0.048141718 0.75588298 1.41412771 -0.1091873 0.75588298 1.40007365 -0.1091873 -0.80833316
1.41412771 -0.1091873 -0.75588334 1.43463886 -0.048141718 -0.75588334 1.37193346 -0.048141718 -0.86449224
1.36167777 -0.1091873 -0.8467291 -1.40007365 -0.1091873 -0.80833304 -1.36167777 -0.1091873 -0.84672898
-1.37193346 -0.048141718 -0.86449218 -1.43463886 -0.048141718 -0.75588316 -1.41412771 -0.1091873 -0.75588316
8.42563e-08 -0.1091873 -1.61666608 0.052449938 -0.1091873 -1.60261214 0.062705509 -0.048141718 -1.62037528
-0.062705338 -0.048141718 -1.62037528 -0.05244977 -0.1091873 -1.60261214 -1.39205551 -1.042066932 0.75873697
-1.41412771 -0.98122591 0.75654179 -1.40007448 -0.98074895 0.80851007 -1.361678 -0.98028708 0.84672898
-1.35280406 -1.041756153 0.82640481 -1.34409845 -1.066618681 0.77601552 0.038942222 -1.042066932 1.58492374
5.131416e-08 -1.066618681 1.55203104 -0.03894211 -1.042066932 1.58492374 -0.051879417 -0.98122591 1.60294127
5.0297277e-08 -0.98123455 1.61684239 0.051879529 -0.98122591 1.60294127 0.038942255 -1.042066932 -1.58492386
0.051879562 -0.98122591 -1.60294151 -0.00015293006 -0.98074895 -1.61675525 -0.05244977 -0.98028708 -1.60261214
-0.0392855 -1.041756153 -1.58476508 8.4823014e-08 -1.066618681 -1.55203116 -1.39205539 -1.042066932 -0.75873697
-1.34409833 -1.066618681 -0.77601558 -1.35311317 -1.042066932 -0.8261869 -1.3622483 -0.98122591 -0.84639966
-1.40022659 -0.98123455 -0.80842131 -1.41412771 -0.98122591 -0.75654179 1.39205551 -1.042066932 0.75873679
1.34409845 -1.066618681 0.7760154 1.35311329 -1.042066932 0.82618666 1.36224842 -0.98122591 0.84639955
1.40022671 -0.98122591 0.80842108 1.41412771 -0.98122591 0.75654167 1.35311317 -1.042066932 -0.82618695
1.34409833 -1.066618681 -0.77601564 1.39205539 -1.042066932 -0.75873709 1.41412771 -0.98122591 -0.75654191
1.40022659 -0.98122591 -0.80842143 1.3622483 -0.98122591 -0.84639984 -1.4841572 -0.022855639 0.75588316
-1.46072102 -0.022855639 0.84334767 -1.39669263 -0.022855639 0.90737617 -0.087464496 -0.022855639 1.66325915
5.8662092e-08 -0.022855639 1.68669522 0.087464601 -0.022855639 1.66325915 1.39669263 -0.022855639 0.90737605
1.46072102 -0.022855639 0.84334749 1.4841572 -0.022855639 0.75588298 1.48415697 -0.022855639 -0.75588334
1.4607209 -0.022855639 -0.84334785 1.39669251 -0.022855639 -0.90737629 -1.39669251 -0.022855639 -0.90737617
-1.4607209 -0.022855639 -0.84334767 -1.48415697 -0.022855639 -0.75588316 0.087464638 -0.022855639 -1.66325939
8.4349125e-08 -0.022855639 -1.68669534 -0.087464467 -0.022855639 -1.66325939 -1.41783714 -0.048141718 0.81858861
5.869013e-08 -0.048141718 1.63717711 1.41783714 -0.048141718 0.81858838 1.41783702 -0.048141718 -0.81858873
-1.41783702 -0.048141718 -0.81858861 8.422677e-08 -0.048141718 -1.63717723 -1.38811886 -1.030775905 0.80159235
1.7525021e-07 -1.030998945 1.60300004 -0.00013982103 -1.030775905 -1.60294235 -1.38823891 -1.030998945 -0.80150008
1.38823903 -1.030995369 0.80150002 1.38823903 -1.030995369 -0.80150038;
setAttr -s 197 ".ed";
setAttr ".ed[0:165]" 0 2 0 0 1 0 1 3 0 2 3 0 0 4 1 2 5 1 4 5 0 1 6 1 4 6 0
3 7 1 6 7 0 5 7 0 9 8 1 8 40 1 40 39 1 39 9 1 8 12 1 12 41 1 41 40 1 10 31 1 10 9 1
9 32 1 32 31 1 12 11 1 11 15 1 15 14 1 14 12 1 14 13 1 13 48 1 48 47 1 47 14 1 13 17 1
17 49 1 49 48 1 17 16 1 16 20 1 20 19 1 19 17 1 19 18 1 18 66 1 66 65 1 65 19 1 18 22 1
22 67 1 67 66 1 22 21 1 21 25 1 25 24 1 24 22 1 24 23 1 23 72 1 72 71 1 71 24 1 23 27 1
27 73 1 73 72 1 27 26 1 26 35 1 35 34 1 34 27 1 29 28 1 28 60 1 60 59 1 59 29 1 28 32 1
32 61 1 61 60 1 30 36 1 30 29 1 29 37 1 37 36 1 34 33 1 33 52 1 52 51 1 51 34 1 33 37 1
37 53 1 53 52 1 39 38 1 38 56 1 56 61 1 61 39 1 38 43 1 43 57 1 57 56 1 43 42 1 42 46 1
46 45 1 45 43 1 42 41 1 41 47 1 47 46 1 45 44 1 44 64 1 64 63 1 63 45 1 44 49 1 49 65 1
65 64 1 51 50 1 50 68 1 68 73 1 73 51 1 50 55 1 55 69 1 69 68 1 55 54 1 54 58 1 58 57 1
57 55 1 54 53 1 53 59 1 59 58 1 63 62 1 62 70 1 70 69 1 69 63 1 62 67 1 67 71 1 71 70 1
45 55 1 74 10 1 76 77 1 11 76 1 76 75 1 75 74 1 77 15 1 79 80 1 16 79 1 79 78 1 78 77 1
80 20 1 82 83 1 21 82 1 82 81 1 81 80 1 83 25 1 85 89 1 26 85 1 85 84 1 84 83 1 86 30 1
88 74 1 31 88 1 88 87 1 87 86 1 89 35 1 91 86 1 36 91 1 91 90 1 90 89 1 8 92 1 92 11 1
10 92 1 75 92 1 13 93 1 93 16 1 15 93 1 78 93 1 18 94 1 94 21 1 20 94 1 81 94 1 23 95 1
95 26 1 25 95 1;
setAttr ".ed[166:196]" 84 95 1 28 96 1 96 31 1 30 96 1 87 96 1 33 97 1 97 36 1
35 97 1 90 97 1 38 98 1 98 42 1 40 98 1 44 99 1 99 48 1 46 99 1 50 100 1 100 54 1
52 100 1 56 101 1 101 60 1 58 101 1 62 102 1 102 66 1 64 102 1 68 103 1 103 72 1
70 103 1 0 75 0 2 87 0 1 81 0 3 84 0;
setAttr -s 94 -ch 390 ".fc[0:93]" -type "polyFaces"
f 4 0 5 -7 -5
mu 0 4 0 1 2 3
f 4 -2 4 8 -8
mu 0 4 4 0 5 6
f 4 -3 7 10 -10
mu 0 4 7 8 9 10
f 4 3 9 -12 -6
mu 0 4 1 11 12 13
f 4 12 13 14 15
mu 0 4 14 15 16 17
f 4 16 17 18 -14
mu 0 4 15 18 19 16
f 4 20 21 22 -20
mu 0 4 20 14 21 22
f 4 23 24 25 26
mu 0 4 18 23 24 25
f 4 27 28 29 30
mu 0 4 25 26 27 28
f 4 31 32 33 -29
mu 0 4 26 29 30 27
f 4 34 35 36 37
mu 0 4 29 31 32 33
f 4 38 39 40 41
mu 0 4 33 34 35 36
f 4 42 43 44 -40
mu 0 4 34 37 38 35
f 4 45 46 47 48
mu 0 4 37 39 40 41
f 4 49 50 51 52
mu 0 4 41 42 43 44
f 4 53 54 55 -51
mu 0 4 42 45 46 43
f 4 56 57 58 59
mu 0 4 45 47 48 49
f 4 60 61 62 63
mu 0 4 50 51 52 53
f 4 64 65 66 -62
mu 0 4 51 21 54 52
f 4 68 69 70 -68
mu 0 4 55 50 56 57
f 4 71 72 73 74
mu 0 4 49 58 59 60
f 4 75 76 77 -73
mu 0 4 58 56 61 59
f 4 78 79 80 81
mu 0 4 17 62 63 54
f 4 82 83 84 -80
mu 0 4 62 64 65 63
f 4 85 86 87 88
mu 0 4 64 66 67 68
f 4 89 90 91 -87
mu 0 4 66 19 28 67
f 4 92 93 94 95
mu 0 4 68 69 70 71
f 4 96 97 98 -94
mu 0 4 69 30 36 70
f 4 99 100 101 102
mu 0 4 60 72 73 46
f 4 103 104 105 -101
mu 0 4 72 74 75 73
f 4 106 107 108 109
mu 0 4 74 76 77 65
f 4 110 111 112 -108
mu 0 4 76 61 53 77
f 4 113 114 115 116
mu 0 4 71 78 79 75
f 4 117 118 119 -115
mu 0 4 78 38 44 79
f 4 -89 120 -110 -84
mu 0 4 64 68 74 65
f 4 -121 -96 -117 -105
mu 0 4 74 68 71 75
f 4 -27 -31 -91 -18
mu 0 4 18 25 28 19
f 4 -70 -64 -112 -77
mu 0 4 56 50 53 61
f 4 -22 -16 -82 -66
mu 0 4 21 14 17 54
f 4 -38 -42 -98 -33
mu 0 4 29 33 36 30
f 4 -49 -53 -119 -44
mu 0 4 37 41 44 38
f 4 -60 -75 -103 -55
mu 0 4 45 49 60 46
f 4 123 122 126 -25
mu 0 4 23 80 81 24
f 4 128 127 131 -36
mu 0 4 31 82 83 32
f 9 135 -128 129 130 -123 124 -194 1 195
mu 0 9 84 83 82 85 81 80 86 0 4
f 4 133 132 136 -47
mu 0 4 39 87 88 40
f 4 19 143 142 121
mu 0 4 20 22 89 90
f 4 138 137 146 -58
mu 0 4 47 91 92 48
f 4 67 148 147 141
mu 0 4 55 57 93 94
f 4 -24 -17 151 152
mu 0 4 23 18 15 95
f 4 -13 -21 153 -152
mu 0 4 15 14 20 95
f 4 -122 -126 154 -154
mu 0 4 20 90 86 95
f 4 -125 -124 -153 -155
mu 0 4 86 80 23 95
f 4 -35 -32 155 156
mu 0 4 31 29 26 96
f 4 -28 -26 157 -156
mu 0 4 26 25 24 96
f 4 -127 -131 158 -158
mu 0 4 24 81 85 96
f 4 -130 -129 -157 -159
mu 0 4 85 82 31 96
f 4 -46 -43 159 160
mu 0 4 39 37 34 97
f 4 -39 -37 161 -160
mu 0 4 34 33 32 97
f 4 -132 -136 162 -162
mu 0 4 32 83 84 97
f 4 -135 -134 -161 -163
mu 0 4 84 87 39 97
f 4 -57 -54 163 164
mu 0 4 47 45 42 98
f 4 -50 -48 165 -164
mu 0 4 42 41 40 98
f 4 -137 -141 166 -166
mu 0 4 40 88 99 98
f 4 -140 -139 -165 -167
mu 0 4 99 91 47 98
f 4 -23 -65 167 168
mu 0 4 22 21 51 100
f 4 -61 -69 169 -168
mu 0 4 51 50 55 100
f 4 -142 -146 170 -170
mu 0 4 55 94 101 100
f 4 -145 -144 -169 -171
mu 0 4 101 89 22 100
f 4 -71 -76 171 172
mu 0 4 57 56 58 102
f 4 -72 -59 173 -172
mu 0 4 58 49 48 102
f 4 -147 -151 174 -174
mu 0 4 48 92 103 102
f 4 -150 -149 -173 -175
mu 0 4 103 93 57 102
f 4 -86 -83 175 176
mu 0 4 66 64 62 104
f 4 -79 -15 177 -176
mu 0 4 62 17 16 104
f 4 -19 -90 -177 -178
mu 0 4 16 19 66 104
f 4 -34 -97 178 179
mu 0 4 27 30 69 105
f 4 -93 -88 180 -179
mu 0 4 69 68 67 105
f 4 -92 -30 -180 -181
mu 0 4 67 28 27 105
f 4 -107 -104 181 182
mu 0 4 76 74 72 106
f 4 -100 -74 183 -182
mu 0 4 72 60 59 106
f 4 -78 -111 -183 -184
mu 0 4 59 61 76 106
f 4 -67 -81 184 185
mu 0 4 52 54 63 107
f 4 -85 -109 186 -185
mu 0 4 63 65 77 107
f 4 -113 -63 -186 -187
mu 0 4 77 53 52 107
f 4 -45 -118 187 188
mu 0 4 35 38 78 108
f 4 -114 -95 189 -188
mu 0 4 78 71 70 108
f 4 -99 -41 -189 -190
mu 0 4 70 36 35 108
f 4 -56 -102 190 191
mu 0 4 43 46 73 109
f 4 -106 -116 192 -191
mu 0 4 73 75 79 109
f 4 -120 -52 -192 -193
mu 0 4 79 44 43 109
f 6 140 -133 134 -196 2 196
mu 0 6 99 88 87 84 8 7
f 6 -195 -1 193 125 -143 144
mu 0 6 101 1 0 86 90 89
f 9 -197 -4 194 145 -148 149 150 -138 139
mu 0 9 99 11 1 101 94 93 103 92 91;
setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ;
setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ;
setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 2
0 0
1 0 ;
setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ;
setAttr ".db" yes;
createNode transform -n "Plug_controler" -p "Plug_Mesh";
rename -uid "28246CD5-44EB-01E5-45A4-039D73095DDF";
setAttr ".v" no;
setAttr ".rp" -type "double3" -2.4424906541753444e-15 0 -3.9968028886505635e-15 ;
setAttr ".sp" -type "double3" -2.4424906541753444e-15 0 -3.9968028886505635e-15 ;
createNode nurbsCurve -n "Plug_controlerShape" -p "Plug_controler";
rename -uid "D3B7FC80-425C-B88A-E87F-A5AAE7D57753";
setAttr -k off ".v";
setAttr ".ove" yes;
setAttr ".ovrgbf" yes;
setAttr ".ovrgb" -type "float3" 0 0.53846669 1 ;
setAttr ".cc" -type "nurbsCurve"
3 68 2 no 3
73 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
71
0.20686707830461301 1.1102230246251565e-16 -2.2324513085130748
2.3826125097526738e-16 1.1102230246251565e-16 -2.2420153507431881
-0.20686707830461318 1.1102230246251565e-16 -2.2324513085130873
-0.41196923963640886 1.1102230246251565e-16 -2.2038407788589192
-0.61355662467188965 1.1102230246251565e-16 -2.1564278567318969
-0.80990936091964172 1.1102230246251565e-16 -2.0906170524662855
-0.99935223606602541 1.1102230246251565e-16 -2.0069698406398429
-1.1802689902959673 1.1102230246251565e-16 -1.9061998697706957
-1.3511161056518295 1.1102230246251565e-16 -1.789166873719809
-1.5104359747843905 1.1102230246251565e-16 -1.6568693367448168
-1.6568693367448164 1.1102230246251565e-16 -1.5104359747843905
-1.7891668737198088 5.5511151231257827e-17 -1.3511161056518293
-1.9061998697706948 5.5511151231257827e-17 -1.1802689902959673
-2.006969840639842 5.5511151231257827e-17 -0.99935223606602519
-2.0906170524662842 5.5511151231257827e-17 -0.80990936091964172
-2.1564278567318951 5.5511151231257827e-17 -0.61355662467188909
-2.2038407788589169 0 -0.4119692396364088
-2.232451308513085 0 -0.20686707830461323
-2.2420153507431828 0 -2.1397042986067343e-16
-2.232451308513085 0 0.20686707830461276
-2.203840778858916 0 0.4119692396364083
-2.1564278567318942 -5.5511151231257827e-17 0.61355662467188843
-2.0906170524662833 -5.5511151231257827e-17 0.80990936091964083
-2.0069698406398411 -5.5511151231257827e-17 0.99935223606602408
-1.9061998697706943 -5.5511151231257827e-17 1.1802689902959664
-1.7891668737198072 -5.5511151231257827e-17 1.3511161056518279
-1.6568693367448144 -1.1102230246251565e-16 1.5104359747843894
-1.5104359747843892 -1.1102230246251565e-16 1.6568693367448146
-1.3511161056518277 -1.1102230246251565e-16 1.7891668737198068
-1.1802689902959662 -1.1102230246251565e-16 1.9061998697706932
-0.99935223606602408 -1.1102230246251565e-16 2.0069698406398397
-0.80990936091964083 -1.1102230246251565e-16 2.0906170524662824
-0.61355662467188854 -1.1102230246251565e-16 2.1564278567318929
-0.41196923963640825 -1.1102230246251565e-16 2.2038407788589143
-0.2068670783046129 -1.1102230246251565e-16 2.2324513085130837
-2.8540790132205498e-17 -1.1102230246251565e-16 2.2420153507431801
0.20686707830461282 -1.1102230246251565e-16 2.2324513085130828
0.41196923963640808 -1.1102230246251565e-16 2.2038407788589143
0.6135566246718881 -1.1102230246251565e-16 2.1564278567318929
0.80990936091964039 -1.1102230246251565e-16 2.0906170524662815
0.99935223606602375 -1.1102230246251565e-16 2.0069698406398393
1.1802689902959653 -1.1102230246251565e-16 1.9061998697706926
1.3511161056518268 -1.1102230246251565e-16 1.7891668737198061
1.5104359747843876 -1.1102230246251565e-16 1.6568693367448133
1.6568693367448128 -1.1102230246251565e-16 1.5104359747843881
1.7891668737198057 -5.5511151231257827e-17 1.3511161056518268
1.9061998697706912 -5.5511151231257827e-17 1.1802689902959651
2.0069698406398384 -5.5511151231257827e-17 0.99935223606602386
2.0906170524662802 -5.5511151231257827e-17 0.80990936091964016
2.1564278567318911 -5.5511151231257827e-17 0.61355662467188798
2.2038407788589121 0 0.41196923963640808
2.2324513085130815 0 0.20686707830461298
2.2420153507431779 0 3.5477364116248252e-16
2.2324513085130806 0 -0.20686707830461232
2.2038407788589121 0 -0.41196923963640736
2.1564278567318902 5.5511151231257827e-17 -0.6135566246718871
2.0906170524662797 5.5511151231257827e-17 -0.80990936091963917
2.0069698406398375 5.5511151231257827e-17 -0.99935223606602208
1.9061998697706908 5.5511151231257827e-17 -1.180268990295964
1.7891668737198041 5.5511151231257827e-17 -1.3511161056518253
1.6568693367448117 1.1102230246251565e-16 -1.5104359747843861
1.5104359747843865 1.1102230246251565e-16 -1.6568693367448106
1.3511161056518253 1.1102230246251565e-16 -1.7891668737198037
1.1802689902959642 1.1102230246251565e-16 -1.9061998697706892
0.99935223606602297 1.1102230246251565e-16 -2.0069698406398366
0.80990936091963961 1.1102230246251565e-16 -2.0906170524662779
0.61355662467188776 1.1102230246251565e-16 -2.1564278567318884
0.4119692396364078 1.1102230246251565e-16 -2.2038407788589107
0.20686707830461301 1.1102230246251565e-16 -2.2324513085130748
2.3826125097526738e-16 1.1102230246251565e-16 -2.2420153507431881
-0.20686707830461318 1.1102230246251565e-16 -2.2324513085130873
;
createNode transform -n "PlugIt_PlugCountNumber_18";
rename -uid "71DD5DFD-4455-C4F9-FACF-FA8CC7A3ABCF";
createNode groupId -n "groupId1";
rename -uid "B065D6F5-41E9-2FB3-9C8E-FBA7ECE5AFC4";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_EdgeBorder_set";
rename -uid "8139E85E-4B6B-8D9F-012F-3AB64608B83B";
setAttr ".ihi" 0;
setAttr ".an" -type "string" "gCharacterSet";
createNode groupId -n "groupId4";
rename -uid "C116D837-4271-E895-985B-6A9E62F00790";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_Hole_set";
rename -uid "C288407C-402B-BD01-11F3-2ABC809C6DBC";
setAttr ".ihi" 0;
createNode groupId -n "groupId5";
rename -uid "3EFF5113-4119-4A0C-ED63-D7B9D306530F";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_AllFaces_set";
rename -uid "1885B011-41A6-0D79-69E1-83B3F2A490D7";
setAttr ".ihi" 0;
createNode groupId -n "groupId6";
rename -uid "1066E37B-4534-A350-4020-618959FDF680";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_Selection_set";
rename -uid "973342B3-4255-BDB5-3F95-04845BBD473A";
setAttr ".ihi" 0;
createNode groupId -n "groupId7";
rename -uid "FA95C6FF-45CC-811C-B4C0-F18CC56842CD";
setAttr ".ihi" 0;
createNode objectSet -n "Plug_ExtraSecure_set";
rename -uid "74E7E75E-4171-9445-3E95-01B5F86ACC30";
setAttr ".ihi" 0;
createNode materialInfo -n "materialInfo2";
rename -uid "34A08C2E-4231-689A-3C82-9AADE04FAF22";
createNode shadingEngine -n "PlugIt_Plug_SG";
rename -uid "FF0400C5-4732-59DB-85A4-3A97910FC6A9";
setAttr ".ihi" 0;
setAttr ".ro" yes;
createNode lambert -n "PlugIt_Plug_Shd";
rename -uid "31620B3E-439F-8FDB-53F6-87AF02806ED4";
setAttr ".c" -type "float3" 0.89999998 0.38077497 0 ;
createNode lightLinker -s -n "lightLinker1";
rename -uid "F5B13A06-4C6E-99E7-E89B-309F5AD7D00E";
setAttr -s 5 ".lnk";
setAttr -s 5 ".slnk";
select -ne :time1;
setAttr -av -k on ".cch";
setAttr -k on ".fzn";
setAttr -av -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr ".o" 1;
setAttr -av ".unw" 1;
setAttr -av -k on ".etw";
setAttr -av -k on ".tps";
setAttr -av -k on ".tms";
select -ne :hardwareRenderingGlobals;
setAttr -av -k on ".ihi";
setAttr ".otfna" -type "stringArray" 22 "NURBS Curves" "NURBS Surfaces" "Polygons" "Subdiv Surface" "Particles" "Particle Instance" "Fluids" "Strokes" "Image Planes" "UI" "Lights" "Cameras" "Locators" "Joints" "IK Handles" "Deformers" "Motion Trails" "Components" "Hair Systems" "Follicles" "Misc. UI" "Ornaments" ;
setAttr ".otfva" -type "Int32Array" 22 0 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 ;
setAttr -k on ".hwi" yes;
setAttr -av ".ta";
setAttr -av ".tq";
setAttr -av ".etmr";
setAttr -av ".tmr";
setAttr -av ".aoon";
setAttr -av ".aoam";
setAttr -av ".aora";
setAttr -k on ".hff";
setAttr -av -k on ".hfd";
setAttr -av -k on ".hfs";
setAttr -av -k on ".hfe";
setAttr -av ".hfc";
setAttr -av -k on ".hfcr";
setAttr -av -k on ".hfcg";
setAttr -av -k on ".hfcb";
setAttr -av -k on ".hfa";
setAttr -av ".mbe";
setAttr -av -k on ".mbsof";
setAttr -k on ".blen";
setAttr -k on ".blat";
setAttr -av ".msaa" yes;
setAttr ".aasc" 4;
setAttr ".laa" yes;
setAttr ".fprt" yes;
select -ne :renderPartition;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 5 ".st";
setAttr -cb on ".an";
setAttr -cb on ".pt";
select -ne :renderGlobalsList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
select -ne :defaultShaderList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 7 ".s";
select -ne :postProcessList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 2 ".p";
select -ne :defaultRenderUtilityList1;
select -ne :defaultRenderingList1;
setAttr -k on ".ihi";
select -ne :lightList1;
setAttr -s 3 ".l";
select -ne :defaultTextureList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
select -ne :standardSurface1;
setAttr ".b" 0.80000001192092896;
setAttr ".bc" -type "float3" 1 1 1 ;
setAttr ".s" 0.20000000298023224;
select -ne :initialShadingGroup;
setAttr -av -k on ".cch";
setAttr -k on ".fzn";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".bbx";
setAttr -k on ".vwm";
setAttr -k on ".tpv";
setAttr -k on ".uit";
setAttr -k on ".mwc";
setAttr -cb on ".an";
setAttr -cb on ".il";
setAttr -cb on ".vo";
setAttr -cb on ".eo";
setAttr -cb on ".fo";
setAttr -cb on ".epo";
setAttr ".ro" yes;
setAttr -cb on ".ai_override";
setAttr -cb on ".ai_surface_shaderr";
setAttr -cb on ".ai_surface_shaderg";
setAttr -cb on ".ai_surface_shaderb";
setAttr -cb on ".ai_volume_shaderr";
setAttr -cb on ".ai_volume_shaderg";
setAttr -cb on ".ai_volume_shaderb";
select -ne :initialParticleSE;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".mwc";
setAttr -cb on ".an";
setAttr -cb on ".il";
setAttr -cb on ".vo";
setAttr -cb on ".eo";
setAttr -cb on ".fo";
setAttr -cb on ".epo";
setAttr ".ro" yes;
setAttr -cb on ".ai_override";
setAttr -cb on ".ai_surface_shaderr";
setAttr -cb on ".ai_surface_shaderg";
setAttr -cb on ".ai_surface_shaderb";
setAttr -cb on ".ai_volume_shaderr";
setAttr -cb on ".ai_volume_shaderg";
setAttr -cb on ".ai_volume_shaderb";
select -ne :defaultRenderGlobals;
addAttr -ci true -h true -sn "dss" -ln "defaultSurfaceShader" -dt "string";
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -av -k on ".macc";
setAttr -av -k on ".macd";
setAttr -av -k on ".macq";
setAttr -av -k on ".mcfr";
setAttr -cb on ".ifg";
setAttr -av -k on ".clip";
setAttr -av -k on ".edm";
setAttr -av -k on ".edl";
setAttr -av ".ren" -type "string" "arnold";
setAttr -av -k on ".esr";
setAttr -av -k on ".ors";
setAttr -cb on ".sdf";
setAttr -av -k on ".outf" 51;
setAttr -av -cb on ".imfkey" -type "string" "exr";
setAttr -av -k on ".gama";
setAttr -k on ".exrc";
setAttr -k on ".expt";
setAttr -av -k on ".an";
setAttr -cb on ".ar";
setAttr -av -k on ".fs";
setAttr -av -k on ".ef";
setAttr -av -k on ".bfs";
setAttr -av -cb on ".me";
setAttr -cb on ".se";
setAttr -av -k on ".be";
setAttr -av -k on ".ep";
setAttr -av -k on ".fec";
setAttr -av -k on ".ofc";
setAttr -cb on ".ofe";
setAttr -cb on ".efe";
setAttr -cb on ".oft";
setAttr -cb on ".umfn";
setAttr -cb on ".ufe";
setAttr -av -k on ".pff";
setAttr -av -cb on ".peie";
setAttr -av -cb on ".ifp";
setAttr -k on ".rv";
setAttr -av -k on ".comp";
setAttr -av -k on ".cth";
setAttr -av -k on ".soll";
setAttr -cb on ".sosl";
setAttr -av -k on ".rd";
setAttr -av -k on ".lp";
setAttr -av -k on ".sp";
setAttr -av -k on ".shs";
setAttr -av -k on ".lpr";
setAttr -cb on ".gv";
setAttr -cb on ".sv";
setAttr -av -k on ".mm";
setAttr -av -k on ".npu";
setAttr -av -k on ".itf";
setAttr -av -k on ".shp";
setAttr -cb on ".isp";
setAttr -av -k on ".uf";
setAttr -av -k on ".oi";
setAttr -av -k on ".rut";
setAttr -av -k on ".mot";
setAttr -av -k on ".mb";
setAttr -av -k on ".mbf";
setAttr -av -k on ".mbso";
setAttr -av -k on ".mbsc";
setAttr -av -k on ".afp";
setAttr -av -k on ".pfb";
setAttr -av -k on ".pram";
setAttr -av -k on ".poam";
setAttr -av -k on ".prlm";
setAttr -av -k on ".polm";
setAttr -av -cb on ".prm";
setAttr -av -cb on ".pom";
setAttr -cb on ".pfrm";
setAttr -cb on ".pfom";
setAttr -av -k on ".bll";
setAttr -av -k on ".bls";
setAttr -av -k on ".smv";
setAttr -av -k on ".ubc";
setAttr -av -k on ".mbc";
setAttr -cb on ".mbt";
setAttr -av -k on ".udbx";
setAttr -av -k on ".smc";
setAttr -av -k on ".kmv";
setAttr -cb on ".isl";
setAttr -cb on ".ism";
setAttr -cb on ".imb";
setAttr -av -k on ".rlen";
setAttr -av -k on ".frts";
setAttr -av -k on ".tlwd";
setAttr -av -k on ".tlht";
setAttr -av -k on ".jfc";
setAttr -cb on ".rsb";
setAttr -av -k on ".ope";
setAttr -av -k on ".oppf";
setAttr -av -k on ".rcp";
setAttr -av -k on ".icp";
setAttr -av -k on ".ocp";
setAttr -cb on ".hbl";
setAttr ".dss" -type "string" "lambert1";
select -ne :defaultResolution;
setAttr -av -k on ".cch";
setAttr -av -k on ".ihi";
setAttr -av -k on ".nds";
setAttr -k on ".bnm";
setAttr -av -k on ".w" 268;
setAttr -av -k on ".h" 268;
setAttr -av ".pa" 1;
setAttr -av -k on ".al";
setAttr -av -k on ".dar" 1;
setAttr -av -k on ".ldar";
setAttr -av -k on ".dpi";
setAttr -av -k on ".off";
setAttr -av -k on ".fld";
setAttr -av -k on ".zsl";
setAttr -av -k on ".isu";
setAttr -av -k on ".pdu";
select -ne :defaultLightSet;
setAttr -s 3 ".dsm";
select -ne :defaultColorMgtGlobals;
setAttr ".cfe" yes;
setAttr ".cfp" -type "string" "<MAYA_RESOURCES>/OCIO-configs/Maya-legacy/config.ocio";
setAttr ".vtn" -type "string" "sRGB gamma (legacy)";
setAttr ".vn" -type "string" "sRGB gamma";
setAttr ".dn" -type "string" "legacy";
setAttr ".wsn" -type "string" "scene-linear Rec 709/sRGB";
setAttr ".ote" yes;
setAttr ".ovt" no;
setAttr ".povt" no;
setAttr ".otn" -type "string" "sRGB gamma (legacy)";
setAttr ".potn" -type "string" "sRGB gamma (legacy)";
select -ne :hardwareRenderGlobals;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -av ".ctrs" 256;
setAttr -av ".btrs" 512;
setAttr -av -k off -cb on ".fbfm";
setAttr -av -k off -cb on ".ehql";
setAttr -av -k off -cb on ".eams";
setAttr -av -k off -cb on ".eeaa";
setAttr -av -k off -cb on ".engm";
setAttr -av -k off -cb on ".mes";
setAttr -av -k off -cb on ".emb";
setAttr -av -k off -cb on ".mbbf";
setAttr -av -k off -cb on ".mbs";
setAttr -av -k off -cb on ".trm";
setAttr -av -k off -cb on ".tshc";
setAttr -av -k off -cb on ".enpt";
setAttr -av -k off -cb on ".clmt";
setAttr -av -k off -cb on ".tcov";
setAttr -av -k off -cb on ".lith";
setAttr -av -k off -cb on ".sobc";
setAttr -av -k off -cb on ".cuth";
setAttr -av -k off -cb on ".hgcd";
setAttr -av -k off -cb on ".hgci";
setAttr -av -k off -cb on ".mgcs";
setAttr -av -k off -cb on ".twa";
setAttr -av -k off -cb on ".twz";
setAttr -cb on ".hwcc";
setAttr -cb on ".hwdp";
setAttr -cb on ".hwql";
setAttr -k on ".hwfr";
setAttr -k on ".soll";
setAttr -k on ".sosl";
setAttr -k on ".bswa";
setAttr -k on ".shml";
setAttr -k on ".hwel";
connectAttr "groupId1.id" "Plug_MeshShape.iog.og[0].gid";
connectAttr "Plug_EdgeBorder_set.mwc" "Plug_MeshShape.iog.og[0].gco";
connectAttr "groupId4.id" "Plug_MeshShape.iog.og[3].gid";
connectAttr "Plug_Hole_set.mwc" "Plug_MeshShape.iog.og[3].gco";
connectAttr "groupId5.id" "Plug_MeshShape.iog.og[4].gid";
connectAttr "Plug_AllFaces_set.mwc" "Plug_MeshShape.iog.og[4].gco";
connectAttr "groupId6.id" "Plug_MeshShape.iog.og[5].gid";
connectAttr "Plug_Selection_set.mwc" "Plug_MeshShape.iog.og[5].gco";
connectAttr "groupId7.id" "Plug_MeshShape.iog.og[6].gid";
connectAttr "Plug_ExtraSecure_set.mwc" "Plug_MeshShape.iog.og[6].gco";
connectAttr "groupId1.msg" "Plug_EdgeBorder_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[0]" "Plug_EdgeBorder_set.dsm" -na;
connectAttr "groupId4.msg" "Plug_Hole_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[3]" "Plug_Hole_set.dsm" -na;
connectAttr "groupId5.msg" "Plug_AllFaces_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[4]" "Plug_AllFaces_set.dsm" -na;
connectAttr "groupId6.msg" "Plug_Selection_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[5]" "Plug_Selection_set.dsm" -na;
connectAttr "groupId7.msg" "Plug_ExtraSecure_set.gn" -na;
connectAttr "Plug_MeshShape.iog.og[6]" "Plug_ExtraSecure_set.dsm" -na;
connectAttr "PlugIt_Plug_SG.msg" "materialInfo2.sg";
connectAttr "PlugIt_Plug_Shd.msg" "materialInfo2.m";
connectAttr "PlugIt_Plug_Shd.oc" "PlugIt_Plug_SG.ss";
connectAttr "Plug_MeshShape.iog" "PlugIt_Plug_SG.dsm" -na;
relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" "PlugIt_Plug_SG.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" "PlugIt_Plug_SG.message" ":defaultLightSet.message";
connectAttr "PlugIt_Plug_SG.pa" ":renderPartition.st" -na;
connectAttr "PlugIt_Plug_Shd.msg" ":defaultShaderList1.s" -na;
// End of Plug_Circle_10.ma

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Some files were not shown because too many files have changed in this diff Show More