ようこそゲストさん | ログイン |

掲示板

トップページ > 過去ログ > 記事閲覧
点の追加について
日時: 2008/05/02 13:04
名前: GEOSISサポート受付

「Geosis Ver7.0003 VB2005 geoDLL使用可能」
(FGBUNK)で線やポリゴンに点を追加するコードを検討しています。
追加した点をそのまま移動して配置したいのですが、(FGBUNK)の後そのまま(FGGETCUR)でカレント(追加レコード?)を移動すると移動中は元図形の追加点位置の次の点が移動する画面になり、配置後は追加点が移動先に配置されます。
又、レコードを前点に移動してそのカレントを移動すると、追加した前の点が移動する画面になり、配置後は追加した点が移動先に配置されます。
線上に追加した点を、両側の元図形の点はそのままで移動するにはどのようにしたら良いのかご指導ください。

Page: 1 |

Re: 点の追加について ( No.1 )
日時: 2008/05/02 13:05
名前: NCG

問い合わせの件ですが、コマンドFGBUNKのパラメータ4に中間ファイルを指定しますと、追加された点が中間ファイルに格納されます。
格納された中間ファイルをFGMOVのコマンドに使用することで、追加された点を移動することができます。
以下サンプル
----------------------------------------------------------
//ALLTMP :点追加対象の図形中間ファイル
//WTMP :点を追加する範囲の中間ファイル
//BUNKTNP :追加された点を格納する中間ファイル(FGBUNK成功時)

if ( 0 != Gexec(GeoMap,"FGBUNK","ALLTMP WTMP ON BUNKTMP")) {} else if ( 0 != Gexec(GeoMap,"FGMOV","BUNKTMP PNT")) {} else {
MessageBox.Show("移動しました。");
}
Re: 点の追加について ( No.2 )
日時: 2008/05/02 13:22
名前: GEOSISサポート受付

> ----------------------------------------------------------
> //ALLTMP :点追加対象の図形中間ファイル
> //WTMP :点を追加する範囲の中間ファイル
> //BUNKTNP :追加された点を格納する中間ファイル(FGBUNK成功時)
>
> if ( 0 != Gexec(GeoMap,"FGBUNK","ALLTMP WTMP ON BUNKTMP")) {} else if
> ( 0 != Gexec(GeoMap,"FGMOV","BUNKTMP PNT")) {} else {
> MessageBox.Show("移動しました。");
> }
> ----------------------------------------------------------
↓VBに変更
georet = gexec("FGBUNK", "aTMP wTMP ON mTMP")  '構成点を追加
georet = gexec("FGMOV", "mTMP PNT ST") '移動
で良いと思うのですが、、、
質問の前に試して見たのですが、パラメータ2の「点を追加する範囲の中間ファイル」の意味が良くわかりません。
この中間ファイルはどのような内容で作成すればよいのでしょうか?マウスの左範囲(MSEVTL)で試しましたが、ダメだったと思います。
ついでで済みませんが、マウス指示での「引き出し線」の登録についてお願いします。
georet = gexec("FGCURDB", "annTMP C hEL ! ! 0 0 ANN 5 !", .Lay, "! ! あいう ! CL")
georet = gexec("FGPULL", "annTMP 5 ? ? ?")

次へ続く↓
Re: 点の追加について ( No.3 )
日時: 2008/05/02 13:06
名前: GEOSISサポート受付

@引き出しを作成するには?位置の値をどのように定義したらよいのでしょうか?
A(FGPULL)で作成される引出しは、(FGPULLMOVE)で移動できるでしょうか?
B文字の配置は、左45°と右45°では原点を自動に設定してくれるのでしょうか?
CDB図形として登録した場合、線のプロパティや文字のプロパティは、個々に変更するという解釈で良いでしょうか?

georet = gexec("FGPULL", "annTMP 5 TMP DOS")
で試したのですが、一瞬表示するだけで図形登録できません
Re: 点の追加について ( No.4 )
日時: 2008/05/02 13:23
名前: NCG

点の追加について以下サンプルコードを記載いたしますのでご確認ください。
処理の流れのイメージがつかめると思います。

トレランス枠内に存在する図形に点を追加するサンプルコードです。
この場合"点を追加する範囲の中間ファイル"はトレランス枠になります。

以下サンプルコード
--------------------------------------------------------------------------------
//グループ999、レイヤ999の図形(ポリゴン・ライン)に点を追加し追加した点の移動を行います。

Gexec(GeoMap,"SETDEFAULTGRP","999"); //デフォルトグループ設定
Gexec(GeoMap,"SAVEGRP","SAVEGRP"); //グループ定義を保存
Gexec(GeoMap,"SAVELAY","SAVELAY"); //レイヤ定義を保存
Gexec(GeoMap,"SETSGRP","OFF"); //検索グループ設定
Gexec(GeoMap,"SETSGRP","ON ! ! 999");
Gexec(GeoMap,"SETSLAY","OFF"); //検索レイヤ設定
Gexec(GeoMap,"SETSLAY","ON ! ! 999");

次へ続く↓
Re: 点の追加について ( No.5 )
日時: 2008/05/02 13:07
名前: NCG

if ( 0 != Gexec(GeoMap,"FGO2T","TMP 5")) {} //表示画面枠の中間ファイル作成
else if ( 0 != Gexec(GeoMap,"FGGETFIG","TMP GTMP GRP PL")) //表示画面に図形があるか確認
{ MessageBox.Show("画面内にデータが見つかりません。");}
else
{
if ( 0 != Gexec(GeoMap,"FGO2T","WTMP 7 2")) {} //点を追加する範囲の中間ファイル作成 WTMP
else if ( 0 != Gexec(GeoMap,"FGGETFIG","WTMP GTMP LIN PL")) // 範囲内に図形があるか確認
{ MessageBox.Show("データが見つかりません。"); }
else if ( 0 != Gexec(GeoMap,"FGGETCUR","GTMP CTMP")) {} //図形カレントレコードを取得
else if ( 0 != Gexec(GeoMap,"FGGTOA","CTMP ALLTMP")) {} //図形中間ファイルを全点状態に設定
else if ( 0 != Gexec(GeoMap,"FGBUNK","ALLTMP WTMP ON BUNKTMP")) {} //点の追加処理実行 WTMP
else if ( 0 != Gexec(GeoMap,"FGMOV","BUNKTMP PNT")) {} //追加した点を移動
else
{
MessageBox.Show("移動しました。");
}
}
Gexec(GeoMap,"RESTOREGRP","SAVEGRP"); //グループ定義をレストア
Gexec(GeoMap,"RESTORELAY","SAVELAY"); //レイヤ定義をレストア
Gexec(GeoMap,"DSPREFRESH","CLR); //再描画

Page: 1 |



| 利用規約 |

(C) 2024 AS Locus INC.