How to access (view/change) parent inverse transforms?

I spent several hours today to achieve something simple (rotate a group of objects around a given axis of an empty), and found that Blender transforms and coordinates work in a very convoluted and hard-to-understand way.
At last I found the problem: Blender objects not only have transform coordinates (visible in N-panel) and delta transform coordinates (visible in a sub-panel under object properties), but also so-called inverse parent coordinates. These seem to be the location/rotation/scale of the child relative to its parent, exactly at the time of parenting.

Now, I can’t seem to find any place in the interface where I can see what these inverse parent coordinates are, or if an object even has these or not. How can I access/change these coordinates in Blender?

I think you need to read THIS section in the manual, it best explains the parenting system…
Hope this helps.

Not really, but you prob come from a different software package - Use an armature bone instead of an empty - they can give you trouble if you don’t understand the pit falls of them.

This is true, but it is something you need not worry about unless you might be scripting ( inverse parent coordinates)

Not in the interface - for a reason, but you can access it and change it. You use the python console to do that…
If you select the object, you can type one of these into the python console –

print(C.object.matrix_basis.decompose())
print(C.object.matrix_local.decompose())
print(C.object.matrix_world.decompose())
print(C.object.matrix_parent_inverse.decompose())

OR

print(D.objects[“Name”].matrix_basis.decompose())
_local.
_world.
_parent_inverse.

Return the location, rotation and scale components of this matrix.
:return: loc, rot, scale triple.
:rtype: (:class:Vector, :class:Quaternion, :class:Vector)

I don’t know what you want to change, so this is as much help as I can be, the take away is do not use emptys unless you really understand how blender works

I’ve been using Blender for a long time now. Just this time I was not modelling in Blender, but trying to rebuild movements of parts of an imported CAD-model. I need to be able to input precise values for position/rotation (parts turning around a given rotation axis = the axis of a given coordinate system) and have the exact same result as in the CAD-program. Since the math is the same. Except I got different results.
I never thought of using armatures. Empties seem like the proper solution to define a coordinate system.
Anyways, the problem was, that there is no way to see that Blender applies a hidden transform (the parent inverse) on top of the transforms that you can change in the interface. At least there is a way to delete it.
On a related note, there is also no way to see the “resulting” world coordinates of something. I always need to snap an object to it, and then see what its coordinates are.

I had hoped there is something hidden in the interface. If not, your script-solution is the next best thing. Thank you!

One question: with print(C.object.matrix_basis.decompose()), it gives the rotation in Quaternions. Is there a way to write it out in XYZ-Euler?

I do not think so - but now that you have explained your situation better, I think maybe ‘Animation Nodes’ might be better suited or as I said use an armature. But if you have any experience with AN then Clockmender has some good nodes he coded himself - I leave you links to his web page and his Github