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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: L/R部品のコンフィギュレーション 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: L/R部品のコンフィギュレーション  (閲覧数 3449 回)
psychic
Sr. メンバー
****

オフライン

投稿: 59



I'm a llama!

プロファイルを見る
L/R部品のコンフィギュレーション
« 投稿日: 2011/10/21 - 21:59:47 »
引用して返信

こんにちは いつもお世話になっております
表題のとおりL/Rの部品をよくコンフィギュレーションで作るのですが
手動での私の手順は
”L”というコンフィギュレーションの作成
勝手反対にする面を選択してフィーチャのミラーですべてのボディを選択
元のボディを非表示
といった具合です
これを反対にする面を選択して残りはマクロでできないでしょうか?

それと単品図面へ材料や個数などアセンブリより拾ってマクロで記入していますが
こういった方法ですとL/Rの部品もただ単に2個と出てしまい間違えるときがあります
パーツのコンフィギュレーションに”L”という名前があるか調べるには
どうしたらよいでしょうか?

どうかご教授ください
よろしくお願いします
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:L/R部品のコンフィギュレーション
« 返信 #1 投稿日: 2011/10/24 - 09:48:24 »
引用して返信

psychicさん、おはようございます。
いまSolidWorksが使えない状態なので試しては以内のですが・・・。


引用:
表題のとおりL/Rの部品をよくコンフィギュレーションで作るのですが
手動での私の手順は
”L”というコンフィギュレーションの作成
勝手反対にする面を選択してフィーチャのミラーですべてのボディを選択
元のボディを非表示
といった具合です
これを反対にする面を選択して残りはマクロでできないでしょうか?

出来ると思います。
自動モデリング系の処理は、マクロが有効に利用できるはずですから。
マクロの記録でもほぼ近い形のものが出来上がると思います。
(コンフィギュレーションの処理あたりは作りこまないといけないかもしれません。)


引用:
それと単品図面へ材料や個数などアセンブリより拾ってマクロで記入していますが
こういった方法ですとL/Rの部品もただ単に2個と出てしまい間違えるときがあります
パーツのコンフィギュレーションに”L”という名前があるか調べるには
どうしたらよいでしょうか?

部品表でしょうか?それとも表題欄でしょうか?
個数が表示されると言うことは部品表っぽいと思うのですが「単品図面」とあるので謎です・・・。
ちなみに、コンフィギュレーション名の取得は
APIマニュアルの「Get List of Configurations Example (VB)」あたりが参考になると思います。

議長に報告する   記録済み
psychic
Sr. メンバー
****

オフライン

投稿: 59



I'm a llama!

プロファイルを見る
Re:L/R部品のコンフィギュレーション
« 返信 #2 投稿日: 2011/10/24 - 20:54:19 »
引用して返信

Makoronさん ありがとうございます
個数の取得はバラシ時に窓にassyファイルを選択してsdmHeaderWalkで拾ってます
コンフィギュレーションが見つかったら"L/R" & 個数/2で入れようと思います

Get List of Configurations Example 参考にしてみます^^

ファイル操作のどは皆様の力でおかげさまでなんとか思いどおりのものが
そこそこできるようになりました。
いよいよ自動モデリングですね・・
がんばって覚えていこうと思います^^
これができるようになれば作りたいものたくさんあります
でも記録してもなかなかそのエンティティをどう使うか、
拘束の問題・・まださっぱりです
こつこつやっていこっ!
またお力かしてください^^
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:L/R部品のコンフィギュレーション
« 返信 #3 投稿日: 2011/10/25 - 10:31:32 »
引用して返信


引用:
個数の取得はバラシ時に窓にassyファイルを選択してsdmHeaderWalkで拾ってます
コンフィギュレーションが見つかったら"L/R" & 個数/2で入れようと思います

SDM.dllを使っているのですね。
SolidWorks2007を利用しているようですが、2008か2009からSDM.dllが使えなくなるので
早めに、SWDocumentManagerAPI に切り替えていくといいと思います。
sdm.dllについてを参照。)

あと、ミラー形状コンフィギュレーション作成のサンプルを作ったので、コードをのせておきます。
Code:
Option Explicit


