位置あわせをする際の位置・姿勢算出
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_xyqn_trans_execute( FHANDLE hcalib, DPNT_T_PTR base_on_cam, DPNT_T_PTR mark_on_cam, double xo, double yo, double qo, ref double x, ref double y, ref double q ) |
Visual Basic |
---|
Public Shared Function fnFIE_xyqn_trans_execute ( hcalib As FHANDLE, base_on_cam As DPNT_T_PTR, mark_on_cam As DPNT_T_PTR, xo As Double, yo As Double, qo As Double, ByRef x As Double, ByRef y As Double, ByRef q As Double ) As Integer |
Parameters
- hcalib
- Type: fvalgcli..::..FHANDLE
キャリブレーションシステムのハンドル
- base_on_cam
- Type: fvalgcli..::..DPNT_T_PTR
カメラ座標系上のnチャンネル分の基準座標配列
- mark_on_cam
- Type: fvalgcli..::..DPNT_T_PTR
カメラ座標系上のnチャンネル分のマーク座標配列
- xo
- Type: System..::..Double
テーブル現在位置X座標(mm)
- yo
- Type: System..::..Double
テーブル現在位置Y座標(mm)
- qo
- Type: System..::..Double
テーブル現在位置θ座標(rad)
- x
- Type: System..::..Double%
テーブル移動後X座標(mm)
- y
- Type: System..::..Double%
テーブル移動後Y座標(mm)
- q
- Type: System..::..Double%
テーブル移動後θ座標(rad)
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_INVALID_OBJECT | 不正なオブジェクトが渡された
|
F_ERR_NOMEMORY | メモリ不足エラー |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Remarks
具体的な使用方法についてはサンプルプロジェクトの xyqn をご参照ください。 サンプルプロジェクトはインストーラでは配布されませんので、 弊社ホームページからダウンロードしてください。
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { /// <summary> /// 位置あわせをする際の位置・姿勢算出 /// </summary> /// <param name="hCalib"></param> public void fnFIE_xyqn_trans_execute(FHANDLE hCalib) { DPNT_T_PTR base_on_cam = DPNT_T_PTR.Zero; DPNT_T_PTR mark_on_cam = DPNT_T_PTR.Zero; double xo = 50; double yo = 50; double qo = 30; double dx = 0; double dy = 0; double dq = 0; try { base_on_cam = DPNT_T_PTR.alloc(2); base_on_cam[0] = DPNT_T.init(20, 20); base_on_cam[1] = DPNT_T.init(30, 30); mark_on_cam = DPNT_T_PTR.alloc(2); mark_on_cam[0] = DPNT_T.init(40, 40); mark_on_cam[1] = DPNT_T.init(50, 50); int status = api.fnFIE_xyqn_trans_execute(hCalib, base_on_cam, mark_on_cam, xo, yo, qo, ref dx, ref dy, ref dq); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_xyqn_trans_execute: {0}", (f_err)status); Console.WriteLine("fnFIE_xyqn_trans_execute"); Console.WriteLine("x={0}, y={1}, q={2}", dx, dy, dq); } finally { base_on_cam.Dispose(); mark_on_cam.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' 位置あわせをする際の位置・姿勢算出 ''' </summary> ''' <param name="hCalib"></param> Public Sub fnFIE_xyqn_trans_execute(hCalib As FHANDLE) Dim base_on_cam As DPNT_T_PTR = DPNT_T_PTR.Zero Dim mark_on_cam As DPNT_T_PTR = DPNT_T_PTR.Zero Dim xo As Double = 50 Dim yo As Double = 50 Dim qo As Double = 30 Dim dx As Double = 0 Dim dy As Double = 0 Dim dq As Double = 0 Try base_on_cam = DPNT_T_PTR.alloc(2) base_on_cam(0) = DPNT_T.init(20, 20) base_on_cam(1) = DPNT_T.init(30, 30) mark_on_cam = DPNT_T_PTR.alloc(2) mark_on_cam(0) = DPNT_T.init(40, 40) mark_on_cam(1) = DPNT_T.init(50, 50) Dim status As Integer = api.fnFIE_xyqn_trans_execute(hCalib, base_on_cam, mark_on_cam, xo, yo, qo, _ dx, dy, dq) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_xyqn_trans_execute: {0}", CType(status, f_err)) Console.WriteLine("fnFIE_xyqn_trans_execute") Console.WriteLine("x={0}, y={1}, q={2}", dx, dy, dq) Finally base_on_cam.Dispose() mark_on_cam.Dispose() End Try End Sub End Class |