Advanced Transform

i literally can’t work without this addon. I really hope people still keep update this one

1 Like

ayt.

I did a quick “4.0” fix - seems to work, but I don’t use this script, and I barely understand how it is “supposed” to work anymore ;D (+unfixed modes remain unfixed)

AdvancedTransform.py (127.0 KB)

p.s.: due to changes in snapping, there are some possible issues there. Code & design choices to be made on how to set it up. Choices I will not be making.

Note: This version is not backwards compatible (Blender 4.0 only)

3 Likes

Kjell, thank you soooo much! :+1: :+1: :+1:

As Kaimen said above - it was literally impossible to work without this addon :pensive:

After short testing, it looks like everything works just great.

thanks a lot Kiellog , i know this addon is very niche , but yeah can’t work with it , well i could , but wouldn’t be fun

by the way not working for me on v4 th quick fix one

I don’t have any problems on my side. You’d better describe what doesn’t work on your config

hi gyts , sorry about the short description , i simply installed the latest advanced transform fix …on blender 4.0 ( still working on 3.6 ) and when i press g ,r or s , the default cube just move freely in space , s …it scale uniform , etc …it’s like the addon is installed bu not there , there is no grey frame ( trademark of the addon ) around the viewport when i pressany oof these keys …weird …you work on wich version of blender guys ?

Ah sorry, I have too many projects going, I confused it with keKit ;D
The last fixed version of “AT” I posted was made for Blender 4.0. It is not backwards compatible.

4.0.3:

Edit: I’m recalling there was an error in some rare Transform Orientations/Pivot Point combination (as well in 3.6 also). But it doesn’t bother me at all

1 Like

That tool complete broken for 4.1

Hey Vlad. It’s good to see you’re Ok and here with us! :slight_smile:

Hmm… Why do you think it’s broken in 4.1? I haven’t noticed major bugs in this release.

I am fine. Thank you! I hope everything is fine with you :slight_smile:
Rotation tool work only left mouse. Scale tool work only left mouse too. Doesn’t work gizmo.
I will try do rework and will add support UV
But I don’t remember the API at all and it may take time

2 Likes

Yeah, all good :slight_smile:

You’re right about RMB Rotation. But for Scale tool both LMB and RMB work as should (thanks to Kjell’s fixes)

It would be super if you could refresh and hone this great addon!

1 Like

I want to slap the dude who wrote that

def GetView(self):
    # ______________________Get Camera Direction________________#
    direction = (self.mat.inverted() @ V(bpy.context.region_data.view_rotation @ V((0.0, 0.0, -1.0))))
    x = direction[0]
    y = direction[1]
    z = direction[2]
    # ______________________Set Coords Fro Plane________________#
    if abs(x) > abs(y) and abs(x) > abs(z):
        self.exc_axis = 'x'
        if x < 0:
            self.negativMlt = True
            self.V_matrix = Matrix.Translation(self.center) @ (
                Matrix(self.mat.to_3x3() @ Matrix.Rotation(-1.570796, 3, Vector((0.0, 1.0, 0.0)))).to_4x4())
        else:
            self.V_matrix = Matrix.Translation(self.center) @ (
                Matrix(self.mat.to_3x3() @ Matrix.Rotation(1.570796, 3, Vector((0.0, 1.0, 0.0)))).to_4x4())
    elif abs(y) > abs(x) and abs(y) > abs(z):
        self.exc_axis = 'y'
        if y < 0:
            self.negativMlt = True
            self.V_matrix = Matrix.Translation(self.center) @ (
                Matrix(self.mat.to_3x3() @ Matrix.Rotation(1.570796, 3, Vector((1.0, 0.0, 0.0)))).to_4x4())
        else:
            self.V_matrix = Matrix.Translation(self.center) @ (
                Matrix(self.mat.to_3x3() @ Matrix.Rotation(-1.570796, 3, Vector((1.0, 0.0, 0.0)))).to_4x4())

    elif abs(z) > abs(x) and abs(z) > abs(y):
        self.exc_axis = 'z'
        # print("AXIS _ ", z)
        if z < 0:
            self.negativMlt = True
            self.V_matrix = Matrix.Translation(self.center) @ (
                Matrix(self.mat.to_3x3() @ Matrix.Rotation(-1.570796 * 2, 3, Vector((1.0, 0.0, 0.0)))).to_4x4())
        else:
            self.V_matrix = Matrix.Translation(self.center) @ (
                Matrix(self.mat.to_3x3() @ Matrix.Rotation(1.570796 * 2, 3, Vector((0.0, 0.0, 0.0)))).to_4x4())

It’s much easier to do it this way

def GetNormalForIntersectionPlane(TransfromOrientationMatrix):
    view_direction = bpy.context.region_data.view_rotation @ Vector((0, 0, -1))
    index_best_axis = [abs(view_direction.dot(TransfromOrientationMatrix.col[i])) for i in range(0,3)] # Get dot for all axes
    index_best_axis = index_best_axis.index(max(index_best_axis))
    normal_intersect_plane = (TransfromOrientationMatrix.col[index_best_axis] * -1).normalized()# do invert for normal because we need derection to camera
    return normal_intersect_plane.to_3d()

PS. I wrote this a long time ago

2 Likes

Don’t slap yourself too much, community needs your bright brain! :crazy_face:

WIP

Fixed Size Gizmo

TemporaryPivot

TemporaryOrientation

TemporaryPivotWithRotation

QuickMirror

Quick alinge

SnapAngleRotation

UVTemporaryPivot

QuickUVMove

QuickUVScale

UVSpanRotation

UVQuickMirror

Almost 90% code was rewritten, -1000 code lines

9 Likes

Demos look awesome! Great job Vlad!!

1 Like

Thank you very much! Very nice to hear it :smiling_face_with_three_hearts: