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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 穴ウィザードの穴に色付け 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 穴ウィザードの穴に色付け  (閲覧数 3759 回)
souma
カタマリの王様!?
*****

オフライン

投稿: 318





プロファイルを見る
穴ウィザードの穴に色付け
« 投稿日: 2009/12/15 - 10:21:25 »
引用して返信

いつもお世話様になっております。
過去スレの「フェース色の変更」に似た質問なのですが、マクロは素人のため
ご教授頂けるとありがたいのですが・・・。

早速ですが、穴ウィザードで明けた穴部分に、色付けは可能でしょうか?
具体的には、下記の2種類の穴に色付けしたいのですが

1)JISの、ねじ穴−−緑色
2)ISOの、穴 −−−青色

上記穴&その他の穴を加工後に、それぞれのマクロ実行すると穴部分に色づけされる。
実際のマクロコードを示して頂けると、とても嬉しいです。
無理な御願いですが、どなたかお助け頂けると助かります。

宜しくお願い致します。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:穴ウィザードの穴に色付け
« 返信 #1 投稿日: 2009/12/15 - 12:41:27 »
引用して返信

ザックリ作ってみました

アセンブリから全ての構成部品にも対応できるように、APIヘルプのサンプル
Traversing Assembly at Component and Feature Levels Example
を流用して、穴ウィザード判別→色づけとしています。
(もちろん、部品単体でも実行可能です)

Select Caseのところで、穴のタイプからRGB値を変えているので、必要に応じて
条件とRGB値を追加・変更することが出来ます

あと、サンプルにあるDebug.Printはそのまま残しているので、いらなければ削除して下さい
 Set_WizHole_Color.txt
議長に報告する   記録済み
souma
カタマリの王様!?
*****

オフライン

投稿: 318





プロファイルを見る
Re:穴ウィザードの穴に色付け
« 返信 #2 投稿日: 2009/12/15 - 14:55:14 »
引用して返信

hisaさん、いつもありがとうございます。

実行時エラーが発生します。 たぶんSW2007ですので、ダメだと思うのですが・・・。

「実行時エラー'438’ オブジェクトは、このプロパティまたはメソドをサポートしていません」
客先の都合で、SW2008&2009は未インストールです。
先日SW2010も送られてきました。(いつのことやらです)

出来ればSW2006&2007で走るようになれば、良いのですが・・・ さらなるお手数を御掛けしますが、宜しくお願い致します。
 00error.jpg
議長に報告する   記録済み

souma
カタマリの王様!?
*****

オフライン

投稿: 318





プロファイルを見る
Re:穴ウィザードの穴に色付け
« 返信 #3 投稿日: 2009/12/15 - 15:08:57 »
引用して返信

自己レスです。 SW2006にて、実行できました。

TypeName2の2を削除しました。
動作も、ばっちりです。 hisaさん、本当にありがとうございました。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:穴ウィザードの穴に色付け
« 返信 #4 投稿日: 2009/12/15 - 17:01:29 »
引用して返信


引用:
TypeName2の2を削除しました。


スミマセン、ワナを仕掛けてしまいましたね
ご推察の通り、TypeName2はSW2008からのメソッドなのでSW2007以前は
TypeNameでOKです
(TypeName2との違いは、返すフィーチャーの種類が増えただけみたいです)
議長に報告する   記録済み
souma
カタマリの王様!?
*****

オフライン

投稿: 318





プロファイルを見る
Re:穴ウィザードの穴に色付け
« 返信 #5 投稿日: 2009/12/16 - 11:05:19 »
引用して返信

hisaさん、もう一つ教えて頂けますでしょうか?

SW2006でOKと自己レスしたのですが、2007の間違いでした。
で、2006でマクロを実行したところ、その下でエラー発生 APIヘルプ見たら、FastenerType2は2007からのようですのでFastenerTypeに変更しました。
こんどは、エラー出ないのですが色が付きません。ヘルプを見ながら怪しそうな所を探ったのですが、変化有りませんでした。
大変ご迷惑を御掛けしますが、2006に対応するための変更箇所を教えて頂きたく、御願い致します。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:穴ウィザードの穴に色付け
« 返信 #6 投稿日: 2009/12/16 - 12:39:12 »
引用して返信

FastenerTypeはFastenerType2と違って、穴の種類を示す文字列が返ってきます。
(FastenerType2は、穴の規格+種類を示すLong値が返っきます)
色が変わらなかった理由は、Select CaseでFastenerType2が返すLong値を
比較しているので、条件に当てはまらない=処理されないといった状態になります。

なので、SW2006の場合は穴規格を返すWizardHoleFeatureData2::Standardも
使用して、穴規格判別→穴種類判別という処理に変える必要があります。

具体的には、If swFeat.GetTypeName = "HoleWzd" Then から
Set swFeat = swFeat.GetNextFeatureの手前までを以下のように変更します。

Code:
        ' 穴ウィザード判断
        If swFeat.GetTypeName = "HoleWzd" Then
            Set swWizHoleFeat = swFeat.GetDefinition
           
            ' 穴規格判別(まずはStandardで規格を判断)
            If swWizHoleFeat.Standard = "JIS" Then
                ' 穴種類判別(FastenerType2と違って文字列で判断)
                Select Case swWizHoleFeat.FastenerType
                Case "ねじ穴", "仕上げねじ穴"
                    ' 緑に着色
                    SetHoleColor swFeat, 0, 255, 0, pModel
                End Select
            End If
           
            ' 穴規格判別(まずはStandardで規格を判断)
            If swWizHoleFeat.Standard = "ISO" Then
                ' 穴種類判別(FastenerType2と違って文字列で判断)
                Select Case swWizHoleFeat.FastenerType
                Case "ドリル サイズ", "ねじすきま", "ねじ下穴ドリル"
                    ' 青に着色
                    SetHoleColor swFeat, 0, 0, 255, pModel
                End Select
            End If
        End If


これでSW2006でもいけると思います
議長に報告する   記録済み
souma
カタマリの王様!?
*****

オフライン

投稿: 318





プロファイルを見る
Re:穴ウィザードの穴に色付け
« 返信 #7 投稿日: 2009/12/16 - 15:18:16 »
引用して返信

hisaさん、ありがとうございます。
さっそく修正してみました。OKです。(バッチグー チョット古いか?)

お忙しいところ、ご親切にありがとうございました。
感謝・感謝です。

時間を見つけて、コードの違いを勉強してみます。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 穴ウィザードの穴に色付け 前のトピック 次のトピック
ジャンプします: