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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: SDM1.0ライブラリ 前のトピック 次のトピック
ページ: 1 [2] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: SDM1.0ライブラリ  (閲覧数 12339 回)
y-nakatsuka
カタマリの王様!?
*****

オフライン

投稿: 187





プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #20 投稿日: 2004/07/16 - 20:32:54 »
引用して返信

苦節3年 ついに王様になれました(笑)!

どうもありがとうございます。
最初webmasterさんにpascalworksでお世話になったころのことが懐かしく思いだされます。ホントにお世話になっております。
本日社内で、3DCADの正式運用ルールの全説明を終わらせ、形上は3DCADの運用準備が終わりました
いままでも一応3Dで設計してたのですが、ルールがはっきり決まっていなかったため、無法地帯に近い状態で・・・
ここまでホントに長かった・・・きっとこのサイトなくしてはここまでたどり着けなかったものと思います。
これからも是非是非よろしくお願いいたしますね。

ところで、おっしゃるようにsdmはswexplorerのapiみたいなもののようですね。あたらしい機能はないでしょうけど、単体で使うことで、何らかのメリットはだせるかな、という感じはします。(特に速度面で。)swexplorerの説明に「pdmではないが、近い動作をする」のような内容が書かれてあるので、sdmはやはりmakoronさんがおっしゃるようにsolidworks data managementなのかなと。
edrawのAPIのヘルプが出るので、こちらもいずれ出ると思ってます。

なもんで、swexplorerを見ていると、どの関数がどの機能に該当するのか、大体わかるのですが、sdmHeaderで使えそうな名前のgetStateとsetStateがなんなのかがわかりません。抑制状態とかにも関係ないみたいですし、そもそもactive MRR(ミラー?) Deleteの3つの状態っていうのが全く意味不明。なんだかあまり使えない?
議長に報告する   記録済み
Tama
Jr. メンバー
**

オフライン

投稿: 12



I'm a llama!

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #21 投稿日: 2004/07/16 - 21:03:17 »
引用して返信

こんにちは〜、Tamaです。

簡単そうなところから攻めています。

sdmConfigMgrクラス。

「sdmConfigMgr.LoadConfigMgr」

Sub LoadConfigMgr(fileName As String)

ファイル名を指定して、コンフィギュレーション情報を読み込みます。


「sdmConfigMgr.ConfigCount」

Property ConfigCount As Long

コンフィギュレーション数


「sdmConfigMgr.GetCurrentConfigName」

Function GetCurrentConfigName(pConfigName) As Boolean

pConfigNameにコンフィギュレーションのストリーム名が返されます。
SolidWorks APIのConfiguration::GetStreamNameと同等です。
メソッドの実行が成功すると True、失敗すると(おそらく)Falseを返します。

使い方
Code:
Dim objSdmConfigMgr As SDMLib.sdmConfigMgr
Set objSdmConfigMgr = New SDMLib.sdmConfigMgr
objSdmConfigMgr.LoadConfigMgr "C:MyPartsPart1.sldprt"

Dim lngConfigCount As Long
lngConfigCount = objSdmConfigMgr.ConfigCount

Dim vntConfigName As Variant
Dim blnResult As Boolean
blnResult = objSdmConfigMgr.GetCurrentConfigName(vntConfigName)

Set objSdmConfigMgr = Nothing

コンフィギュレーションがストリーム名でしか取得できないのであまり使えないですね。
議長に報告する   記録済み
y-nakatsuka
カタマリの王様!?
*****

オフライン

投稿: 187





プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #22 投稿日: 2004/07/20 - 17:28:24 »
引用して返信

Tamaさんこんにちは。いつもお世話になっております
ところで当方、情けないことにそろそろわかるやつがなくなってきました
というわけで、次は何かのきっかけでわかったときにでも追加しまーす。


「smSummaryProperties.LoadFromFile」
Function LoadFromFile(filepath As String) As Long


smSummaryPropertiesオブジェクト内に、ファイルパスにより指定されたファイルのWINDOWS上で右クリックした際の「プロパティ」‐「概要」の情報を読み込みます。

smSummaryProperties.lastAuthor(最終保存者)
smSummaryProperties.lastSaveDate(最終保存日)

などが使えそうといったところです。

私の環境ではいつも「-1」が関数の返り値として返ってきますが、意味はよくわかりません。
失敗しているのかも。


「smSummaryProperties.GetCustPropCount」

Function GetCustPropCount() As Long

LoadFromFileで読み込んだファイルのユーザ定義プロパティの個数を返します。
議長に報告する   記録済み
Tama
Jr. メンバー
**

オフライン

投稿: 12



I'm a llama!

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #23 投稿日: 2004/07/20 - 22:42:55 »
引用して返信

こんばんは〜、Tamaです。

y-nakatsukaさん、こちらも簡単そうなのがなくなってきて困りました。
そこで、VBの参照設定でほかに面白そうなdllでもないかな〜とみていると、「SwDocumentMgr 1.0 Type Library」というのがありました!
SolidWorks 2004からなのかな

