グラフィックオブジェクトはOriginの子ウィンドウにあり、Originのユーザによって作成されます。これらのオブジェクトはラベル、矢印、線及びその他ユーザーによって作成されたグラフィックエレメントを含みます。これらのオブジェクトはオブジェクトプロパティダイアログのプログラミングタブで定義されたそれらの名前を使ってスクリプトからアクセスできます。Origin2017より前のバージョンでは、プログラミングコントロールダイアログボックスと呼ばれていました。
このダイアログボックスを開くには、これらの方法があります。
Note:オブジェクトは選択不可に設定できます。選択不可のオブジェクトにアクセスしたい場合はまず編集:編集モードメニューにチェックを入れる必要があります。Origin2017より前のバージョンでは、これは編集モードボタンと呼ばれていました。 |
ダイアログボックスのプログラミングタブのテキストボックスにスクリプトを入力すると、これらのラベルにスクリプトを添付できます。このスクリプトの実行トリガーは~のあとでスクリプトを実行のあとでスクリプトを実行ドロップダウンから設定できます。
一般的には、LabTalkスクリプトからアクセスできるのは名前のついたオブジェクトのみです。ただし、名前のないオブジェクトでもこの後書くようにthis.表記を使えばダイアログのプログラミングタブからスクリプトでアクセスすることができます。
GObjectはレイヤにあるグラフィックオブジェクトのLabTalk変数型です。削除する場合はLabel -r objectNameを使うことができます。
一般的なシンタックスは:
GObject name = [GraphPageName]LayerName!ObjectName; // ページ名、レイヤ名、オブジェクト名を使用
GObject name = [GraphPageName]LayerIndex!ObjectName; // ページ名、レイヤ番号、オブジェクト名を使用
GObject name = LayerName!ObjectName; // ページをアクティブにしてレイヤ名、オブジェクト名を使用
GObject name = LayerIndex!ObjectName; // ページをアクティブにしてレイヤ番号、オブジェクト名を使用
GObject name = ObjectName; // ページ、レイヤをアクティブにしてオブジェクト名を使用
既存のオブジェクトとまだ作成されていないオブジェクトの両方に対して GObject 変数を宣言できます。
例えば、
//ここではGObjectを宣言してそのグラフィックオブジェクトを作成します win -t plot; // グラフウィンドウを作成 // ‘line1’に接続された myLine という名前の GObject を宣言 GObject myLine = line1; //ここでオブジェクトを作成します(リストoには'line1'が表示されます) draw -n myLine -lm {1,2,3,4}; win -t plot; // 新しいグラフウィンドウを作成 // myLineがアクティブでない異なるグラフにあったとしても、 // GObject名を使ってまだそれを制御することができます myLine.X += 2; // Move the line label -r myLine; //オブジェクトを削除 // 多くの場合、グラフィック オブジェクトは既に存在します GObject leg = legend; // 凡例オブジェクトに紐づける leg.fsize = 28; // フォントサイズを28に設定 leg.color = color(blue); // テキストの色を青に leg.background = 0; // 周囲のボックスをオフにする
Note:元のグラフをアクティブにしたlist o には、物理的なオブジェクト名であるline1が表示されますが、プログラミングの構成要素であるmyLineは表示されません。
これらのオブジェクトの一般的なプロパティを以下に示します。すべてのプロパティがすべてのオブジェクトに適用されるわけではありません。例えば、テキストプロパティは線オブジェクトには適用されません。
[winName!]objName.property = value;
または
this.property = value;
![]() | objectName.=を実行するとほぼすべてのオブジェクトのプロパティを見ることができます。 |
プロパティ | アクセス | 説明 |
---|---|---|
align | 読み込み/書き込み 数値 |
2D グラフの凡例オブジェクト (オブジェクト名 = Legend) にのみ適用されます。凡例項目を複数の列にドラッグするときに、各列を整列するかどうかを制御します。0= 整列しない、 1= 各列で凡例項目を整列する(Origin 2015 SR0) |
arrowBeginLength | 読み込み/書き込み 数値 |
ポイントサイズの矢印の開始長さ |
arrowBeginShape | 読み込み/書き込み 数値 |
オブジェクトコントロールダイアログボックスのドロップダウンリストの位置による矢印の開始形状:0=なし、1=塗りつぶし、2=シェブロン、など |
arrowBeginWidth | 読み込み/書き込み 数値 |
ポイントサイズの矢印の開始幅 |
arrowEndLength | 読み込み/書き込み 数値 |
ポイントサイズの矢印の終了長さ |
arrowEndShape | 読み込み/書き込み 数値 |
オブジェクトコントロールダイアログボックスのドロップダウンリストの位置による矢印の終了形状:0=なし、1=塗りつぶし、2=シェブロン、など |
arrowEndWidth | 読み込み/書き込み 数値 |
ポイントサイズの矢印の終了幅 |
arrowPosition | 読み込み/書き込み 数値 |
折れ線やフリーハンドオブジェクトの各線分に対する矢印の表示を制御します。
0 = 矢印なし Note: arrowBeginShape と arrowEndShape はセットで使う必要があります。 |
attach | 読み込み/書き込み 数値 |
接続先:
0= レイヤ |
attach$ | 読み取り専用 文字列 |
オブジェクトがページに接続されている場合のページ名そうでなければ、[PageName]LayerName!の形式でレイヤ名を返します Origin 8.5 SR0 |
auto | 読み込み/書き込み 数値 |
プロパティの変更後に自動的に再描画: 0= 無効、1= 有効 |
background | 読み込み/書き込み 数値 |
オブジェクトの背景を次のように制御します: 0= 背景なし、1= 黒線、2= 影、3= ダークマーブル、4= 白地、5= 黒地 |
borderColor | 読み込み/書き込み 数値 |
LabTalk の色リストからカラーインデックスとして書き込まれたり読み取られたりするオブジェクトの境界線の色また、名前(LT List of Colorsのみ)、HTMLカラーコード、RGB値を使って、Color関数でオブジェクトに色を割り当てる(例:text.bordercolor=color("#2F1BE3"))こともできます。 |
clip | 読み込み/書き込み 数値 |
レイヤに関連付けられたグラフィックオブジェクトの表示が、レイヤの枠でプロットを切り取る設定に従うかどうかを決定します。0(デフォルト)=オブジェクトをレイヤ枠で切り取らない、1=枠でプロットを切り取る設定に従い、プロットの切り取りが有効な場合はレイヤフレーム外にあるオブジェクトを切り取る(非表示にする)。 |
color | 読み込み/書き込み 数値 |
線、テキスト、縁のカラーインデックス番号name.color=color(red);ようにColor関数を使用します。 |
crop$ | 読み込み/書き込み 文字列 |
グラフ上のイメージオブジェクトを切り取る
gr.Crop$=left top right bottom |
dx dy |
読み込み/書き込み 数値 |
軸の単位の幅と高さ |
direction | 読み込み/書き込み 数値 |
グラフィックオブジェクトのラインを水平方向/垂直方向にどのようにストレッチ/スパンするかコントロールします。
0 = なし |
enable | 読み込み/書き込み 数値 |
オブジェクトのホットスポットを有効にする:0 = 無効、1 = 有効 |
event | 読み取り専用 数値 |
オブジェクトのスクリプト実行のトリガーとなるアクション。0 = なし、1 = ボタンアップ、2 = 移動、3 = サイズ変更、4 = 移動/サイズ変更、5 = 再描画、6 = リアルタイム、7 = ウィンドウオープン、8 = ウィンドウクローズ、9 = ウィンドウアクティブ、10 = ウィンドウ非アクティブ、11 = 新規選択、12 = 保存前、13 = 軸の再スケール、14 = 全イベント、15 = マスクの変更、16 = データの変更。 |
fillColor | 読み込み/書き込み 数値 |
LabTalk の色リストからカラーインデックスとして書き込まれたり読み取られたりするオブジェクトの塗りつぶしの色また、名前(LT List of Colorsのみ)、HTMLカラーコード、RGB値を使って、Color関数でオブジェクトに色を割り当てる(例:text.bordercolor=color("#2F1BE3"))こともできます。 |
font | 読み込み/書き込み 数値 |
テキストラベルフォントインデックス番号name.font = font(arial);'のようにFont関数を使用します。 |
fSize | 読み込み/書き込み 数値 |
テキストラベルフォントサイズ |
getXY | 読み取り専用 数値 |
オブジェクトからXYの値をデータセットにコピー |
height | 読み取り専用 数値 |
レイヤー座標単位での高さ |
hGap | 読み込み/書き込み 数値 |
2Dグラフの凡例オブジェクト (オブジェクト名 = Legend) にのみ適用されます。各凡例入力列の水平方向の間隔を、フォントの高さに対する割合で指定する。(Origin 2015 SR0) |
hMove | 読み込み/書き込み 数値 |
水平移動:0=無効、1=有効 |
index | 読み取り専用 数値 |
UIMオブジェクトのような複数のアイテムから構成されるオブジェクトにのみ適用オブジェクト内のどの項目がWindowsのアクションの影響を受けたかを示します。 |
keepInside | 読み込み/書き込み 数値 |
オブジェクトの移動をレイヤフレーム内に制限する。0 = 無効、1 = 有効 |
left | 読み込み/書き込み 数値 |
物理座標で表示されるオブジェクトの左位置。 |
lineType | 読み込み/書き込み 数値 |
線と矢印のオブジェクトの線種。1 = 実線、2 = 点線、3 = 点線 |
lineWidth | 読み込み/書き込み 数値 |
線または矢印オブジェクトの線幅 |
link | 読み込み/書き込み 数値 |
置換レベル:0 = リンクなし、1 = リンクして再帰的に解決、2 = リンクして最初のレベルのみ解決、3 = リンクして最大2レベルまで解決(Origin 2015 SR1) |
margin.unit | 読み込み/書き込み 数値 |
これはグラフィックオブジェクトがテキストオブジェクトの場合にのみ有効です。テキストとその境界線の間の余白を定義する単位を指定します。1 = フォントの高さのパーセント (デフォルト)。 0 = テキスト全体の高さのパーセント(Origin 2015 SR0) |
margin.left margin.right margin.top margin.bottom |
読み込み/書き込み 数値 |
これらはグラフィックオブジェクトがテキストオブジェクトの場合にのみ有効です。テキストとそのボーダーの間の左/右/上/下マージンを指定する。値はテキストマージン単位に対するパーセンテージで、単位はmargin.unitプロパティで定義される。(Origin 2015 SR0) |
mouse | 読み込み/書き込み 数値 |
オブジェクトへのマウスアクセス:0 = 無効、1 = 有効。 |
name$ | 書き込み専用 文字列 |
オブジェクト名 |
pageRect$ | 読み込み/書き込み 文字列 |
RECTの位置を単位(pixelなど)で取得/設定します。 |
path$ | 読み込み/書き込み 文字列 |
グラフレイヤに挿入されたイメージオブジェクトでのみ利用可能です。ローカルディスクもしくはWebからどちらを利用して挿入しているかに関わらず、画像のソースのパスを返します。
例: |
pointCount | 読み込み/書き込み 数値 |
ポリオブジェクト(多角形、折れ線)の点数 |
realTime | 読み込み/書き込み 数値 |
テキストラベルメッセージの置換表記をリアルタイムに更新する。0 = 無効、1 = 有効。 |
revVideo | 読み込み/書き込み 数値 |
ビデオ表示の反転:0 = 無効、1 = 有効 |
roi | 読み込み/書き込み 数値 |
オブジェクトがROIであるかどうか:0 = ROIでない、1 = ROI(Origin 2022) |
rotate | 読み込み/書き込み 数値 |
テキストラベルやSVG画像の回転を度で表す。 |
savedata | 読み込み/書き込み 数値 |
グラフレイヤに挿入されたイメージオブジェクトでのみ利用可能です。”リンクされた”イメージオブジェクトを取得/設定します。
0 = ファイルにリンクする |
script | 読み込み/書き込み 数値 |
ラベル制御のダイアログボックスにあるドロップダウンリストから~のあとでスクリプトを実行モードのインデックス番号 |
setXY | 書き込み専用 数値 |
xy値をデータセットからオブジェクトにコピー |
show | 読み込み/書き込み 数値 |
オブジェクトの表示。1 = 可視、0 = 非表示非表示オブジェクトは選択できません。 |
shadowColor | 読み込み/書き込み 数値 |
LabTalkの色リストからカラーインデックスとして書き込まれたり読み取られたりするテキストオブジェクトの影の色また、名前(LT List of Colorsのみ)、HTMLカラーコード、RGB値を使って、Color関数でオブジェクトに色を割り当てる(例:text.bordercolor=color("#2F1BE3"))こともできます。 |
shadowWidth | 読み込み/書き込み 数値 |
ポイントサイズのテキストオブジェクトの影の幅 |
states | 読み込み/書き込み 数値 |
オブジェクトの編集状態を制御このプロパティはビット指向であるため、値を追加することができます。
例:polygon.states = 3でpolygonというオブジェクトのリサイズと回転を無効にする。 0=全ての制御を有効にする |
tableStyle | 読み込み/書き込み* 数値 |
テーブルヘッダ、フレーム、およびグリッドの表示を制御それぞれ1つしか選択できない(つまり、=0と=1の両方を設定することはできず、代わりに=2が設定される)
0 = 列ヘッダ 5 = 上下フレーム 10 = ヘッダ区切り文字 * ヘッダスタイルのみ読み込み可能ですのでご注意ください。すべて(ヘッダ、フレーム、グリッド)書くことができます。数値は加算されません。 |
text$ | 読み込み/書き込み 文字列 |
テキストラベルで表示されるメッセージ |
top | 読み込み/書き込み 数値 |
物理座標で表示されるオブジェクトの上位置。 |
transparency | 読み込み/書き込み 数値 |
オブジェクトの透過率を設定します。矩形、円、多角形、領域オブジェクトにのみ有効です。(Origin 9.0 SR0)
rect.transparency = 50; //透過率を50%に設定 |
type | 読み取り専用 数値 |
グラフィックオブジェクトの型を返します。(Origin 9.0 SR1)
0 = テキスト |
type$ | 読み取り専用 文字列 |
グラフィックオブジェクトの型文字列を返します。(Origin 2015 SR0) |
vgap | 読み込み/書き込み 数値 |
2Dグラフの凡例オブジェクト (オブジェクト名 = Legend) にのみ適用されます。各凡例入力行の垂直方向の間隔を、フォントの高さに対する割合で指定する。(Origin 2015 SR0) |
vMove | 読み込み/書き込み 数値 |
垂直移動:0=無効、1=有効 |
whiteout | 読み込み/書き込み 数値 |
テキストオブジェクトの白地を有効にする。0 = 無効、1 = 有効 |
width | 読み取り専用 数値 |
レイヤ座標単位での幅 |
wrap | 読み込み/書き込み 数値 |
オブジェクトのサイズ変更時にテキストの折り返しを有効にする:0 = 無効、1 = 有効 (Origin 2015 SR0) |
wrapwidth | 読み込み/書き込み 数値 |
オブジェクト内のテキストの折り返し幅を指定する。wrap を1としたときのみ有効(Origin 2015 SR0) |
x y |
読み込み/書き込み 数値 |
オブジェクトの中央の軸XY座標
Notes:
|
x# y# |
読み込み/書き込み 数値 |
x#とy#はオブジェクトの#番目の点の軸位置です。直線と矢印は2点、長方形と円は4点、その他の物体は多くの点を持つことがあります。
|
legend.background = 1; legend.y = layer1.y.to - legend.dy / 2; legend.x = layer1.x.from + legend.dx / 2;
// まず最初にグラフ上に円オブジェクトを作成します // 次にそれを下記2行のスクリプトで”circle1”という名前に変更します circle1.color = 1; // 黒の境界線 circle1.fillcolor = color(yellow); // 黄色で塗りつぶし
// bmp.type$ は ”Embedded Graph: [GraphName]” を返します // GraphName はソースグラフの実際の名前です // 次のスクリプトは bmp.type$ からGraphNameを取りだすときに使います。 %A = %[%(bmp.type$), >18]; ty %[%A, %[%A]];// GraphNameの値が出力されます
Note: 部分文字列の表記は GraphNameを取り出す際に使います。
polyline.getXY([Book1]1!A, [Book1]1!B);
draw -n Rect1 -b; // Rect1オブジェクトを描きます Rect1.setXY(Book1_A, Book1_B); // Book1_A(X),Book1_B(Y)に座標を代入します
win -t plot; string strInitPath$=system.path.program$+"Samples\Image Processing and Analysis"; dlgfile g:="*.jpg" m:=1 init:=strInitPath$; int nn=fname.GetNumTokens(CRLF); int cleft=50, ctop=30, cright=150, cbottom=130; for(int ii = 1; ii <= nn; ii++) { string strf$ = fname.GetToken(ii, CRLF)$; string strGr$; insertImg2g fname:= strf$ type:=IMG xyp:=page oname:=strGr$; GObject gr = strGr$; gr.Crop$="$(cleft) $(ctop) $(cright) $(cbottom)"; //切り取り int nx = ii*page.width/5; int ny = 1000; gr.PageRect$="$(nx) $(ny) $(nx+600) $(ny + 600)"; }
選択したグラフィックオブジェクトの基本的な特性を、構文を使って制御することができます。
s.property = value;
下記リストが利用可能なプロパティです。
プロパティ | アクセス | 説明 |
---|---|---|
FONT | 読み込み/書き込み 数値 |
選択したテキストオブジェクトのフォントサイズname.font = font(arial); のようにFont関数を使用します。 |
SIZE | 読み込み/書き込み 数値 |
選択したオブジェクトのサイズ |
BOLD | 読み込み/書き込み 数値 |
選択したテキストオブジェクトの太字設定 |
ANGLE | 読み込み/書き込み 数値 |
選択したオブジェクトの回転角度 |
例えば下記のように使えます。
s.size = 50;
これを使用してテキストオブジェクトが選択された場合のサイズを制御します。.
これらのオブジェクトの一般的なメソッドを以下に示します。すべてのメソッドがすべてのオブジェクトに適用されるわけではありません。例えば、addtextメソッドは線オブジェクトには適用されません。
[winName!]objName.Method(arguments)
または
this.Method(argument)
![]() | objectName.=を実行するとほぼすべてのオブジェクトのメソッドを見ることができます。 |
メソッド | 説明 |
---|---|
addText(string) | テキストラベルに文字列を追加する。変更を表示するには、画面の更新が必要です。 |
click(n) | オブジェクトのn番目のホットスポットをクリックすることをシミュレートします。UIMオブジェクトの特徴として、複数のホットスポットがあります。 |
crop(left top right bottom) | グラフ上のイメージオブジェクトを切り出します |
draw(option) | オブジェクトを再描画します。 option = local : オブジェクトのホットスポットを再描画 |
run() | objectに含まれるスクリプトを実行します。 |
// 文字列変数の宣言と値の代入 string stringVariable$ = " (modified)"; // 文字列レジスタ(A)に値を代入 // 新しい行がどのように値に含まれているかに注意してください %A = " Final"; // 既存の'text'という名前のオブジェクトに様々なテキストを追加 text.addtext("%(stringVariable$)"); text.addtext("%(CRLF)Data passes all tests"); text.addtext(A); // 文字列レジスタに引用符や%は不要です // そして強制的にリフレッシュします text.draw();
Note:%(CRLF)は、宣言文字列またはリテラル文字列にDOS改行(キャリッジリターン、ラインフィード)を追加する置換記法です。
object.click(n);
object.draw(option);
object.run();
string strInitPath$=system.path.program$+"Samples\Image Processing and Analysis"; dlgfile g:="*.jpg" m:=1 init:=strInitPath$; int nn=fname.GetNumTokens(CRLF); int cleft=50, ctop=30, cright=150, cbottom=130; for(int ii = 1; ii <= nn; ii++) { string strf$ = fname.GetToken(ii, CRLF)$; string strGr$; insertImg2g fname:= strf$ type:=IMG xyp:=page oname:=strGr$; GObject gr = strGr$; if(gr.Crop($(cleft) $(ctop) $(cright) $(cbottom)) == 0) { int nx = ii*page.width/5; int ny = 1000; gr.PageRect$="$(nx) $(ny) $(nx+600) $(ny + 600)"; } }
グラフィックオブジェクトは、接続メソッドを使用して接続することができ、接続の動作を制御するさまざまなオプションとオプションの接続線が表示されます。
なお、Origin 2022bでは、ターゲットテキストオブジェクトとソース描画オブジェクトを接続するための”相対位置”メソッドが追加されました。このメソッドは、以前の”接続”メソッドに追加されるものですが、”相対位置”には、dwRigid(>= 17)、nTargetRefPt(= 0)、nSourceRefPt(>= 26)の特定の値が必要となることに注意してください。URPC=1(デフォルト)の場合、GUIオブジェクトの距離計測とアスタリスクブラケット(プロット操作・オブジェクト作成ツールバー)がこのメソッドで追加されます。
sourceObject.Connect(targetObject, bVisible, dwRigid, nTargetRefPt, nSourceRefPt)
名前 | 説明 |
---|---|
targetObject |
接続先となるオブジェクト。 これはオブジェクト名、GObject変数、データセット名/プロット範囲です。 |
bVisible |
ゼロでない場合、コネクタは表示され、それ以外の場合、変数は非表示になります。 |
dwRigid |
コネクタの強固さ以下のいずれかの値に設定します。
このパラメータを指定しない場合、デフォルトの1が使用されます。 |
nTargetRefPt |
ターゲットオブジェクトの基準点。Valueは以下のいずれかです。
|
nSourceRefPt |
接続されるオブジェクトの基準点。標準的な接続メソッドの場合、許容される値についてはnTargetRefPtパラメータを参照してください。相対位置方式の場合、値は以下のいずれかです。
|
// GObject 変数を使用 // 2つのレイヤを持つグラフをアクティブに // それぞれのレイヤに同じ名前のテキストオブジェクトがあります GObject aa = [Graph1]1!text; GObject bb = [Graph1]2!text; bb.Connect(aa,1);
// オブジェクト名を使用 // グラフ上で"myTextLabel"という名前のテキストオブジェクトを作成 // さらに "myLine"という名前の線オブジェクトを作成 myTextLabel.Connect(myLine,0);
// GObject 変数と オブジェクト名を使用 // グラフのレイヤ1で "myTextLabel"という名前のテキストオブジェクトを作成 // さらに "myLine"という名前の線オブジェクトを作成 GObject aa = [Graph1]1!myTextLabel; aa.Connect(myLine,0);
// レイヤ1に線プロットを作成、グラフをアクティブにし、 //テキストオブジェクトを追加 GObject aa = 1!text; range rr = 1!1; aa.Connect(rr,1,1,3);
// 相対位置メソッド // rect "と "text "という2つのオブジェクトがあるとして // テキストを矩形の左下隅に貼り付ける rect.connect(text, 0, 17, 0, 26);
1つのグラフィックオブジェクトは、その接続されたすべてのグラフィックオブジェクトをこのメソッドで取得することができます。
label コマンドも参照してください。
graphicObject.GetConnected(stringArray, option=0)
接続されているグラフィックオブジェクトの数を返します。接続されたグラフィックオブジェクトがない場合は、0を返します。
名前 | 説明 |
---|---|
stringArray |
接続されたすべてのグラフィックオブジェクトの名前を格納するために使用される文字列配列。 |
option |
0 の場合、直接接続されたグラフィックオブジェクトのみを取得します。 1つの場合、グラフィックオブジェクトを再帰的に取得します。 |
// GObject 変数を使用 GObject go = [Graph1]1!text; StringArray sa; numObjs = go.GetConnected(sa);
// 再帰的にオブジェクト名を使用 StringArray sa; numObjs = myLine.GetConnected(sa, 1);
// 接続されたグラフィックオブジェクトの名前を取得する StringArray sa; numObjs = myLine.GetConnected(sa,1); if(numObjs>0) //接続されたオブジェクトがある場合 { for(int iObj=1; iObj<=numObjs; iObj++) //接続されたオブジェクト名を出力 { string str$ = sa.GetAt(iObj)$; // 名前を取得 type %(str$); // 型名 } }
Graph2!Arrow.hmove = 0;
Button.x =; Button.y =;
Graph1!mode.run();
Data2!WksData.draw(global);