Unofficial CATIA User Forum


マクロでV5の言語環境を判断するには?

 
新しいトピックを投稿   トピックに返信    Unofficial CATIA User Forum フォーラム一覧 -> CAAテクニカル
投稿者 メッセージ
ここな



登録日: 2003年12月 19日
記事: 1912
所在地: JAPAN

記事日時: 2006.12.19 (火) 11:59    記事の件名: マクロでV5の言語環境を判断するには? 引用付きで返信

タイトルのとおりですが、
言語環境を判断する良い方法を探しています。

日本語と英語だけしか使わないという条件で、
出来るだけ軽く、簡易的に判定する方法の
作りかけがあるのですが、見てのとおり不十分です。

何か良い判断材料はないでしょうか?

Code:
    sText = CATIA.StatusBar
    lLen = Len(sText)
    lLenB = LenB(StrConv(sText, vbFromUnicode))
   
    If lLen = 0 Then
        MsgBox "判断できません"
    ElseIf lLenB = lLen Then
        MsgBox "半角だけだから、たぶん英語環境"
    Else
        MsgBox "半角全角混在だから、たぶん日本語環境"
    End If

_________________
ブログもよろしくね。 /admin's blog
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信 メールを送信 投稿者のウェブサイトに移動 MSN メッセンジャー
y4yama



登録日: 2005年1月 07日
記事: 559

記事日時: 2006.12.19 (火) 14:51    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

前にも一度話題が出ていい案がなかったですネ・・・
1.環境変数を(あらかじめ立ち上げ時のbatで)仕込んでおけば、コードでは、一番簡単かと・・・
2.またまた、変ですが・・・StartCommandで、"3Dxビュー/ツリーのスワップ"
とか、何か、WBが無くても影響のないコマンドを実行させてみて、カタカナが通れば日本語、とか・・・
3.Partであれば、"パーツボディ"がカタカナなら日本語とわかると思ったことがあります。でもWB無しのときダメです
Embarassed 決定打・・・なしです
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
ここな



登録日: 2003年12月 19日
記事: 1912
所在地: JAPAN

記事日時: 2006.12.19 (火) 16:24    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

お返事ありがとうございます。

いろいろ試してみました。

まず、汎用性を重視するので、環境変数による準備はNG。
次に、StartCommandによるエラー判定を試しましたが、
エラー時にメッセージボックスが表示されてしまうのでこれもNG。
そして、PartやProductを開いているときは、
必ずステータスバーにメッセージがあるようなので、
最初の全角半角判断で済みそうです。

どうやら問題なのは、
全てのファイルを閉じている状態でステータスバーに何も表示されていないときと、
マクロをバッチモードで動かすとき、みたい。

何か空データ開いて、その中のフィーチャー名で判別するしかないのかな。

_________________
ブログもよろしくね。 /admin's blog
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信 メールを送信 投稿者のウェブサイトに移動 MSN メッセンジャー
y4yama



登録日: 2005年1月 07日
記事: 559

記事日時: 2006.12.20 (水) 08:22    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

>次に、StartCommandによるエラー判定を試しましたが、
>エラー時にメッセージボックスが表示されてしまうのでこれもNG。
そうですネ。on errorにかからないのですね。スミマセン。
ステータスバーにメッセージ・がやはり、有望ですね(ときどき英語だけの表示が見えるけど)

以下、忘備録に近いですが
4.タイトルバーの「CATIA V5 ・・」を区別する・・のもいいかもデス
environと同じ事前設定だと、やはりダメですか。
だったら、CATIA立ち上げ時に一度は、ユーザにJP/Enを入れさせて、これを CATIA.Caption
にsetしておけば、他のマクロは、.Captionを判断だけでいいとか・・・(複雑だなぁ・・)
5.CATIAのウィンドウがひらくという条件なら、ツールバーのボタンのキャプションをWin32APIで
取得できます。新規作成・開く などがあれば日本語と。
これ、完璧だと思うんですが、プログラム行数が50行以上になりそうで・・・・
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
ここな



登録日: 2003年12月 19日
記事: 1912
所在地: JAPAN

記事日時: 2006.12.20 (水) 11:26    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

CATIAウィンドウが開かない場合でも対応できる完璧な方法をやっと見つけました。
FrameGeneral.CATSettings
に、その情報が書かれていることを突き止めました。

