Random Thoughts |
A fanatic is one who can't change his mind and won't change the subject. -Winston Churchill
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 13:05:58 |
|
|
|
著者
|
トピック: スケッチ寸法について (閲覧数 1572 回) |
|
motom
新人さん
オフライン
投稿: 7
I'm a llama!
|
|
スケッチ寸法について
« 投稿日: 2009/01/09 - 10:00:27 » |
|
いつもお世話になっております。 初心者のため、的外れな質問でしたらすみません。
アセンブリの中の各パーツの中の寸法値を変更したいと思っています。 デザインツリーの全てのパーツに存在する寸法にアクセスして 任意の寸法に値を反映させたいのですが・・。
下記プログラムだと"Extrusion"の寸法しか変更出来ません。 Sketch寸法にアクセス(?)して値を変更するには どのような方法がありますでしょうか?
ご教示の程、宜しくお願い致します。
Dim componentDoc As SldWorks.ModelDoc2 Set componentDoc = component.GetModelDoc
Dim swFeature As SldWorks.Feature Set swFeature = componentDoc.FirstFeature Do While Not swFeature Is Nothing If swFeature.GetTypeName2 = "Extrusion" Then ・ ・ ・
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:スケッチ寸法について
« 返信 #1 投稿日: 2009/01/13 - 17:30:20 » |
|
肝心の寸法取得の部分が書かれていないので、どこで引っ掛かっているかはナゾですが… "Extrusion"の寸法とは、押し出し量の寸法だけといった感じなのでしょうか
先日のトピック 【APIで直径寸法設定できない】 でも触れられていますが、フィーチャーの寸法へのアクセスは
Set swDispDim = swFeature.GetFirstDisplayDimension Do While Not swDispDim Is Nothing 〜ここに処理〜 Set swDispDim = swFeature.GetNextDisplayDimension(swDispDim) Loop
といった形でフィーチャーに関わる全ての寸法にアクセスできます。 値の変更になると、Set swDimension = swDispDim.GetDimension でDimensionオブジェクトを取得して swDimension.GetValue3やswDimension.SetValue3で取得/変更が出来ますよ
|
|
|
|
motom
新人さん
オフライン
投稿: 7
I'm a llama!
|
|
Re:スケッチ寸法について
« 返信 #2 投稿日: 2009/01/13 - 18:22:10 » |
|
hisa さん、ありがとうございます!
>肝心の寸法取得の部分が書かれていないので、どこで引っ掛かっているかはナゾですが… だからですね・・ ^_^; すみませんっっ。 hisa さんのメッセージであらためて見たところ、単純な間違いを発見しました。 ということで、下記プログラムに修正したら、走りました!
Do While Not displayDimension Is Nothing If Not displayDimension Is Nothing Then Dim dimension As SldWorks.dimension Set dimension = displayDimension.GetDimension2(0) If Not dimension Is Nothing Then
If (dimension.Name = "Test") Then Dim value As Double value = dimension.value dimension.value = 2 * value End If End If
Set displayDimension = swFeature.GetNextDisplayDimension_ (displayDimension) End If Loop
素人すぎて、間違いをなかなか発見出来ませんでした。すみません ありがとうございました。今後とも宜しくお願い致します。
|
|
|
|
|
|
|
|