これってsdmがちょっとリッチになったAPIのようにみえます。

で、ちょこっとなかをみるとSwDMComponentクラスにConfigurationNameプロパティがあって、これを使うと構成部品のコンフィギュレーションが取れるかも。
議長に報告する   記録済み
y-nakatsuka
カタマリの王様!?
*****

オフライン

投稿: 187





プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #24 投稿日: 2004/07/21 - 18:20:37 »
引用して返信

Tamaさんこんにちわ。
ライブラリみてみるとなんだかいろいろありますね。
全く知らなかったです。
私の環境でもSwDocumentMgr 1.0はあるみたいですね。
ポインタがたくさん出てくるようで、VBで使いかたがよくわかってません
でもとにかく、内容はわからなくても、こんなものがあるということがわかっただけで、ちょっとレベルアップした気分です
議長に報告する   記録済み
Tama
Jr. メンバー
**

オフライン

投稿: 12



I'm a llama!

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #25 投稿日: 2004/07/21 - 22:07:36 »
引用して返信

こんばんは〜、Tamaです。

SwDocumentMgr 1.0 はCreateObjectもできませんでした。どうやったら使えるのかさえわかりません。 
わざとVBからは使えないようにしてあるのかもしれませんね。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #26 投稿日: 2004/07/28 - 20:43:37 »
引用して返信

みなさん、こんばんわ。

