Random Thoughts |
Indecision is the key to flexibility.
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 03:09:50 |
|
|
|
著者
|
トピック: 部品個数取得について・・・ (閲覧数 2914 回) |
|
psychic
Sr. メンバー
オフライン
投稿: 59
I'm a llama!
|
|
部品個数取得について・・・
« 投稿日: 2014/01/01 - 16:32:40 » |
|
こんにちは うちの会社もXPのサポート終了に伴い、 WIN7と入れることとなり2007から2014へとVerUPすることとなりました 今まではアセンブリから構成部品の使用個数を取得するのに ここでいただいたサンプルでやっていましたが いよいよSwDocumentMgrを使わなければならなくなり 構文に困っています 今までは下記のとおり
sdmHeaderWalkObj.loadHeader (Range("A1").Value) 'オブジェクトにヘッダーを読み込む。 For i = 0 To sdmHeaderWalkObj.ReferenceCount - 1 '参照先の個数回繰り返す。 Call sdmHeaderWalkObj.getReferenceName(i, pReferenceName, pRefExtension, pRefPath, pUserCount) If pReferenceName = Range("A2") Then quan = pUserCount Exit For End If
Next i このようにしていましたがSwDocumentMgrですとどのように したらよいでしょうか? 同じような命令があると聞いていましたが オブジェクトブラウザでみてもそれらしいのがまったく見当がつきません・・ どなたか教えてください。 ライセンスキーはSWよりすでにもらっています よろしくお願いします。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:部品個数取得について・・・
« 返信 #1 投稿日: 2014/01/06 - 12:33:09 » |
|
psychicさん、あけおめです!
最近はSwDocumentMgrのプログラミングから遠ざかっていて記憶にないのですが、 ここのダウンロードにあるサンプルは見られましたか? それなりのサンプルになってたと思うので、解決できるかも? SwDocumentMgrテストプログラム
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:部品個数取得について・・・
« 返信 #2 投稿日: 2014/01/08 - 12:58:11 » |
|
見たこと無いオブジェクトかと思ったら、SDM1.0ライブラリを利用したコードなんですね この頃には部品の個数を取得できる便利な機能があったんですね…
調べた範囲では、新しいswDocumentMgrにはその機能は無さそうです やるとしたら、全ての構成部品を名前毎にカウントするか、アセンブリに部品表を挿入しておいて、SwDMTable4オブジェクトを介して個数を取得するといった感じになると思います。
|
|
|
|
psychic
Sr. メンバー
オフライン
投稿: 59
I'm a llama!
|
|
Re:部品個数取得について・・・
« 返信 #3 投稿日: 2014/01/09 - 20:03:25 » |
|
Makoron様、hisa様 おけおめです SwDocumentMgrテストプログラムですがvb2005がない為 まずはそこからですね・・・ 個数を拾いたいときは単品バラシ時ですので 最後は予め部品表ファイルを作っておいて そこからって感じになりますかね まずSwDocumentMgrテストプログラムのソースを あたってみます
ありがとうございました^^
|
|
|
|
psychic
Sr. メンバー
オフライン
投稿: 59
I'm a llama!
|
|
Re:部品個数取得について・・・
« 返信 #4 投稿日: 2014/01/19 - 17:19:26 » |
|
こんにちは 結局 部品表.xlsを作成してそっから拾うようにできましたが こんどはマクロでASSYから部品表.xlsを作れないかと思いまして・・
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swPart As SldWorks.PartDoc Dim swModelDocExt As SldWorks.ModelDocExtension Dim swSelMgr As SldWorks.SelectionMgr Dim swDrawing As SldWorks.DrawingDoc Dim swView As SldWorks.View Dim swAnnotations As Variant Dim retval As String Dim boolstatus As Boolean Dim PATHNAME As String Dim swBomAnn As BomTableAnnotation Dim swBomFeat As SldWorks.BomFeature Sub main()
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swModelDocExt = swModel.Extension Set swSelMgr = swModel.SelectionManager PATHNAME = swModel.GetPathName
retval = swApp.GetUserPreferenceStringValue(swDefaultTemplateDrawing)
Set swModel = swApp.NewDocument(retval, 0, 0, 0) Set swDrawing = swModel Set swView = swDrawing.CreateDrawViewFromModelView3(PATHNAME, "*正面", 0.1314541543147, 0.1407887187817, 0)
boolstatus = swModelDocExt.SelectByID2("Drawing View1", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0) boolstatus = swDrawing.ActivateView("Drawing View1")
swModel.ClearSelection2 True
Set swBomAnn = swView.InsertBomTable2(True, 1, 1, swBOMConfigurationAnchor_TopLeft, swBomType_PartsOnly, "デフォルト", "")
End Sub
この様に部品表までは作れましたがBOM→xlsの作り方が help見てもわかりません
どなたか教えてもらえないでしょうか よろしくお願いします
|
|
|
|
|
|
|
|