やあ、
座標 X、Y と Bin という名前の列で構成されるデータ テーブルがあります。
最初の列を保持し、それらを Xn と Yn という座標を持つ新しい列に変換したいと思います。
次に、Y 座標をミラーリングする関数を呼び出すボタン ボックスを備えたウィンドウが作成されます。 ボタンを押すとコマンドは機能しますが、座標が初期値に戻るまでのほんの一瞬だけです。 符号が反転した短いフラッシュが見えるだけです。
あなたは私を助けることができます?
ご協力いただきありがとうございます
dt = Current Data Table();
Try(dt << Delete column (:Xn)); //deletes existing Xn and Yn in case script is run several times
Try(dt << Delete column (:Yn));
dt << New Column ("Xn", Numeric, Continuous, Formula(:X));
dt << New Column ("Yn", Numeric, Continuous, Formula(:Y));
New Window("DS Map Alignment",
Button Box ("Mirror Y Axis",
MirrorFunction)
);
MirrorFunction = Function({},
NewX = :Xn << Get Values();
NewY = :Yn << Get Values();
dt:Xn << Set Values (NewX);
dt:Yn << Set Values (-NewY); //This is where I mirror the Y coordinates
);
わかりました...投稿してから数秒後に自分が何をしたかに再び気づきました。 列 Xn と Yn は、行 4 と行 5 の式によって定義されます。 この式は、「値の設定」コマンドをオーバーライドします。
Formula(:X) を使用せず、代わりに << 値を取得し、<< 値を設定すると、機能します。