Skip to main content

座標系のシフト、回転、およびスケーリング

GコードG53G54G55G56

関数

Gコードコマンド G54G55、 そして G56 インタープリタ関数ブロックによって内部的に使用されるデコーダ座標系をシフト、回転、およびスケールする SMC_NCInterpreter座標変換は、実行中にすべてのパス要素に対して計算されます。 SMC_NCInterpreter 関数ブロックインスタンス。

Gコードコマンド G53 デコーダーの座標系を元の位置、方向、およびスケーリング(マシンの座標系に対応)にリセットします。

ヒント

位置、方向、またはスケーリングのみが異なる同じパス要素のGコードを再利用するために、デコーダーの座標系をシフトおよび回転します。

ヒント

デコーダー座標系の回転とスケーリングは、オンライン インタープリターでのみ機能します (CNC エディターでは機能しません)。

MCSおよびDCS座標系

機械座標系(MCS)は、その位置と方向を決定する適用された運動学によって定義されます。

デコーダ座標系(DCS)はインタープリタ(SMC_NCInterpreter ファンクションブロックインスタンス)。モーションコマンドのすべての座標情報は、この座標系で解釈されます。これは、移動の目標位置(X/Y/Z)、および円弧の中点(I/J/K)または、 G15/G16/G17/G18/G19

DCSはコマンドでプログラムされます G53/G54/G55/G56。マシンの座標系に対してDCSを回転、シフト、およびスケーリングできるため、Gコードファイル内の位置、方向、およびスケーリングを何度でも調整できます。 DCSに関連するパス要素をプログラムします。たとえば、これは、異なる位置と方向にある同じパス要素にとって有利な場合があります。

次の画像は、シフト(左)と回転を伴うシフト(右)を示しています。

_sm_img_mcs_dcs.png

通訳者は、 eOriConv 入力するかどうか A/B/C 追加の軸または方向値として扱われます。パス要素の座標はそれに応じて変換されます。したがって、インタープリタ関数ブロックはアクティブな座標系を管理します。最初に、DCS がシフト、回転、またはスケーリングされていない場合、DCS は MCS に対応します。開始位置とターゲット位置、および円弧の平面は、生成された GeoInfo オブジェクトで常に MCS を基準として指定されます。

SMC_NCInterpreter.eOriConf = SMC_ORI_CONVENTION.ADDAXES

方向の規則は指定されていません。 GコードワードA / B / Cの内容はシフト値として解釈されます。

SMC_NCInterpreter.eOriConf = SMC_ORI_CONVENTION.ZYZ

