3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

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 ---------------------")