sw2007
Jr. メンバー
オフライン
投稿: 12
WS2007 SP4
|
|
図面に特定データを付加する
« 投稿日: 2008/01/29 - 11:55:04 » |
|
いつもお世話になっています。
現在、「Design Library」にあるデータを自作で作成して使用しているのですが、 図面データの特定の場所に手作業で付加しています。
場所と付加するデータはいつも同じです。
この操作をマクロなどで行えないでしょうか??
マクロの登録で行ってみたのですが、うまくいきません。 実際にマクロを登録した、プログラムを使用してみると、エラーとなってしまいます。
どなたかご存知ありませんか??
以上です。よろしくお願いします。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:図面に特定データを付加する
« 返信 #1 投稿日: 2008/01/29 - 12:41:11 » |
|
sw2007さん、こんにちは。
「Design Library」にあるデータとはブロックでしょうか? もしブロックなら、添付したサンプルマクロを参考にしてみてください。
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:図面に特定データを付加する
« 返信 #2 投稿日: 2008/01/29 - 12:46:38 » |
|
書いてる途中にMakoronさん投稿を確認しましたが一応投稿…
"Design Library"が何を指しているかが分かりませんが、 図面ということは、きっとシンボルなどブロック登録したものを 挿入したいと予想して回答します。
試しに、マクロの記録を行い再度実行してみましたが、エラーが 発生しました。 確認したところ、InsertAnnotationFavoriteメソッドの返り値が boolstatus(Boolean型)となっていました。 正しくは、Annotation型が返り値となります。
引用:Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swAnnotation As SldWorks.Annotation
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc If swModel.GetType <> swDocDRAWING Then Exit Sub End If
Set swAnnotation = swModel.Extension.InsertAnnotationFavorite("C:\Program Files\SolidWorks\data\design library\Annotation\ssf0.8-1.6g.sldsffvt", 0, 0, 0)
End Sub |
と、マクロの説明をしましたが、既にブロックを挿入したものをテンプレートとして 用意しておくのも手かと思います。
以上、ご参考まで。
|
|
|
|
sw2007
Jr. メンバー
オフライン
投稿: 12
WS2007 SP4
|
|
Re:図面に特定データを付加する
« 返信 #3 投稿日: 2008/01/29 - 12:59:53 » |
|
Makoronさん、 hisaさんありがとうございます。
表現がわかりにくくすいません。"Design Library"とはブロックの事です。
hisaさんが書かれたように、テンプレートとして付加しておくのが一番簡単 なのですが、システムの決まりになっているのでしかたありません。。。 (人がシステムに縛られるのは??なのですが。。。) この辺りはあまりつっ込めません(;_:)
早速試してみます。ありがとうございました。
結果は後ほどご連絡いたします。
|
|
|
|
sw2007
Jr. メンバー
オフライン
投稿: 12
WS2007 SP4
|
|
Re:図面に特定データを付加する
« 返信 #4 投稿日: 2008/01/30 - 14:59:08 » |
|
サンプル参考にさせて頂きました。
Makoronさん、 hisaさんの両方とも動作いたしました。ありがとうございます。
ご提供頂いたのに質問がございます。
それぞれのサンプルマクロで Makoronさんのサンプルは拡張子が「*.sldblk」の拡張子ファイルが付加でき、 hisaさんのサンプルは拡張子が「*.sldsffvt」の拡張子ファイルが付加できます。
逆はできませんでした。。
それは、ブロック挿入マクロのメソッドが違うからでしょうか?? (下記を参照ください)
Makoronさんサンプル swSketchManager.MakeSketchBlockFromFile(..略..)
hisaさんサンプル swModel.Extension.InsertAnnotationFavorite(..略..)
どうでしょうか??
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:図面に特定データを付加する
« 返信 #5 投稿日: 2008/01/30 - 17:42:03 » |
|
そうですね、 拡張子が「*.sldblk」はブロックで拡張子が「*.sldsffvt」はアノテートアイテムになります。 そのため、扱う為のオブジェクト自身が違ってきます。
ブロックの場合は、swSketchManager.MakeSketchBlockFromFile(..略..) アノテートの場合は、swModel.Extension.InsertAnnotationFavorite(..略..) と言う事になります。
もし、マクロで切り替えたいと言う事でしたら。 対象のパスを、拡張子で判断して、 swSketchManager.MakeSketchBlockFromFileを使うか swModel.Extension.InsertAnnotationFavoriteを使うか を分岐させてあげればいいと思います。
|
|
|
|
sw2007
Jr. メンバー
オフライン
投稿: 12
WS2007 SP4
|
|
Re:図面に特定データを付加する
« 返信 #6 投稿日: 2008/01/30 - 19:42:26 » |
|
ご指導ありがとうございます。 いつも感謝しています!!
了解しました! 拡張子で判断すれば良いですね。
対応させたいと思います。
|
|
|
|