-
Notifications
You must be signed in to change notification settings - Fork 0
/
getRotation.lua
108 lines (80 loc) · 2.44 KB
/
getRotation.lua
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
-------------------------- correctRotation v0.4 --------------------------
-- martin [at] klangbild [dot] lighting --
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
function correctRotation()
local startFix = 1 -- first fixture to modify
local endFix = 99 -- last fixture to mofify
local getvar = gma.user.getvar -- gma.user.setvar or gma.system.getvar
local cmd = gma.cmd
local FixId
local rotX
local rotY
local rotZ
local newRotX
local newRotY
local newRotZ
local nodRotX
local modRotY
local modRotZ
local found
FixId = getvar("LS_READFIXID")
gma.feedback("reading fixture " .. FixId)
local handle = gma.show.getobj.handle("Fixture " .. FixId .. ".1")
local fixName = gma.show.property.get(handle,3)
gma.feedback('FixtureType is ' .. fixName)
found = 1
if string.match(fixName, "Pointe Mode 3") then
modRotX = 0
modRotY = 90
modRotZ = 180
elseif string.match(fixName, "Dimmer 00") then
modRotX = 0
modRotY = 0
modRotZ = 90
elseif string.match(fixName, "GDID0001") then
modRotX = 0
modRotY = 0
modRotZ = 180
elseif string.match(fixName, "GDID0002") then
modRotX = 90
modRotY = 0
modRotZ = 0
else
found = 0
gma.feedback("NO MATCH")
end
if found == 1 then
gma.feedback("MATCH")
rotX = gma.show.property.get(handle,'RotX')
rotY = gma.show.property.get(handle,'RotY')
rotZ = gma.show.property.get(handle,'RotZ')
gma.feedback("X: " .. rotX .. " Y: " .. rotY .. " Z: " .. rotZ)
newRotX = rotX + modRotX
newRotY = rotY + modRotY
newRotZ = rotZ + modRotZ
gma.feedback("mod X: " .. modRotX .. " Y: " .. modRotY .. " Z: " .. modRotZ)
gma.feedback("new X: " .. newRotX .. " Y: " .. newRotY .. " Z: " .. newRotZ)
if newRotX > 180 then
newRotX = newRotX - 360
elseif newRotX < -180 then
newRotX = newRotX + 360
end
if newRotY > 180 then
newRotY = newRotY - 360
elseif newRotY < -180 then
newRotY = newRotY + 360
end
if newRotZ > 180 then
newRotZ = newRotZ - 360
elseif newRotZ < -180 then
newRotZ = newRotZ + 360
end
gma.feedback("cor X: " .. newRotX .. " Y: " .. newRotY .. " Z: " .. newRotZ)
cmd('Fixture ' .. FixId)
--gma.sleep 0.01
cmd('Rotate3D At ' .. newRotX .. ' ' .. newRotY .. ' ' .. newRotZ)
--gma.sleep 0.01
end
end
return correctRotation;