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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 部品個数取得について・・・ 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 部品個数取得について・・・  (閲覧数 2809 回)
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!!

プロファイルを見る WWW
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見てもわかりません

どなたか教えてもらえないでしょうか
よろしくお願いします
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 部品個数取得について・・・ 前のトピック 次のトピック
ジャンプします: