Make a rotate tool that rotates depending on current orientation

Hello there! I asked this a lot of times and searched a lot,but i didnt get an answer.I want to make a rotate tool that made with key presses. That means no arc handles will use. But simple adding oreintation like
currentorientation += Vector3.new(15,0,0)
wont work like a normal rotate tool because sometimes it changes 3 or 2 axis like here:


But I got only this:
robloxapp-20220309-2203210.wmv (1.9 MB)

So how to make this?

Finally,I found the way:

cframe = part.CFrame
local x,y,z,xr,yr,zr,r10,r11,r12,r20,r21,r22 = cframe:GetComponents()
local xr = Vector3.new(deg(zr),deg(yr),deg(zr)).Unit * degree
script.Parent.CFrame *= CFrame.Angles(rad(xr.X),rad(xr.Y),rad(xr.Z))

I just needed to *,instead of +

How can I make my rotate tool has the same orientation to the part what I select?

I created 3 ring for each axis and set cframe like this:
ring.CFrame = part.CFrame*CFrame.Angles(rotation in radians)

What I will do to this script? what this script do?

Where you find that ‘L’ thing on left down corner on the part?

If you mean this script:
ring.CFrame = part.CFrame*CFrame.Angles(rotation in radians)
It takes one ring and sets CFrame to part’s CFrame and adds rotation.
Also I didnt understand what you mean with ‘L’ thing on left down corner on the part.

never mind sorry I found the problem just click Ctrl + L to make the rotation has same rotation to the part but thanks for trying to help.