-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathopenMaya.py
51 lines (31 loc) · 1.24 KB
/
openMaya.py
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
import pymel.core as pm
from maya.api.OpenMaya import MTransformationMatrix, MGlobal, MSelectionList, MFnDagNode, MMatrix, MFnTransform
sel = MGlobal.getActiveSelectionList() # selection
srcDagpath = sel.getDependNode(0) # first node
srctransform_node = MFnTransform(tgtDagpath) # MFnTransform
srcBaseMtx= srctransform_node.transformation().asMatrix() # matrix
tgtDagpath = sel.getDependNode(1) # first node
transform_node = MFnTransform(tgtDagpath) # MFnTransform
tgttransform_node = MFnTransform(tgtDagpath) # MFnTransform
tgtBaseMtx= tgttransform_node.transformation().asMatrix() # matrix
src = MMatrix(tgtBaseMtx)
invMtx = MMatrix.inverse(src)
a = MFnDagNode().create('transform')
mtx = MTransformationMatrix(baseTgtPosMtx)
baseToTgtPosMtx = tgtBaseMtx*invMtx
tm = om.MTransformationMatrix()
tm.setTranslation(om.MVector(1,5, 3), om.MSpace.kObject)
mat = tm.asMatrix()
node = cmds.createNode("transform")
mlist = om.MSelectionList()
mlist.add(node)
mobj = mlist.getDependNode(0)
mattr = om.MFnMatrixAttribute()
attr = mattr.create("myMatrix", "mm")
mattr.readable = True
mattr.writable = True
mattr.storable = True
fn = om.MFnDependencyNode(mobj)
fn.addAttribute(attr)
pmNode = pm.PyNode(node)
pmNode.myMatrix.set(mat)