Sub main()

    Dim i As Long

    Dim swApp As SldWorks.SldWorks
    Dim swModelDoc2 As SldWorks.ModelDoc2
    Dim swPartDoc As SldWorks.PartDoc
    Set swApp = Application.SldWorks
    Set swModelDoc2 = swApp.ActiveDoc
    Set swPartDoc = swModelDoc2
   
    ' 選択されている平面を取得(選択されていない場合は終了)
    Dim swSelectionMgr As SldWorks.SelectionMgr
    Dim vntSelObject As Variant
    Dim swFeature As SldWorks.Feature
    Set swSelectionMgr = swModelDoc2.SelectionManager
    If swSelectionMgr.GetSelectedObjectCount2(-1) <> 1 Then
        MsgBox ("ミラー平面を選択してマクロを実行してください。" & vbCrLf & "マクロを終了します。")
        End
    End If
    If swSelectionMgr.GetSelectedObjectType3(1, -1) <> swSelectType_e.swSelDATUMPLANES Then
        MsgBox ("ミラー平面を選択してマクロを実行してください。" & vbCrLf & "マクロを終了します。")
        End
    End If
    Set vntSelObject = swSelectionMgr.GetSelectedObject6(1, -1)
    Set swFeature = vntSelObject
   
    ' コンフィギュレーション「L」の存在確認
    Dim vntConfigurationNames As Variant
    Dim blnConfigurationExists As Boolean
    Dim swConfiguration As SldWorks.Configuration
    vntConfigurationNames = swModelDoc2.GetConfigurationNames
    blnConfigurationExists = False
    For i = 0 To UBound(vntConfigurationNames)
        If vntConfigurationNames(i) = "L" Then
            blnConfigurationExists = True
            Exit For
        End If
    Next
    If blnConfigurationExists = True Then
        MsgBox ("既にコンフィギュレーション「L」が存在します。" & vbCrLf & "マクロを終了します。")
        End
    End If
       
    ' コンフィギュレーション「L」作成
    Set swConfiguration = swModelDoc2.AddConfiguration3("L", "", "", 0)
    swModelDoc2.ClearSelection2 True
   
    ' ミラー平面の選択
    Call swFeature.Select2(True, 2)
   
    'ボディの選択
    Dim vntBodies As Variant
    Dim swBody2 As SldWorks.Body2
    vntBodies = swPartDoc.GetBodies2(SwConst.swSolidBody, True)
    For i = 0 To UBound(vntBodies)
        Set swBody2 = vntBodies(i)
        Call swBody2.Select(True, 256)
    Next
   
    ' ミラーフィーチャ作成
    Dim myFeature As Object
    Set myFeature = swModelDoc2.FeatureManager.InsertMirrorFeature(True, False, False, False)
   
    ' 元のボディを非表示
    For i = 0 To UBound(vntBodies)
        Set swBody2 = vntBodies(i)
        Call swBody2.HideBody(True)
    Next
   
End Sub
議長に報告する   記録済み
psychic
Sr. メンバー
****

オフライン

投稿: 59



I'm a llama!

プロファイルを見る
Re:L/R部品のコンフィギュレーション
« 返信 #4 投稿日: 2011/10/25 - 21:45:44 »
引用して返信

Makoronさま ありがとうございます^^
早速試してみました
ばっちりです!
ほんとにありがとうございました!

ただいつも疑問に思うのですが、よくここでつくってもたったコードを
そのままうっても動かないことが多く
たとえば
Dim swApp As SldWorks.SldWorks
などはすべて
Dim swApp As Object
と書き換えると動くのですが (VB6で作成時も)

まあパターンわかってきたのはいいんですが
気になります・・
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:L/R部品のコンフィギュレーション
« 返信 #5 投稿日: 2011/10/26 - 09:16:49 »
引用して返信


引用:
ただいつも疑問に思うのですが、よくここでつくってもたったコードを
そのままうっても動かないことが多く
たとえば
Dim swApp As SldWorks.SldWorks
などはすべて
Dim swApp As Object
と書き換えると動くのですが (VB6で作成時も)

まあパターンわかってきたのはいいんですが
気になります・・


参照設定に「SldWorks 20** Type Library 」(**はバージョンの数字)が指定(チェック)されているでしょうか?
マクロなら、メニューの「ツール」→「参照設定」で確認が出来ます。
VB6なら、メニューの「プロジェクト」」→「参照設定」で確認が出来ます。

ちなみに、参照設定を設定して
Dim swApp As SldWorks.SldWorks
と変数を定義しておくと
swApp.
とピリオドまで入力したときに、メソッドやプロパティなどの一覧が表示され選択することができ、入力が簡単になります。

プログラムの動作や内部的な処理がどう変わってくるかは理解できていないのですが、
入力作業を簡単にしたいためにこの様な変数定義をしています。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: L/R部品のコンフィギュレーション 前のトピック 次のトピック
ジャンプします: