ID : 402
Pallet.CalcPos
機能
パレットの条件を指定し、その条件で何段目の先頭から何番目かを指定すると、その位置を取得できます。
構文
Pallet.CalcPos(P1_P3分割数,P1_P2分割数,1段の高さ,パレット四隅位置P1,パレット四隅位置P2,パレット四隅位置P3,パレット四隅位置P4,パレット目標位置番号[, 段積位置][, ロボット番号])
指定項目

- P1_P3分割数
- パレットのP1からP3方向の分割数(N)を整数型データで指定します。
- P1_P2分割数
- パレットのP1からP2方向の分割数(M)を整数型データで指定します。
- 1段の高さ
- 1段の高さを単精度実数型データで指定します。パレットの高さの位置は、[1段の高さ]*([段積位置]-1)で計算されます。次第に積み上がっていく場合には、プラスの値を入力します。次第に減っていく場合には、マイナスの値を入力します。
[段積位置]を1固定で使う場合はこの値は使っていません。0を入力してください。 - パレット四隅位置P1
- パレットの四隅のうち先頭の位置をポジション型データで指定します。
- パレット四隅位置P2
- パレットの四隅のうち2番目の位置をポジション型データで指定します。
- パレット四隅位置P3
- パレットの四隅のうち3番目の位置をポジション型データで指定します。
- パレット四隅位置P4
- パレットの四隅のうち最後の位置をポジション型データで指定します。
- パレット目標位置番号
- その段の先頭から数えて何番目かを整数型データで指定します。
- 段積位置
- 先頭から数えて何段目かを整数型データで指定します。
省略した場合は1になります。 - ロボット番号
- この項目はVer1.9.*から有効です。
協調機能使用時に、ロボット番号を整数型データで指定します。範囲は"0"(Robot0)または"1"(Robot1)です。省略可能です。省略すると"0"(Robot0)を指定したことになります。
戻り値
目標位置をポジション型データで返します。
解説
パレットの条件を指定し、その条件で何段目の先頭から何番目かを指定すると、その位置を取得できます。
パレットの条件は、P1_P3分割数(N)、P1_P2分割数(M)、パレットの高さ、パレットの四隅位置(P1~P4)で指定します。
パレットの位置番号は図のようにP1からP2に向かって振られ、P2に達すると、P1からP3へ向かって1プラスした位置から横に振られています。

注意事項
- 4軸ロボット(HMロボット、HSRロボット、HSロボット、HSA1ロボット、XRロボットなど)で実行する場合は、腕の形態を最適化する処理が含まれていないため、場合によっては、4軸が1周以上回転した位置を算出する恐れがあります。4軸ロボットをご利用の際は、最適な腕の形態で位置を取得できる Pallet.CalcPosTurning コマンドの使用を推奨します。
- 4軸ロボットにおいて、このコマンドと Pallet.CalcPosTurning コマンドの取得結果が異なる場合があります。このコマンドをPallet.CalcPosTurning コマンドに変更する際はご注意ください。
用例
'!TITLE "パレット目標位置番号の座標位置を取得"
' パレット目標位置番号で指定した座標位置を取得し、メッセージ出力ウィンドウに表示
Sub Sample_PalletCalcPos
Dim aaa As Position
Dim bbb As Position
Dim ccc As Position
Dim ddd As Position
Dim eee As Position
Dim fff As Position
Dim ggg As Position
' パレット四隅位置P1を示す位置をaaaに代入
aaa = P( 600, -100, 50, -180, 0, 180, 5 )
' パレット四隅位置P2を示す位置をbbbに代入
bbb = P( 600, 100, 50, -180, 0, 180, 5 )
' パレット四隅位置P3を示す位置をcccに代入
ccc = P( 400, -100, 50, -180, 0, 180, 5 )
' パレット四隅位置P4を示す位置をdddに代入
ddd = P( 400, 100, 50, -180, 0, 180, 5 )
' パレット目標位置番号1の座標位置をeeeに代入
eee = Pallet.CalcPos( 3, 5, 20, aaa, bbb, ccc, ddd, 1, 1 )
' メッセージ出力ウィンドウにパレット目標位置番号1の座標位置を表示
PrintDbg eee
' パレット目標位置番号8の座標位置をfffに代入
fff = Pallet.CalcPos( 3, 5, 20, aaa, bbb, ccc, ddd, 8, 1 )
' メッセージ出力ウィンドウにパレット目標位置番号8の座標位置を表示
PrintDbg fff
' パレット目標位置番号15の座標位置をgggに代入
ggg = Pallet.CalcPos( 3, 5, 20, aaa, bbb, ccc, ddd, 15, 1 )
' メッセージ出力ウィンドウにパレット目標位置番号15の座標位置を表示
PrintDbg ggg
End Sub
ID : 402