ATR
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
AddCustomInfoについて
« 投稿日: 2006/03/01 - 11:38:58 » |
|
みなさん初めまして。 最近APIを始めたのですが、AddCustomInfoについて分からない事があります。どなたかご存知の方がいらっしゃいましたらご教示下されば幸いです。Solidworks2006を使用しています。
図面(*.SLDRW)の更新日をボタン一つで書き換えられるように試みています。 「注記」の「プロパティへリンク」機能を使えば更新日が出せるのですが、ここを時間無しの日付のみにしたいと思っています。 どうにもここは弄れそうにないので、マクロを使ってファイルのプロパティの内容を変える方法にしようと思っています。 海外のサイトから、それ用のマクロサンプルを見つけたのですが、上手く行きません。
Code:Dim swApp As Object Dim DrawingDoc As Object Sub main() Set swApp = CreateObject("SldWorks.Application") Set DrawingDoc = swApp.ActiveDoc retval = DrawingDoc.DeleteCustomInfo("Date completed") retval = DrawingDoc.AddCustomInfo("Date completed", "Date", Str(Date)) DrawingDoc.EditRebuild End Sub |
内容は以上の通りなのですが、Deleteは出来てもAddの方が出来ません。 GetCustomInfoで現在の情報を得る事も出来ます。ADDだけが出来ません。 DeleteとGetが出来るので「注記」やファイルのプロパティの設定間違いとも思えないのですが、何か勘違いをしているのだと思います。 何かご存知の方いらっしゃいませんでしょうか?
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:AddCustomInfoについて
« 返信 #1 投稿日: 2006/03/01 - 13:12:40 » |
|
ATRさんこんにちは
retval = DrawingDoc.AddCustomInfo("Date completed", "Date", Str(Date))
第二引数 FieldTypeを "Date" から "日付" とするとできましたよ
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:AddCustomInfoについて
« 返信 #2 投稿日: 2006/03/01 - 13:47:18 » |
|
ちなみにFieldTypeを"テキスト"にしても可能でしたので紹介します。 retval = DrawingDoc.AddCustomInfo("Date completed", "テキスト", Date)
また、SW2006であれば、AddCustomInfo3を使った方が良いかもしれないので、こちらも紹介します。 (APIマニュアルにはAddCustomInfoが載っていないし、FieldTypeも文字列で指定しなくて良いので今回のような英語−日本語の問題も発生しません。) retval = DrawingDoc.AddCustomInfo3("", "Date completed", swCustomInfoText, Date)
*第3引数は、Str(Date)でもDateでも問題なく動きました。 *"Date completed"は日本語で"更新日"としても問題ないですよ。 (プロパティの項目名が"更新日"になるだけです。)
|
|
|
|
ATR
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:AddCustomInfoについて
« 返信 #3 投稿日: 2006/03/01 - 15:11:06 » |
|
お二方とも、素早いレスありがとうございます。とても助かりました! 日本語の問題でしたか・・・今後もこの問題で壁に当たっていたと思うので聞いて良かったです。
Makoronさんの方法も試していたのですが何故か上手く表示されません。 でも日本語の引数で上手く行ったので取り合えずOKとしたいと思います。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:AddCustomInfoについて
« 返信 #4 投稿日: 2006/03/01 - 19:35:46 » |
|
' 引用元: ATR 投稿日 '.timeformat('1141193466').' 'Makoronさんの方法も試していたのですが何故か上手く表示されません。 でも日本語の引数で上手く行ったので取り合えずOKとしたいと思います。 |
OKと言う事でレスつける必要はないかと思ったのですが、気になったので一つ確認させてください。(と、言うより説明不足だった?)
うまく表示されないのは、どれ? A.retval = DrawingDoc.AddCustomInfo("Date completed", "テキスト", Date) B.retval = DrawingDoc.AddCustomInfo3("", "Date completed", swCustomInfoText, Date) C.どちらでもない。もっと別の部分
もし「A」だとしたら"テキスト"を全角カナにしている可能性があります。 半角カナで指定してください。
|
|
|
|
ATR
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:AddCustomInfoについて
« 返信 #5 投稿日: 2006/03/02 - 13:38:29 » |
|
Makoronさん、こんにちは。レスありがとうございます。
現在は以下のようにして上手く動作しています。 Code: retval = DrawingDoc.AddCustomInfo("更新日", "日付", Str(Date))
|
しかし以下の方法では上手く行きません。 Code:retval = DrawingDoc.AddCustomInfo3("", "Date completed", swCustomInfoText, Date) |
何が悪いのやらよく分かりません。とにかくプロパティに追加されません。 上のDateの部分を"test"と入れても変わりませんでした。
上の方法では上手く行くのに、下でダメなのは何故でしょうね。 うーむ。私としても下の方法で上手く行くならその方が良いのですが、でも一応は解決したのでお手間にならない程度にお願いしたいと思います。
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:AddCustomInfoについて
« 返信 #6 投稿日: 2006/03/02 - 13:47:28 » |
|
ATRさんこんにちは
' 引用元: ATR 投稿日 '.timeformat('1141274309').' 'しかし以下の方法では上手く行きません。 Code:retval = DrawingDoc.AddCustomInfo3("", "Date completed", swCustomInfoText, Date) |
何が悪いのやらよく分かりません。とにかくプロパティに追加されません。 上のDateの部分を"test"と入れても変わりませんでした。
|
もしかしたら、『SolidWorks2006 Constant type library』の参照がされていないから かもしれません。 "AddCustomInfo3"メソッドの引数にある"swCustomInfoText"は、上記ライブラリ内に 定義されている定数なので、マクロ編集画面で[ツール]→[参照設定]から、上記ライブラリを 探してチェックを入れれば解決すると思います。
|
|
|
|
ATR
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
Re:AddCustomInfoについて
« 返信 #7 投稿日: 2006/03/03 - 09:02:46 » |
|
hisaさん、おはようございます。 レスありがとうございました。
上手く行きました!おっしゃる通り、ライブラリの参照登録をしていませんでした。 初歩的なことでつまづいていたようです。
|
|
|
|