仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/05/12 - 15:06:51
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: アセンブリと構成部品を外部参照を保って別名保存 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: アセンブリと構成部品を外部参照を保って別名保存  (閲覧数 9541 回)
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をテキストエディタなどで開いて見るといいと思います。
 PackSaveSample.lzh
議長に報告する   記録済み
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の中に説明が書いてあります。(英語なので詳細はわかりませんが・・・)
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: アセンブリと構成部品を外部参照を保って別名保存 前のトピック 次のトピック
ジャンプします: