akichin
Full メンバー
オフライン
投稿: 32
I'm a llama!
|
|
アノテート矩形の取得方法
« 投稿日: 2004/01/23 - 16:44:43 » |
|
SolidWorks2003・2004でAPIによるアドインを作成しているのですが、図面上で寸法(DisplayDimension)・注記(Note)・幾何公差(Gtol)の表示の前後に、Noteを作成・表示させようとしています。 色々試しましたが、現在はDisplayData::GetTextPositionAtIndexをindex=0で使用して先頭文字の座標を取得し、この座標を基準にして表示が被らないような前方位置にNoteを作成しています。 Annotation(DisplayDimension・Note・Gtol個々でも良いです)の矩形(左下・右上)を取得する方法は無いのでしょうか?
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:アノテート矩形の取得方法
« 返信 #1 投稿日: 2004/01/23 - 17:07:54 » |
|
Annotation::GetPosition ではどうでしょうか? (APIヘルプだと、矩形の左上の座標を取得するみたいですが。) 試していないので、どんな動きをするか不明ですが...。
|
|
|
|
webmaster 管理人
議長 カタマリの王様!?
オフライン
投稿: 649
|
|
Re:アノテート矩形の取得方法
« 返信 #2 投稿日: 2004/01/23 - 17:08:55 » |
|
使ったことがないので外しているかもしれませんが、APIヘルプのキーワードにGetTextPointと入力して出てくる Note::GetTextPoint と Gtol::GetTextPoint はどうでしょうか。
あ、かぶった。 ちょっと違うけど。
|
webmaster (仕事のカタマリ管理人)
|
|
|
akichin
Full メンバー
オフライン
投稿: 32
I'm a llama!
|
|
Re:アノテート矩形の取得方法
« 返信 #3 投稿日: 2004/01/24 - 18:39:15 » |
|
Makoronさん、webmasterさん、早速のレスありがとうございます。私事ですが、新年会から休日に入ってしまったので、お返事が遅れてしまいました。
Makoronさん、Annotation::GetPositionについては知っていて、DisplayDataを使用する前には実はこれを使用していたのですが、この関数は種類(DisplayDimension・Note・Gtol)によって返す位置が違う(確か中心座標を返す種類もあったと思いますが…)為、それぞれに合わせた座標変換を行わなくてはならないので、使用を止めていました。基準座標を取得した後も、表示が被らないように対象Annotationの前後に座標を変換しなくてならないので、基準座標はできるだけ簡単に、出来ることなら斧種類に対しても同じ位置を返す方法(関数)を使用したいのです。
webmasterさん、::GetTextPointについては、もしかして使用したことが無いかもしれませんが、寸法(DisplayDimension・Dimension)にも同様の関数があるのですか?またどのような値を返してくれるのでしょうか?休日で家にいるのでSolidWorksやAPIヘルプが見れないんです。確認は週明けになってしまいます。期待してます。
図面上で、アイテムの上にマウスを持って行った時に、赤い枠が表示されますが、出来たらこの矩形を取得したいんです。寸法の場合は、表示させた公差も含めてくれるので理想的です。無いのかな…。
|
|
|
|
akichin
Full メンバー
オフライン
投稿: 32
I'm a llama!
|
|
Re:アノテート矩形の取得方法
« 返信 #4 投稿日: 2004/01/26 - 11:09:28 » |
|
Annotation::GetPositionの再確認と、::GetTextPointの動作確認をしてみました。
Makoronさん、Annotation::GetPositionについては、やはり注記・幾何公差がテキストボックスの左上の座標を返し、寸法についてはヘルプには乗っていないのですが、使用するとエラー(retval = FALSE)にはならずに中心座標を返しているようです。DisplayDataを使用した場合とは取得する場所の違いがありますが、寸法の場合の動作保証が曖昧で、中心座標から変換を掛けなければならない分大変なので、やはり使用は考えられません。
webmasterさん、::GetTextPointについては、寸法(DisplayDimension・Dimension)には無いようです。幾何公差については試してませんが、注記については左上の座標を返し、DisplayDataを使用した場合と結果的には変わりません。寸法にも同様の関数があればスマートな分良いのですが、やはり使用は考えられません。
またDisplayDataを使用した場合の欠点である、右座標(右上もしくは右下)を取得できない限り変更は考えられないと思います。以前も記載しましたが、図面上で、アイテムの上にマウスを持って行った時に表示される、赤い枠の矩形を取得できないものでしょうか?
|
|
|
|
akichin
Full メンバー
オフライン
投稿: 32
I'm a llama!
|
|
Re:アノテート矩形の取得方法
« 返信 #5 投稿日: 2004/01/27 - 13:21:22 » |
|
アイテムの上にマウスを持って行った時に表示される、赤い枠の矩形の取得方法は、「SolidWorks Support」にも問い合わせていたのですが、「現状では、そのようなメソッド、プロパティは用意されておりません。」との回答が帰ってきました。 残念ですが、現行で取得している左下(左上)座標を基に、計算を駆使してアノテートの後方にも注記を作成してみます。 何か新情報がありましたら、教えて下さい。宜しくお願いします。
|
|
|
|