import c4d
def main():
doc = c4d.documents.GetActiveDocument()
obj = doc.GetActiveObject()
if not obj:
return None
modeling_axis = obj.GetModelingAxis(doc)
axis_position = modeling_axis.off
axis_rotation = c4d.utils.MatrixToHPB(modeling_axis, order=c4d.ROTATIONORDER_DEFAULT)
null_obj = c4d.BaseObject(c4d.Onull)
null_obj.SetName("Axis")
null_obj.SetAbsPos(axis_position)
null_obj.SetAbsRot(axis_rotation)
doc.StartUndo()
doc.AddUndo(c4d.UNDOTYPE_NEWOBJ, null_obj)
doc.InsertObject(null_obj)
doc.EndUndo()
c4d.EventAdd()
if __name__ == '__main__':
main()
ключевые ссылки на документацию:
doc, get axis, get rotation from matrix, get position from matrix