cmmIxIsDone


SYNOPSIS

VT_I4 cmmIxIsDone(
    [in] VT_I4 MapIndex, [out] VT_PI4 IsDone
    )

DESCRIPTION

  • 지정한 보간맵에 해당하는 보간작업이 완료됐는지를 확인합니다.

PARAMETER

  • MapIndex : 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다.

  • IsDone : 이 매개 변수로 인해 모션 작업이 완료되었는지를 판단할 수 있습니다.

Value

Meaning

0 또는 cmFALSE

모션작업이 완료되지 않음

1 또는 cmTRUE

모션작업이 완료됨

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
C/C++

#define MAP0 0 //맵번호 (0)

cmmIxMapAxes(MAP0, cmX1_MASK | cmY1_MASK, 0 );
//또는 cmmIxMapAxes(MAP0, 0x3, 0x0);
//보간 이동할 축들의 기본속도를 설정합니다.

...//속도 패턴 설정

long nIsDone = 0;
double fDistList[2] = {1000, 1000};

if(cmmIxLine(MAP0, fDistList, cmFALSE) != cmERR_NONE){
   cmmErrShowLast(Handle);//에러처리
   return;
}

while (1){
   cmmIxIsDone(MAP0, &nIsDone );
   if(nIsDone == cmTRUE) break;
   else{
       ...
   }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Visual Basic

Dim fDistList As Double
Dim nIsDone As Long

If (cmmIxLineStart(MAP0, fDistList(0)) = cmFALSE) Then
   Call cmmErrShowLast(Handle) '마지막에 발생한 에러 메시지를 화면에 표시합니다.
   Exit Sub
End If

While (cmmIxIsDone(0, nIsDone) = cmFALSE)
…
end
If (Not (cmmErrGetLastCode(nErrCode) = cmERR_NONE)) Then
   Call cmmErrShowLast(Handle) '마지막에 발생한 에러 메시지를 화면에 표시합니다.
   Exit Sub
End If
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Delphi

procedure OnIxMove ();
var
   nIxMap : LongInt; // 보간 맵 설정
   nIsDone : LongInt; // 직선 보간 이송 완료 정보.
   fDistList : Array[0..1] of Double;
begin
   nIxMap := 0;

   fDistList[0] := 10000;
   fDistList[1] := 20000;

   cmmIxMapAxes ( nIxMap , cmX1_MASK or cmY1_MASK, 0 );

   // 직선 보간 이송을 시작합니다.
   cmmIxLineStart ( nIxMap , @fDistList );

   nIsDone := cmFALSE;

   while nIsDone = cmFALSE do
   begin
       cmmIxIsDone ( nIxMap, @nIsDone ); // 직선 보간 이송 완료 여부를 확인합니다.
   end;

end;