方向の規則は、標準のY規則(Z、Y '、Z' ')です。 GコードワードA / B / Cの内容は、角度値として解釈されます。

SMC_NCInterpreter.eOriConf = SMC_ORI_CONVENTION.ZYX

方向の規則は、ヨーピッチロールの規則(Z、Y '、X' ')です。 GコードワードA / B / Cの内容は、角度値として解釈されます。

SMC_NCInterpreter.eOriConf = SMC_ORI_CONVENTION.XYZ

方向の規則はXYZの規則(X、Y '、Z' ')です。 GコードワードA / B / Cの内容は、角度値として解釈されます。

コマンドG53、G54、G55、G56

Gコード

説明

G53

デコーダーの座標系をリセットします

DCSは、MCSと同じ位置と方向にリセットされます。

G54

絶対 DCSのシフト、回転、およびスケーリング

値はMCSを参照します。

オリエンテーションの慣例が ない 指定された (SMC_NCInterpreter.eOriConf = SMC_ORI_CONVENTION.ADDAXES)の場合、コマンドは X/Y/Z/A/B/C 軸に沿ってのみシフトし、追加のすべての直線軸 P/Q/U/V/W 上でシフトします。したがって、A/B/C 軸に沿ってシフトをプログラムすることもできます。

方向の規則が指定されている場合、コマンドは軸X / Y / Zおよび追加の直線軸P / Q / U / V / Wに沿ってシフトします。さらに、座標軸が回転します。次に、方向規則は回転順序を提供し、GコードワードA / B / Cは回転角を度単位で提供します。

注: デコーダーは、-180° から +180° の範囲で方向回転を実行できます。この範囲外の角度を指定した場合、デコーダーは実行可能な範囲内になるように値を変換します。その後、デコーダーは座標軸を回転させます。たとえば、350° の角度の場合は -10° の回転が実行されます。

G55

相対的 DCSの現在の位置と方向へのシフト、回転、およびスケーリング

したがって、値は現在のDCS原点を基準にしており、DCSの現在の座標軸の方向で解釈されます。機械の座標系に関して、追加のシフト/回転が追加されます。

オリエンテーション規則が いいえ 指定すると、コマンドは軸X / Y / Z / A / B / Cに沿ってのみ相対シフトとすべての追加の直線軸P / Q / U / V / Wになります。したがって、シフトはA / B / C軸に沿ってプログラムすることもできます。

方向の規則が指定されている場合、コマンドにより、軸X / Y / Zおよび追加の直線軸P / Q / U / V / Wにも相対シフトが発生します。しかし何よりも、座標軸はさらに回転します。次に、方向規則は回転順序を提供し、GコードワードA / B / Cは回転角を提供します。

G56

デコーダー座標系の基準点をリセットします

DCSの現在の方向、位置、およびスケーリングが参照として設定されます。

ヒント:基準点がX0 Y0 Z0 A0 B0 C0の場合、DCSは現在の位置と方向と同じように設定されます。

構文

G53
G54 X Y Z A B C I J K P Q U V W
G55 X Y Z A B C I J K P Q U V W
G56 X Y Z A B C I J K P Q U V W

Gコードワード

説明

X

Y

Z

デコーダーの座標系がシフトされる値

A

B

C

入力が eOriConf = SMC_ORI_CONVENTION.ADDAXESSMC_NCInterpreterの場合、値はそれぞれの追加軸がどれだけシフトされるかの単位で与えられます。したがって、このパラメータは、マシン座標系に対するデコーダ座標系の各軸のシフトを定義します。

もし、 eOriConf 入力は SMC_ORI_CONVENTION.ZYZSMC_ORI_CONVENTION.ZYX、 または SMC_ORI_CONVENTION.XYZSMC_NCInterpreter、方向規則が提供されます。この場合、ここで指定された値は自動的に度として解釈され、デコーダー座標系の軸がマシン座標系に対してどれだけ回転するかを決定します。したがって、方向規則に従ってメイン軸の回転を定義します。

注: DCS回転をプログラミングする場合、回転角度は常に A/B/C 3軸すべてについて回転角度が欠落していると、デコード時にエラーが発生します(SMC_DEC_DCS_NOT_ALL_OF_ABC_GIVEN)。

I

方向のスケーリング NS

例: 10 10倍に拡張する場合

J

方向のスケーリング Y

例: 10 10倍に拡張する場合

K

方向のスケーリング Z

例: 10 10倍に拡張する場合

P

Q

U

V

W

デコーダー座標系の追加軸がシフトされる値

DCSのシフト

  1. をセットする eOriConv の入力 SMC_NCInterpreter ファンクションブロックインスタンス SMC_ORI_CONVENTION.ADDAXES

    DCSはシフトできます。回転はできません。

  2. CNCパスをプログラムします。まず、DCSの位置シフトを指定します。

    例: G54 X10 Y10 Z10 A30 B30 C30

    DCSのX / Y / Z / A / B / C軸がずれています。

18.

絶対オフセット

N10 G0 X100 Y100 F100
N20 G54 X50 Y50    (Offset auf 50/50)
N30 G1 X0 Y0       (Fahrt nach 50/50)
N40 G54 X100 Y100  (Offset auf 100/100)
N50 G1 X0 Y0       (Fahrt nach 100/100)
N60 G53            (Offset auf 0)
N70 G1 X0 Y0       (Fahrt nach 0/0)

オフセットとしての現在位置

N0 G0 X100 Y100 F100
N10 G56 X0 Y0  (Aktuelle Position 100/100 wird 0/0)
N20 G1 X10     (Fahrt nach 110/100)
N30 G56 X20 Y0 (Aktuelle Position 110/100 wird 20/0)
N40 G1 X0      (Fahrt nach 90/100)

オフセットを値で調整

N0  G54 X10 Y20 Z30  U7 (Offset: X=10, Y=20, Z=30, U=7)
N10 G55 X-10 U7         (Offset: X=0, Y=20, Z=30, U=14)

2つの位置にある同じパス要素

N05 G17
N10 G54 X10 Y10 Z10
N20 G01 X6.574 Y-10 Z-1.961 I8.287 J-0.000
N30 G02 X-0.480 Y-10 Z0.008 I-3.527 J4.988E-05
N040 G02 X3.418 Y-9.806 Z4.482 I1.949 J0.097
N50 G55 X10 Y10 Z10
N60 G01 X6.574 Y-10 Z-1.961 I8.287 J-0.000
N70 G02 X-0.480 Y-10 Z0.008 I-3.527 J4.988E-05
N80 G02 X3.418 Y-9.806 Z4.482 I1.949 J0.097
_sm_decoder_coordinat_system.png


DCSのシフトと回転

  1. をセットする eOriConv の入力 SMC_NCInterpreter ファンクションブロックインスタンスを希望の方向規則(例えば、 SMC_ORI_CONVENTION.ZYZ)。

    DCSのX / Y / Z軸の方向規則と回転順序がプログラムされます。にとって SMC_ORI_CONVENTION.ZYZ、回転順序はZY'Z ''であり、標準のYコンベンションに対応します。

    注:入力がある限り eOriConv 値ではなく方向規則が含まれています SMC_ORI_CONVENTION.ADDAXES、単語の値 A/B/C Gコードコマンドの回転の角度値として解釈されます G54/G55/G56

  2. CNCパスをプログラムします。まず、DCSの位置シフトと回転を指定します。

    例: G54 X10 Y10 Z10 A30 B30 C30

    言葉の価値 A/B/C 回転方向と角度を度単位で指定します。それに応じて座標系が回転します。言葉の価値 X/Y/Z シフトを定義します。

    注: DCS回転をプログラミングする場合、回転角度は常に A/B/C 3軸すべてについて回転角度が欠落していると、デコード時にエラーが発生します(SMC_DEC_DCS_NOT_ALL_OF_ABC_GIVEN)。

    もし、 eOriConv の入力 SMC_NCInterpreter 関数ブロックインスタンスには値が含まれています SMC_ORI_CONVENTION.ADDAXESの場合、DCSを回転させることはできません。 G54/G55/G56 追加のスプライン軸値として解釈されます。シフトが可能です。

19.

オリエンテーション規則は、例では標準のY規則として定義されています(eOriConv = SMC_ORI_CONVENTION.ZYZ)。一般的に G54X/Y/Z/A/B/C/P/Q/V/W MCSで絶対値を提供します。 G55X/Y/Z/A/B/C/P/Q/V/W DCSの相対値を提供します。 G56X/Y/Z/A/B/C/P/Q/V/W DCSに絶対的な新しい値を提供します。

G54での絶対標定

N01 G54 X10 A30 B0 C0

G54 シフトと回転が発生します。位置と方向は、MCSに対して絶対的に提供されます。

G55との相対的な向き

N01 G54 X10 A30 B0 C0 (Bezieht sich auf MCS)
N02 G55 Y10 A0 B30 C0 (Bezieht sich auf das in 01 definierte DCS)

G54 その結果、X方向に10単位シフトし、MCSに対して絶対的なZ軸を中心に30°回転します。ブロック02において、DCSは、回転されたY軸の方向にさらに10単位シフトされ、次に、回転されたY軸を中心にさらに30°回転される。したがって、ブロック02の変換は、ブロック01の変換に関連しています。

G56での現在の方向に関する参照

N01 G01 X10 A10 B90 C10 (Orientierung ist A=10°, B=90°, C=10°)
N02 G56 A0 B0 C0        (DCS wird auf X=10, A=10°, B=90°, C=10° gesetzt)

G56 その結果、DCSの現在の方向(例のブロック01でプログラムされている)が参照として設定されます。

例:アーク

N0 G17
N0 G54 A0 B90 C0

選択した円形平面は、DCSを基準にして解釈されます。この例では、X / Y平面は次のように選択されています。 G17 次に、DCSがY軸を中心に90°回転します。次に、DCSで選択された平面は、前と同じようにX / Y平面です。これは、MCSのX / Z平面のそれに対応します。

G17、X / Y平面が選択されています。次に、DCSが90°回転します。これにより、X / Yプレーンが以前と同様にDCSでアクティブになります。これは、MCSのX / Y平面に対応します。



ヒント

2.5Dモード(G15) では、Z 軸を中心に回転することのみが許可されます。他の軸を中心に回転すると、デコーダーによってエラーが発生します (SMC_DEC_DCS_2D_NOT_IN_XY_PLANEしたがって、MCS の X/Y 平面は常に 2.5D モードに設定されたままになります。

座標系のスケーリング

重要

不均等なスケーリングの後に回転がプログラムされている場合、クリッピングが発生する可能性があります。この場合、エラー SMC_DEC_ROTATION_AFFECTS_SCALING 発行されません。

重要

3つのスケーリング係数をすべて指定するか、まったく指定しないでください。

絶対スケーリング

構文: G54 I<i> J<j> K<k>

座標系は、3つの空間方向に伸縮できます X/Y/Z 互いに独立して。各方向の係数を指定できます。 XをIに、YをJに、ZをKにスケーリング係数を指定します。スケーリング係数> 1が拡張されます。スケーリング係数<1は圧縮します。

10倍に拡張:

N01 G01 X10
N02 G54 A90 B0 C0 I10 J1 K1
N03 G01 X10 Y20
N04 G01 X5 Y10

すべてのターゲットポイントは、回転したX軸の方向に10倍延長されます。

次のコードは同じパスを生成します。

N01 G01 X10
N02 G01 X-20 Y100
N03 G01 X-10 Y50.

IもJもKも指定されていない場合、以前に設定された値は変更されません。

N01 G54 I10 J1 K1
N02 G54 X1
N03 G01 X10

次のコードでも同じパスが実現されます。

N01 G01 X101

相対スケーリング

構文: G55 I<i> J<j> K<k>

1より大きい倍率が拡張されます。スケーリング係数<1は圧縮します。スケーリング係数が乗算されます。

100倍に拡張:

N01 G54 I10 J1 K1
N02 G55 I10 J1 K1
N03 G01 X10 Y20
N04 G01 X5 Y10

次のコードは同じスケーリングになります。

N01 G55 I100 J1 K1

円形スケーリング

円弧のスケーリングは、スケーリング後も要素が円弧(楕円ではない)である場合にのみ有効です。

. 有効なパスの結果:
  • 3つの倍率がすべて同じ値の場合

  • 円形平面がDCSの主平面の1つであり、対応する2つのスケール係数が同じ値である場合

座標系のミラーリング

負のスケーリング係数を使用した絶対スケーリング IJ、 また K その結果、現在の座標系がミラーリングされます。

負のスケールファクター

G54 A30 B0 C0 I-1 J1 K1