Breadcrumbs

get_current_tool_shape()

기능

현재 안전 설정 파라미터 중 현재 설정 된 툴 형상 정보를 반환 합니다.

리턴

자료형

설명

ret

class.config_tool_shape

툴 형상 설정 정보

클래스

class.config_tool_shape

Field

자료형

설명

obj

list

해당 클래스의 object 정보

validity

int[5]

유효성 검사(0, 1)

shape

class.safety_object[5]

상세 형상 정보

class.safety_object

Field

자료형

설명

obj

list

해당 클래스의 object 정보

target_ref

int

사용하지 않는 변수

object_type

int

safety object 타입

0 : 구

1 : 캡슐

2 : 직육면체

object

class.safety_object_data

각 입체 형상 정보

알아두기

safety_object_data 클래스는 C++의 union 공용체 구조로 구성된 클래스로써 object_type에 따라 다른 class를 반환합니다.

class.safety_object_data

object_type

Field

자료형

설명

-

obj

list

해당 클래스의 object 정보

0

sphere

class.safety_object_sphere

구 형태 object 정보

1

capsule

class.safety_object_capsule

캡슐 모양 object 정보

2

cuboid

class.safety_object_cuboid

직육면체 모양 object 정보

알아두기

기존 cube가 cuboid(직육면체)로 변경되었습니다.

해당 매뉴얼을 기준으로 cube 및 cuboid 모두 사용 가능하지만, 추후 cuboid로 통합될 수 있으므로 cube 사용을 권장하지 않습니다.

class.safety_object_sphere

Field

자료형

설명

obj

list

해당 클래스의 object 정보

radius

float

반지름

target_pos

class.point_3d

3d point 정보(x, y, z)

class.point_3d

Field

자료형

설명

obj

list

해당 클래스의 object 정보

x

float

x축 정보

y

float

y축 정보

z

float

z축 정보

class.safety_object_capsule

Field

자료형

설명

obj

list

해당 클래스의 object 정보

radius

float

반지름

target_pos

class.point_3d[2]

3d point 정보(x, y, z)

class.safety_object_cuboid

Field

자료형

설명

obj

list

해당 클래스의 object 정보

target_pos

class.point_3d[2]

3d point 정보(x, y, z)

class.point_2d

Field

자료형

설명

obj

list

해당 클래스의 object 정보

x

float

x축 정보

y

float

y축 정보

예제

Python
tool = get_current_tool_shape()

tp_log("---------------- example start -------------------") 

validity = tool.validity # get tool validity
indices = [i for i, x in enumerate(validity) if x] # make list of activated part indexs

tp_log("part validity: {}".format(validity))
for n in indices:
	tp_log("> part{} datas".format(n))
	tool_shape = tool.shape[n]

	obj_type = tool_shape.object_type # get tool object type 

	if obj_type == 0: # obj type is Sphere
		r = tool_shape.object.sphere.radius
		target_pos = tool_shape.object.sphere.target_pos

		target_pos = [ target_pos.x, target_pos.y, target_pos.z]
		tp_log("type: sphere | radious: {:.2f} pos: {}".format(r, target_pos))

	elif obj_type == 1: # obj type is Capsule
		r = tool_shape.object.capsule.radius
		target_pos = tool_shape.object.capsule.target_pos

		target_pos = [[ target_pos[j].x, target_pos[j].y, target_pos[j].z] for j in range(2)]
		tp_log("type: capsule | radious: {:.2f} pos: {}".format(r, target_pos))

	elif obj_type == 2: # obj type is Cuboid
		# 기존 cube가 cuboid로 변경되었습니다
		# 해당 매뉴얼 기준 cuboid 및 cube 모두 지원하나 추후 cuboid로 통합될 예정으로 cube 사용을 권장하지 않습니다
		# target_pos = tool_shape.object.cube.target_pos
		target_pos = tool_shape.object.cuboid.target_pos

		target_pos = [[ target_pos[j].x, target_pos[j].y, target_pos[j].z] for j in range(2)]
		tp_log("type: cuboid | pos: {}".format(target_pos))

tp_log("---------------- example end ---------------------")