move_spiral()
기능
지정한 좌표계(ref) 상에서 회전 방향(rad_dir)에 따라 현재 위치를 나선의 중심점으로 하여 반경 방향으로 외향 이동하는 원추 나선 궤적의 모션을 수행하거나, 목표점을 나선의 중심점으로 하여 반경 방향으로 내향 이동하는 원추 나선 궤적의 모션을 수행합니다. 목표점은 X,Y,Z 좌표 값 또는 최대 반경(rmax)과 이동거리(lmax)로 정의할 수 있습니다. 지정축(axis)에 수직한 평면 위에서 입력한 회전수(rev)만큼 회전하는 나선 궤적을 따릅니다.
인수
인수명 | 자료형 | 기본값 | 범위 | 설명 |
---|---|---|---|---|
rev | float | 10 | rev > 0 | 총 회전수 [revolution] |
rmax | float | None | rmax > 0 | spiral 최종 반경 [mm] |
lmax | float | 0 | axis 방향으로 이동하는 거리 [mm] | |
vel (v) | float | None | velocity | |
acc (a) | float | None | acceleration | |
time (t) | float | None | time ≥ 0 | 총 수행시간 <sec> |
axis | int | DR_AXIS_Z | - | axis
|
ref | int | DR_TOOL | - | reference coordinate
|
pos | posx | None | posx 또는 position list (X,Y,Z) | |
list(float[3]) | ||||
list(float[6]) | ||||
mod | int | DR_MV_MOD_ABS | 이동 기준
| |
rad_dir | int | DR_SPIRAL_OUTWARD | 반경 방향
| |
rot_dir | int | DR_ROT_FORWARD | 회전 방향
| |
radius(r) | float | None | Blending 시 radius | |
ra | int | DR_MV_RA_DUPLICATE | Reactive motion mode
|
알아두기
단축 인수를 지원합니다. (v:vel, a:acc, t:time)
rev는 spiral 모션의 총 회전수를 의미합니다.
rmax는 spiral 모션의 최대 반경을 의미합니다.
lmax는 모션 동안 axis 방향으로 병진하는 거리를 의미합니다. 단, 음수인 경우 –axis 방향 병진합니다.
vel은 spiral 모션의 이동 속도를 의미합니다.
vel이 None인 경우, _global_velx의 첫째 값(병진 속도)이 적용됩니다. (_global_velx 초기값은 0.0이며, set_velx에 의해 설정 가능)
acc는 spiral 모션의 이동 가속도를 의미합니다.
acc가 None인 경우, _global_accx 첫째 값(병진 가속도)이 적용됩니다. (_global_accx 초깃값은 0.0이며, set_accx에 의해 설정 가능)
time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.
time이 None인 경우 0으로 처리됩니다.
axis는 Spiral 모션이 정의하는 평면에 수직인 축을 정의합니다.
ref는 spiral 모션이 정의하는 기준 좌표계를 의미합니다.
rad_dir 은 Spiral의 반경 방향의 회전 방향을 의미합니다.

rot_dir 은 Spiral의 회전 축을 기준으로 한 회전 방향을 의미합니다.

radius가 None인 경우, 블렌딩 구간인 경우는 blending radius로 처리되며 아닌 경우는 0으로 처리됩니다.
진행 중인 모션(선행모션)이 종료되지 않은 상태에서 새로운 모션명령(후행모션)이 실행되면 선행모션과 후행모션이 부드럽게 연결됩니다(모션 블렌딩 기능).이 때 선행모션의 목표점을 유지하거나 취소할 수 있도록 결정하는 옵션ra를 후행모션에 설정할 수 있습니다. (유지: ra= DR_MV_RA_DUPLICATE /취소: ra= DR_MV_RA_OVERRIDE)예를 들어 아래의 그림에서 목표점이 Target#1인 선행모션의 진행 중 ‘2nd motion event’지점에서 후행모션이 실행된 경우 후행모션의 옵션ra= DR_MV_RA_DUPLICATE이면 선행모션의 목표점을 유지하므로 주황색 궤적과 같이움직이며ra= DR_MV_RA_OVERRIDE이면 선행모션의 목표점을
취소하므로 초록색 궤적과 같이 움직이게 됩니다.
주의
경로 생성 시 Spiral 경로에 의한 회전각 가속도를 연산하여 값이 큰 경우 안정적인 모션을 위하여 에러가 발생할 수 있습니다. 이 경우 vel, acc 값을 작게 또는 time 값을 크게 조정하는 것을 권장합니다.
리턴
값 | 설명 |
---|---|
0 | 성공 |
음수값 | 오류 |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
# Model: M1013
J00 = posj(0,0,90,0,90,0)
P1 = [559,34.5,651.5]
P2 = [579, 65, 641.5]
D1 = [20,0,10]
D2 = [-20,0,-10]
movej(J00,vel=100,acc=100) # Move to Initial Poisition
# Max Radius with Blending
move_spiral(rev=5,rmax=20.0,lmax=-10,v=40,a=40,axis=DR_AXIS_Z,ref=DR_TOOL,rad_dir=DR_SPIRAL_OUTWARD, rot_dir=DR_ROT_FORWARD, r=20)
move_spiral(rev=5,rmax=20.0,lmax=-10,v=40,a=40,axis=DR_AXIS_Z,ref=DR_TOOL,rad_dir=DR_SPIRAL_INWARD, rot_dir=DR_ROT_FORWARD)
# Coordinate values with Blending
move_spiral(rev=5,pos=P2,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_OUTWARD, rot_dir=DR_ROT_FORWARD, r=20)
move_spiral(rev=5,pos=P1,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_INWARD, rot_dir=DR_ROT_FORWARD)
# Relative motion with Blending
move_spiral(rev=5,pos=D1,mod=DR_MV_MOD_REL,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_OUTWARD, rot_dir=DR_ROT_FORWARD, r=20)
move_spiral(rev=5,pos=D2,mod=DR_MV_MOD_REL,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_INWARD, rot_dir=DR_ROT_FORWARD)