カスタマイズで言語環境を設定したときに、どのCATSettingsが更新されているか監視し、
さらに、xml出力で中身を確認したところ、
FrameGeneral.xml には、日本語環境の場合、
Code:
<Attribute Name="UserInterfaceLanguage" Type="int" Size="1">
<Value>807</Value>
</Attribute>

という項目があり、これが現行環境を示す番号であることがわかりました。
ちなみに、英語なら、
Code:
<Attribute Name="UserInterfaceLanguage" Type="int" Size="1">
<Value>714</Value>
</Attribute>

デフォルト(システム依存)なら
Code:
<Attribute Name="UserInterfaceLanguage" Type="int" Size="1">
<Value>0</Value>
</Attribute>


この情報を入手するようにすれば、
英語、日本語に限らず、どんな言語環境でも判定できます。
完璧なんですが、ただちょっと、処理工数かかりますね。

サンプルが完成したら、紹介しようと思います。
ありがとうございました。

_________________
ブログもよろしくね。 /admin's blog
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信 メールを送信 投稿者のウェブサイトに移動 MSN メッセンジャー
y4yama



登録日: 2005年1月 07日
記事: 559

記事日時: 2006.12.20 (水) 11:59    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

とても貴重な結果を見せていただき、ありがとうございます Shocked
完璧な方法ですネ!

(さらに忘備録に近いですが、)
6.UWSCで簡単にボタンのキャプションを読込めるので
id1 = GETID("CATIA V5")
for i = 0 to GetItem(id1,ITM_BTN)-1
print ALL_ITEM_LIST[i]
next
これを漢字判断して、ファイル渡しならすぐ使えそう・・・それか、2秒ごとに自動実行とか・・

ども、、お騒がせしました・・・ Embarassed
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
ここな



登録日: 2003年12月 19日
記事: 1912
所在地: JAPAN

記事日時: 2006.12.21 (木) 09:11    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

サンプル完成しました。

こちらです↓
「CATIAの言語環境を調べる」
http://catiauser.net/phpBB/viewtopic.php?t=1126

_________________
ブログもよろしくね。 /admin's blog
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信 メールを送信 投稿者のウェブサイトに移動 MSN メッセンジャー
きゃてぃゆき



登録日: 2006年12月 12日
記事: 31

記事日時: 2008.08.21 (木) 09:24    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

こんにちは

本トピックの5件目のここなさんの記事にある

Quote:
カスタマイズで言語環境を設定したときに、どのCATSettingsが更新されているか監視し、
さらに、xml出力で中身を確認したところ、
FrameGeneral.xml には、日本語環境の場合、


についてですが、CATSettingをxml出力する方法がわかりません Sad
これはCATIAの標準機能なのでしょうか?
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
kantoku



登録日: 2005年12月 02日
記事: 185
所在地: 埼玉

記事日時: 2008.08.21 (木) 10:09    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

こんにちは

こちらを参照していただければ、よろしいのではないでしょうか?

・CATSettingsファイルの中身の確認
http://catiauser.net/phpBB/viewtopic.php?t=399&highlight=CATSetting+%BD%D0%CE%CF

_________________
投稿が多い時は、仕事がないとき・・・
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信 メールを送信
きゃてぃゆき



登録日: 2006年12月 12日
記事: 31

記事日時: 2008.08.21 (木) 10:35    記事の件名: Re: マクロでV5の言語環境を判断するには? 引用付きで返信

こんにちはkantokuさん

早々に御回答いただきありがとうございます。
無事xmlを出力する事が出来ました。
こんな便利な機能があったんですね Shocked

ただし、ここで問題が…。
他の設定に関してはしっかりと出力されているのですが、
肝心の言語環境の部分が下記のように空の状態になってしまいます。
どうしてでしょうか?

Quote:
<Attribute Name="UserInterfaceLanguage" Type="int" Size="0">
</Attribute>
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
特定期間内の記事を表示:   
新しいトピックを投稿   トピックに返信    Unofficial CATIA User Forum フォーラム一覧 -> CAAテクニカル All times are GMT +9:00
Page 1 of 1

 
移動先:  
新規投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
投票参加: 不可
このフォーラムで添付ファイルを投稿 できません
このフォーラムでファイルをダウンロード できません

© Tadas Talaikis, oashy, 2005
Powered by phpBB © 2001, 2005 phpBB Group
WP Theme by Sebastian Schmieg. phpBB Conversion by Branwen.net