SwDocumentMgr 1.0 について調べてみました。
(結局使えないことがわかったのですが

まず、オブジェクトブラウザでSwDocumentMgr を眺めてみました。

SwDMClassFactoryがどうやら曲者のようです。
SwDMClassFactoryのGetApplicationメソッドで、
SwDMApplicationクラスオブジェクトが取得できるみたいです。

さらに、SwDMApplicationクラスを見てみると
SwDMDocumentクラスオブジェクトとSwDMSearchOptionクラスオブジェクト
が取得できそうです。

で、実際にそれらしくコードを書いて見ましたが
『ActiveX コンポーネントはオブジェクトを作成できません。(Error 429)』
で、はねられてしまいます。
ヘルプを呼んでみると、
「〜
オブジェクトの中には、オブジェクトが作業中のマシンでインスタンス作成用に登録されていることを示すライセンス キーがコンポーネントで見つかった後にだけ、インスタンス作成できるものがあります。
〜」
と書いてあります。

Function GetApplication(LicKey As String) As SwDMApplication
に、LicKeyと書いてあり、ここにライセンスキーを入力する必要があるのかも
知れないと思い、SWのシリアル番号を入れてみましたがダメでした。

残念ながら、これより先に進むことが出来ませんでした。
一応サンプルコードを付けておきます。

Private Sub Form_Load()
    '一番最初に構築する?
    'いちおうobjSwDMClassFactoryオブジェクトは構築できるみたい。

    Dim objSwDMClassFactory As SwDocumentMgr.SwDMClassFactory
    Set objSwDMClassFactory = CreateObject("SwDocumentMgr.SwDMClassFactory")
   
    'SwDMApplicationオブジェクトを構築する?
    'そのためにLicKey(ライセンスキー)が必要みたい!
    'LicKeyはどうやって見つけるの?

    Dim objSwDMApplication  As SwDocumentMgr.SwDMApplication
    Dim strLicKey          As String
    Set objSwDMApplication = objSwDMClassFactory.GetApplication(strLicKey)
   
    'SwDMApplicationオブジェクトが構築できたら下の各オブジェクトも構築できる?
    Dim objSwDMDocument    As SwDocumentMgr.SwDMDocument
    Dim strFullPathName    As String
    Dim lngdocType          As Long
    Dim blnallowReadOnly    As Boolean
    Dim lngresult          As Long
    Set objSwDMDocument = objSwDMApplication.GetDocument(strFullPathName, lngdocType, blnallowReadOnly, lngresult)
   
    Dim objSwDMSearchOption As SwDocumentMgr.SwDMSearchOption
    Set objSwDMSearchOption = objSwDMApplication.GetSearchOptionObject()
End Sub
議長に報告する   記録済み
y-nakatsuka
カタマリの王様!?
*****

オフライン

投稿: 187





プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #27 投稿日: 2004/07/29 - 13:32:58 »
引用して返信

makoronさんこんにちわ。

添付していただいてるソースを実行してみましたが、確かにおっしゃるとおりのメッセージがでて進みませんでした。

ネットワークライセンスファイルの中身を入力してみたりしましたがダメでした
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #28 投稿日: 2005/01/21 - 12:44:15 »
引用して返信

少し時間がたってますが、SDMLibのヘルプを作ってみました。
...と言うより作りかけですが

作りかけヘルプを添付しますので、みんなで協力して完成させてみませんか?
(HTMLで作ってあります。)
 SDMLibHelp.lzh
議長に報告する   記録済み
y-nakatsuka
カタマリの王様!?
*****

オフライン

投稿: 187





プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #29 投稿日: 2005/01/24 - 10:09:17 »
引用して返信

makoronさんこんにちわ

どえらいのを作られましたね。正規のAPIヘルプよりよくできてるのでは

SDMのことはしばらく忘れてましたが、お手伝いさせていただきたいと思います。

「ウィキペディア」みたいにヘルプが完成していくといいですね。
議長に報告する   記録済み
y-nakatsuka
カタマリの王様!?
*****

オフライン

投稿: 187





プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #30 投稿日: 2005/01/24 - 10:47:08 »
引用して返信

smSummaryProperties
プロパティに関する操作をSolidWorksを立ち上げずにすることができるクラス。


smSummaryProperties.LoadFromFile(ファイルパス)

SWの指定したファイルのプロパティ(ユーザ定義プロパティ含む)をオブジェクト内にロードする。
コンフィギュレーション特有プロパティを使う時は多分smSummaryProperties.LoadFromConfig()を使う。(未確認)

retvalは、メソッドが
成功の場合-1
失敗の場合 0
を返すみたい。


smSummaryProperties.SetPropValueByName(プロパティ名,値)

LoadFromFileで取り込んだファイルのプロパティを書き換える。追加もできる。
ただし、プロパティが「数値型」だった場合、値がバグっているような?
WINDOWSからユーザ定義プロパティを書き換えたときのバグと関係あり?

ちなみにこのメソッドで書き換えたプロパティは次項、SaveSummaryInfoToFileでsaveするまで、実際には書き換えられません。

retvalは、メソッドが
成功の場合-1
失敗の場合 0
を返すみたい。

Void smSummaryProperties.SaveSummaryInfoToFile()

LoadFromFileで取り込んだファイルのプロパティをSetPropValueByName等で変更した場合、このメソッドでsaveする。saveして初めて実際に変更される。

私は、VBをまじめに勉強したことがないので、詳しいことはよくわかってませんが、「Call」を頭につけないと、動かないみたい・・・詳しい人いらっしゃったらどういうことなのか教えてください・・・


ともあれ、これらを使うと、SolidWorksを開かずに、ファイルにプロパティを追加、変更等の作業ができるようで、一括作業等に役に立つかもしれません。


使用例

    Dim smSummaryPropertiesObj  As New SDMLib.smSummaryProperties
    Dim retval As Long
   
    retval = smSummaryPropertiesObj.LoadFromFile("ファイルパス")
    retval = smSummaryPropertiesObj.SetPropValueByName("プロパティ名", "値")
    Call smSummaryPropertiesObj.SaveSummaryInfoToFile


Makoronさんよろしければおひまなときにでもヘルプに追加してみてください。例によって内容の保証はしかねますが
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #31 投稿日: 2005/01/25 - 10:43:09 »
引用して返信

y-nakatsukaさん、おはようございます。

情報ありがとうございました。
追加したヘルプを添付しておきます。
 SDMLibHelp050125.lzh
議長に報告する   記録済み
BePositive
新人さん
*

オフライン

投稿: 7



I'm a llama!

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #32 投稿日: 2005/12/11 - 14:22:39 »
引用して返信

突然ですが小発見(大発見じゃない)です。

smSummaryProperties.LoadFromFile(ファイルパス)

で、Office文書(ワードやエクセル)ファイルをロードすると、同じようにプロバティが取り出せます。

少し便利です。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:SDM1.0ライブラリ
« 返信 #33 投稿日: 2005/12/12 - 08:50:01 »
引用して返信

SDMからもOKなんですね。
...と、簡単な前振り。

多分、SWはMicrosoftの「http://support.microsoft.com/default.aspx?scid=kb;ja;224351」に書いてある技術と同じ物(似ているもの?)を使っているみたいです。

Microsoftが配布している「Dsofile.dll 」と言うのを使用すると、SDMとほぼ似たような処理が行えます。
ただし、SW特有のコンフィギュレーションを扱うものは出来ないようですが...。

ユーザ定義プロパティの取得くらいであれば、SDMを使わなくても実現できるのではないかと思います。
議長に報告する   記録済み
webmaster
管理人
議長
カタマリの王様!?
*****

オフライン

投稿: 649





プロファイルを見る WWW メールアドレス
Re:SDM1.0ライブラリ
« 返信 #34 投稿日: 2006/02/06 - 22:20:47 »
引用して返信

この手のリファレンスはフォーラム形式よりWikiの方が作りやすいかと思ってhttp://wiki.katamari.orgSDM1.0リファレンスのページを作ってみました。ちなみにこのWikiページはウィキペディアのプログラムを使わせてもらっています。

ページの構成がいまいちで追加がやりづらいとか不具合があるのでしばらくはお試し期間と思って使ってみてください。とりあえず誰でも更新はできるので誤記訂正や追加は勝手にやってください。ユーザ登録してもらえば添付ファイルも使えます。
議長に報告する   記録済み

webmaster (仕事のカタマリ管理人)
ページ: 1 [2] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: SDM1.0ライブラリ 前のトピック 次のトピック
ジャンプします: