knt24107121
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
アセンブリと構成部品を外部参照を保って別名保存
« 投稿日: 2008/05/22 - 17:31:47 » |
|
はじめまして。
WindowsXP SP2.0 SW2007 という環境で、 外部参照・関係式を含んだアセンブリファイルとその構成部品ファイルを、 それらの参照関係、関係式を保ったまま別名保存したいと考えています。
SW上では 1.「パック&ゴー」機能を使う 2.「指定保存」→「参照」から構成部品ファイルを選択→保存先フォルダを指定→アセンブリファイル名指定して保存 という方法で実現できますが(2は構成部品のファイル名変更が出来ないようですが)、 これをAPIを用いて実現するにはどの機能を使えばよいでしょうか?
2についてはModelDoc2::SaveAs4でできるかと思ったのですが、構成部品ファイルの選択等ができないようです。 1についてはそれらしい機能を見つけられませんでした。SolidWorksExplorerのAPIでしょうか?
よろしくお願いいたします。
|
|
|
|
hdyk_yamada
カタマリの王様!?
オフライン
投稿: 500
NIGHTINGALE
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #1 投稿日: 2008/05/22 - 18:06:38 » |
|
間違っていたらごめんなさい。
> 2.「指定保存」→「参照」から構成部品ファイルを選択→保存先フォルダを指定→アセンブリファイル名指定して保存 > という方法で実現できますが(2は構成部品のファイル名変更が出来ないようですが)、
構成部品のファイル名変更は、出来ますよ。 [新規パス名]のファイル名を遅いダブルクリック(エクスプローラーの名前変更と同じ)で変えれます。 また、一括の場合置き換えで一気に行けます。
SolidWorks Explorerでも名前の変更等々が出来ます。
|
|
|
|
knt24107121
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #2 投稿日: 2008/05/22 - 19:02:12 » |
|
早速の回答ありがとうございます:D
手作業では出来るみたいですね。 目的は、API でこれらのファイルパス指定処理を自動化したい、ということなのですが、 ヘルプからそのような機能を実現するAPIを発見できませんでした。
過去の投稿など参考にさせていただいたのですが、 SDM1.0ライブラリを用いて、 sdmHeaderクラスのメソッド loadHeader、getReferenceName、setReferenceNameを用いて 構成部品をトラバースしながら参照関係をつなぎなおしていけば実現できる様な気がします。 もしかするとSW起動することなく出来るかも?
チャレンジしてみます。 ありがとうございました。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #3 投稿日: 2008/05/22 - 20:10:43 » |
|
引用: 過去の投稿など参考にさせていただいたのですが、 SDM1.0ライブラリを用いて、 sdmHeaderクラスのメソッド loadHeader、getReferenceName、setReferenceNameを用いて 構成部品をトラバースしながら参照関係をつなぎなおしていけば実現できる様な気がします。 もしかするとSW起動することなく出来るかも? |
そうですね。 SDM1.0ライブラリを使って参照先を変更する方法は、SolidWorks Explorerを使って参照先を変更するのと同じ事になります。SDM1.0ライブラリはSolidWorks Explorerでこれらの事を実現するためのdllですから。 なので、SW起動することなく出来る事になりまよ。
あと、 knt24107121さんは、現在SW2007を使用しておられるみたいなので、SDM1.0ライブラリを使う事が可能ですが、SW2008から、SDM1.0ライブラリがなくなり、SolidWorks Document Manager APIだけになってしまいます。 今から作成するのであれば、SolidWorks Document Manager APIを利用する事をお勧めします。 (「SW2008からSDM1.0ライブラリが使えない!?」もみてみてね。 )
|
|
|
|
knt24107121
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #4 投稿日: 2008/05/22 - 21:55:01 » |
|
>SDM1.0ライブラリを使う事が可能ですが、SW2008から、SDM1.0ライブラリがなくなり、SolidWorks Document Manager APIだけになってしまいます。 >今から作成するのであれば、SolidWorks Document Manager APIを利用する事をお勧めします
貴重な情報ありがとうございます。 SolidWorks Document Manager APIを用いたほうがよさそうですね。 …とはいえ、なかなかハードルが高そうです。 SDM1.0ライブラリについては過去の投稿があったので参考になりそうだったのですが・・・。
そもそも、「パック&ゴー」や「指定保存」による方法を用いて 首題の件がSW上で手作業で実現できるのですから、 SW2007 Type Libraryで自動化できると考えたのですが、 他のAPIを使用しないと不可能なのでしょうか?
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #5 投稿日: 2008/05/23 - 16:32:51 » |
|
引用:そもそも、「パック&ゴー」や「指定保存」による方法を用いて 首題の件がSW上で手作業で実現できるのですから、 SW2007 Type Libraryで自動化できると考えたのですが、 他のAPIを使用しないと不可能なのでしょうか? |
「パック&ゴー」や「指定保存」のコマンドが、SW2007 Type Libraryを使用しているかSolidWorks Document Manager APIを使用しているかわかりませんが、SW2007 Type Libraryを利用してパック保存するサンプルプログラムを作ってみたので添付します。
Microsoft Visual Basic 2005 Express Editionで作ってあるのですが、ソースも含めて添付しておきますので参考にしてみてください。 もし、VB2005がない場合は、PackSaveSampleSource¥PackSaveSample¥frmPackSaveSample.vbをテキストエディタなどで開いて見るといいと思います。
|
|
|
|
knt24107121
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #6 投稿日: 2008/05/23 - 16:59:23 » |
|
>Makoron 様
ありがとうございます!
昨日からいろいろ試していたのですが、 ことごとく失敗しており途方にくれていたので助かります・・・ VB2005は勉強はじめたばかりでVBA(VB6)との違いに戸惑うばかりですが、 何とか読み解いてみます。
|
|
|
|
knt24107121
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #7 投稿日: 2008/05/26 - 09:41:12 » |
|
上記ソースのファイル名のところを変更して、 構成部品とアセンブリを別名保存してみました。 すると、トップアセンブリを別名保存すると外部参照が切れてしまうようです。
置き換えなどを用いて構成部品を別名保存した際も、 どうしてもトップアセンブリの名前変更で同様の問題が出てきてしまいます。
やはりパック&ゴー機能はSW2007 Type Libraryでは実現できないのでしょうか・・・。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #8 投稿日: 2008/05/26 - 12:26:41 » |
|
そ、そういえば、普通にSolidWorksから別名保存すると外部参照が切れますね・・・。 あまり外部参照を使わないもんだからわすれてました・・・。
こうなってくると、参照関係を直接修正できる、SolidWorks Document Manager APIを使わないと出来ないかもしれませんね。(他の方法があるかもしれませんが、これしか思いつきませんでした)
|
|
|
|
knt24107121
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #9 投稿日: 2008/05/26 - 13:01:48 » |
|
一応調べてわかったところまで書き込んでおきます。
1、API ・ModelDoc2::SaveAs4 結果:× トップアセンブリファイル名を変更すると外部参照が切れてしまう
・SldWorks::CopyDocment 結果:× SaveAs4のヘルプに前後参照関係のある部品のコピーに用いる際に使用するとの記述があったが、 トップアセンブリファイル名を変更すると外部参照が切れてしまう。
2、手作業 ・パック&ゴー 結果:○ アセンブリファイル名変更しても参照関係は崩れない。
・「指定保存」→「参照」から構成部品ファイル名指定→アセンブリファイル名指定 結果:○ アセンブリファイル名変更しても参照関係は崩れない。
手作業では実現できるのですが・・・ 上記の操作はマクロの記録では記録されませんし、 それらしいAPIも見つかりません。 SolidWorks Document Manager APIの使用を考えてみます。 このライセンスは有償なのでしょうか?
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:アセンブリと構成部品を外部参照を保って別名保存
« 返信 #10 投稿日: 2008/05/26 - 14:46:46 » |
|
' 引用元: knt24107121 投稿日 '.timeformat('1211774508').' 'SolidWorks Document Manager APIの使用を考えてみます。 このライセンスは有償なのでしょうか? |
無償です。 SolidWorksを購入した代理店に問い合わせてみてください。 たぶん、ライセンスキー発行依頼みたいな物にを記入して、数日で発行で発行されると思います。
いちおう、SolidWorks Document Manager API Help の目次から、Getting Startedの中に説明が書いてあります。(英語なので詳細はわかりませんが・・・)
|
|
|
|