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

掲示板

トップページ > 過去ログ > 記事閲覧
線の点上にあるシンボルの取得について
日時: 2008/07/15 17:35
名前: GEOSISサポート受付

線の点上にシンボルが置いてあるデータがあり、シンボルが置いてある線のELを取得したいのですが速くできる方法はあるでしょうか?

現在はシンボルの点の座標に0.001+-した枠の中間ファイルを作成し、Fggetfigさせています。
シンボルが数百個あるので時間もかかり、あまりいい方法ではないかと思い、質問させていただきました。
処理が速くなるならどんな方法でもかまいません。よろしくお願いします。

※データベースにシンボルのELとx,y座標があるのでそこからxとyを取得しています。
中間ファイルはx,y座標に0.001を+-して4点作成しています。
データベースからxy座標をもってきて線を検索するより、シンボルをELと図面名で検索して中間ファイルを取得してその枠で線を検索したほうが速いでしょうか?


例:
x=シンボルのx座標
y=シンボルのy座標
georet = gexec("fgcurdb", "pnt0", "c", "! ! !", x + 0.001, y + 0.001) georet = gexec("fgcurdb", "pnt0", "a", "! ! !", x + 0.001, y - 0.001) georet = gexec("fgcurdb", "pnt0", "a", "! ! !", x - 0.001, y - 0.001) georet = gexec("fgcurdb", "pnt0", "a", "! ! !", x - 0.001, y + 0.001) georet = gexec("fggetfig", "pnt0", "kpnt", "point", "l") If georet = 0 Then 
georet = gexec("fggetinfo", "kpnt", "szel")
el=geosis.returnstr1
end if

Page: 1 |

Re: 線の点上にあるシンボルの取得について ( No.1 )
日時: 2008/07/15 17:35
名前: NCG

現在の方法以外に、以下の方法が考えられます。
その後の流れなどにより、どの方法が一番速いかは、一概には言えない状態です。
(実際に各方法で比較を行う必要があります。)
※シンボルのELと線のELの関連が不要であれば、方法1より方法2の方が処理速度は速くなります。

■方法1
現在実行されている流れのままでコマンドをFGGETFIG→FGGETFIGPに変更します。
※FGGETFIGPは座標一致で図形を取得するため、FGCURDBで格納する座標はシンボルの座標のみとなります。

■方法2
シンボルがある線をまとめて取得します。
※ただし、線とシンボルの関連性が必要な場合は別途取得する必要があります。

@シンボルの点を格納した中間ファイルを作成
  FGEXCREATE
    ↓
  FGEXWRITE(シンボルの数分実行)
    ↓
  FGEXCLOSE

A@で作成した中間ファイルで線を取得
  FGGETFIGP (座標値が一致するデータを取得)

■方法3
線の点座標値が属性データとして存在している場合は、シンボルの座標値と線の点座標値をSQLで抽出することが可能です。

ご検討くださいますようお願い申し上げます。
Re: 線の点上にあるシンボルの取得について ( No.2 )
日時: 2008/07/15 17:36
名前: GEOSISサポート受付

ご回答ありがとうございます。
早速方法2でやってみたいと思います。

Page: 1 |



| 利用規約 |

(C) 2024 AS Locus INC.