Random Thoughts |
When your dreams turn to dust, vacuum!
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 07:25:38 |
|
|
|
著者
|
トピック: 参照軸の取得について (閲覧数 2292 回) |
|
hyoukagizyutu
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
参照軸の取得について
« 投稿日: 2011/12/16 - 12:32:31 » |
|
以前、「スケッチ上の点のアセンブリ上での座標取得について」でお世話になった者です。 先のプログラム自体は問題ないのですが、下記のような点を追加したいと考えております。
(1)穴フィーチャーのスケッチ方向を取得したい。 (ボルトと穴の位置判定を行う際に軸方向が必要なため) (2)直線・円パターンの参照軸(GetD1AxisType)を取得したい。 (先のプログラムではパターンにて作成された穴位置を取得できないのでパターン数・ピッチ等から穴位置を算出するため)
サンプルプログラムを参考にしながら軸の取得をしようとしているのですがうまくいかないためどうかよろしくお願いします。
以下、作成中のプログラムの一部です。参照軸1の取得ができません。
ElseIf strFeatureTypeName = "LPattern" And swCompFeature.IsSuppressed = False Then ' フィーチャ名取得 strFeatureName = swCompFeature.Name ' 直線パターンデータの取得 Dim swLP As SldWorks.LinearPatternFeatureData Set swLP = swCompFeature.GetDefinition Dim line1 As Long 'パターン数 Dim line2 As Long line1 = swLP.D1TotalInstances line2 = swLP.D2TotalInstances Dim Space1 As Double 'ピッチ Dim Space2 As Double Space1 = swLP.D1Spacing Space2 = swLP.D2Spacing Dim Rd1 As String '軸の反転判定 Dim Rd2 As String Rd1 = swLP.D1ReverseDirection Rd2 = swLP.D2ReverseDirection
Dim type1 As Long '参照軸1 type1 = swLP.GetD1AxisType Debug.Print "type=" & type1 Dim Axis1 As SldWorks.RefAxis Dim d1Edge As SldWorks.Edge Dim d1Curve As SldWorks.Curve Dim vLineParam As Variant Select Case type1 Case 0
Axis1 = swLP.d1Axis Case 1
d1Edge = swLP.d1Axis 'd1Curve = d1Edge.GetCurve 'vLineParam = d1Curve.LineParams 'Debug.Print "Root Pt = (" & vLineParam(0) * 1000# & ", " & vLineParam(1) * 1000# & ", " & vLineParam(2) * 1000# & ") mm" End Select
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:参照軸の取得について
« 返信 #1 投稿日: 2011/12/19 - 20:02:28 » |
|
hyoukagizyutuさん、こんにちは。
問題の箇所は Axis1 = swLP.d1Axis ですよね。
私の方でも試してみましたが取得することは出来ませんでした・・・
もしかするとAPIの不具合かもしれません。 代理店のサポートの方へ連絡して確認してもらうと良いと思います。
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:参照軸の取得について
« 返信 #2 投稿日: 2011/12/21 - 00:36:59 » |
|
LinearPatternFeatureData::D1AxisプロパティをAPIヘルプで確認したところ、 このプロパティを使用する際の詳細についてはフィーチャーを定義する選択へのアクセス(Accessing Selections that Define Features)を参照してください。 と記述がありました。
つまり、D1Axisで軸を取得する前に、LinearPatternFeatureData::AccessSelectionsメソッドでフィーチャー定義へのアクセスを有効にしなければならないみたいです。
具体的には、
swLP.AccessSelections swModel, swComp '部品の場合は、2つ目の引数はNothing Axis1 = swLP.d1Axis swLP.ReleaseSelectionAccess
といった感じです
基本的に、フィーチャー定義のプロパティでオブジェクトを返すものは、フィーチャーを定義する選択へのアクセスの手順を踏まないといけないっぽいですね。
|
|
|
|
hyoukagizyutu
新人さん
オフライン
投稿: 6
I'm a llama!
|
|
Re:参照軸の取得について
« 返信 #3 投稿日: 2011/12/21 - 12:31:00 » |
|
Makoronさん hisaさん いつもお世話になっています。 ご返信ありがとうございます。
Makoronさん 会社のほうでsolid works自体のサポートは加入しているのですが、APIについては対象外とのことでマクロについては サポートしてもらうことができません。しかしながら、不具合ということであれば何らかの形で返答をもらえるかもしれません。
hisaさん 「フィーチャーを定義する選択へのアクセス」についてまだ理解できていませんが頂いたコードとヘルプを見つつ試してみたいと思います。
お二方ともありがとうございました。
|
|
|
|
|
|
|
|