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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 皿穴のサイズ変更について 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 皿穴のサイズ変更について  (閲覧数 2205 回)
oone
新人さん
*

オフライン

投稿: 3



I'm a llama!

プロファイルを見る
皿穴のサイズ変更について
« 投稿日: 2007/05/12 - 00:44:56 »
引用して返信

はじめまして、マクロの勉強をはじめたばかりのものです。
VB6を使用していまして、サイズM5で、作成してある皿穴をサイズM6の皿穴に変更するといった、マクロを作りたいのですが、コードを組むことができません。
申し訳ありませんが、どなたか教えていただけないでしょうか?
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:皿穴のサイズ変更について
« 返信 #1 投稿日: 2007/05/14 - 11:15:05 »
引用して返信

ooneさん はじめまして

サンプル作成してみました。

ヴァージョン:SolidWorks2006 SP5.0
開発環境:VBAマクロ

Option Explicit

Dim swApp          As SldWorks.SldWorks
Dim swModel        As SldWorks.ModelDoc2
Dim swFeature      As SldWorks.Feature
Dim swWzdHole      As SldWorks.WizardHoleFeatureData2
Dim bRet            As Boolean

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
   
    If swModel.GetType <> swDocPART Then
        MsgBox "このマクロは部品のみ有効です。"
        Exit Sub
    End If

    Set swFeature = swModel.FirstFeature
   
    While Not swFeature Is Nothing
        If swFeature.GetTypeName = "HoleWzd" Then
        Set swWzdHole = swFeature.GetDefinition
            If swWzdHole.Standard = "JIS" And swWzdHole.FastenerType = "十字付き丸皿 JIS B 1111p4" _
                And swWzdHole.FastenerSize = "M5" Then
                bRet = swWzdHole.ChangeStandard(swStandardJIS, swStandardJISRaisedCTSKHead, "M6")
                bRet = swFeature.ModifyDefinition(swWzdHole, swModel, Nothing)
                Debug.Print bRet
            End If
        End If
   
        Set swFeature = swFeature.GetNextFeature
   
    Wend

End Sub

ポイントは、ChangeStandardで定義を変更した後に、ModifyDefinitionで反映させつところですかね。

SolidWorks2006以前だと、swWzdHole.FastenerType などで取得出来る値が文字列(例:"十字付き丸皿 JIS B 1111p4")に対し、
設定する値がLong値(例:swStandardJISRaisedCTSKHead)なので、値の照合が面倒です
SolidWorks2007からは、Standard2及びFastenerType2でLong値として取得出来るので、楽になっています
環境に合わせてコード編集してみてください。

あ…思い込みで作っちゃいましたが、穴ウィザードで作成した皿穴で良かったんですかね…
議長に報告する   記録済み
oone
新人さん
*

オフライン

投稿: 3



I'm a llama!

プロファイルを見る
Re:皿穴のサイズ変更について
« 返信 #2 投稿日: 2007/05/15 - 06:53:03 »
引用して返信

hisaさんお返事ありがとうございました。
穴ウィザードで、皿穴を作成したかったので助かりました。
SolidWorks 2005 SP3.1のヴァージョンのもと早速このサンプルを引用させていただき、動作確認したところ無事に皿穴のサイズを変更することができました。
本当にありがとうございました。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 皿穴のサイズ変更について 前のトピック 次のトピック
ジャンプします: