parameters: (z_axis,x_axis,arg,)
return_statement: return y_axis.orientation
docstring: :param z_axis
  	:type z_axis:direction
  	:param x_axis
  	:type x_axis:direction
  	:param arg
  	:type arg:direction
docstring_summary: :param z_axis
  	:type z_axis:direction
  	:param x_axis
  	:type x_axis:direction
  	:param arg
  	:type arg:direction
docstring_tokens: : param z_axis : type z_axis : direction : param x_axis : type x_axis : direction : param arg : type arg : direction
function: def second_proj_axis(z_axis,x_axis,arg,):
  	'''
  	:param z_axis
  	:type z_axis:direction
  	:param x_axis
  	:type x_axis:direction
  	:param arg
  	:type arg:direction
  	'''
  	if ( not EXISTS(arg)):
  		v = dummy_gri  ==  direction([0,1,0])
  	else:
  		v = arg
  	temp = scalar_times_vector(dot_product(v,z_axis),z_axis)
  	y_axis = vector_difference(v,temp)
  	temp = scalar_times_vector(dot_product(v,x_axis),x_axis)
  	y_axis = vector_difference(y_axis,temp)
  	y_axis = normalise(y_axis)
  	return y_axis.orientation
function_tokens: def second_proj_axis ( z_axis , x_axis , arg , ) : if ( not EXISTS ( arg ) ) : v = dummy_gri == direction ( [ 0 , 1 , 0 ] ) else : v = arg temp = scalar_times_vector ( dot_product ( v , z_axis ) , z_axis ) y_axis = vector_difference ( v , temp ) temp = scalar_times_vector ( dot_product ( v , x_axis ) , x_axis ) y_axis = vector_difference ( y_axis , temp ) y_axis = normalise ( y_axis ) return y_axis . orientation