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

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









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

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

オフライン

投稿: 4



I'm a llama!

プロファイルを見る メールアドレス
穴情報の取得について
« 投稿日: 2004/05/26 - 08:48:29 »
引用して返信

はじめまして、shinです
solidworks2003で穴の情報を取得したいのですが、
手詰まりになってしまいました。そこで教えていただければと思います。

パーツファイルで穴の面のエンティティ名を入力した状態のファイルに対して、そのエンティティを選択するプログラムは出来たのですが、そこから、穴の面の情報(エンティティ名、直径、中心位置)をテキストファイルに保存するにはどうしたらいいのでしょうか?

名前が記入されたエンティティを選択するまでのソースを貼り付けておきます
 plan2.txt
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:穴情報の取得について
« 返信 #1 投稿日: 2004/05/26 - 11:37:01 »
引用して返信

shinさん、はじめまして。

SolidWorks Japan のホームページにあるAPIサンプルを見てみてはどうでしょうか?

[サポート情報]-[APIサポート情報・APIダウンロード]-[API サンプルの検索]
にある『Geometry & Topology』あたりが良いのではないかと思います。
議長に報告する   記録済み
shin
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る メールアドレス
Re:穴情報の取得について
« 返信 #2 投稿日: 2004/05/27 - 08:21:37 »
引用して返信

ありがとうございます。

当初無視しようと思っていた穴も考えないといけなくなって、
そうすると100近い穴があって、一つ一つエンティティ情報の名前を入力していくと、非常に面倒なので、
違う方法を考えようと思います、またわからなくなったらよろしくお願いします。
議長に報告する   記録済み
shin
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る メールアドレス
エッジの仕分け
« 返信 #3 投稿日: 2004/06/04 - 11:17:13 »
引用して返信

下記のプログラムで、faceという面上のエッジ(直線、円弧両方)の選択および情報の取得(円弧の場合、始点、終点の絶対座標、円弧原点からの始点、終点の相対角度)ができたのですが、円弧のみ選択および円弧情報のみ取得して、さらに中心の絶対座標値を取り出したいのですが、何かいい方法はありませんか?

retval = Edge.GetCurve ()
が使えそうなのですが、うまくいきませんでした


Option Explicit

Dim swApp As Object

Dim Part As Object

Dim face As Object

Dim edgecounts As Variant

Dim edges As Variant

Dim index2 As Integer

Dim edgeparams As Variant

Const swSelFACES = 2

Dim x_s As Variant

Dim y_s As Variant

Dim x_f As Variant

Dim y_f As Variant

Dim theta_s As Variant

Dim theta_f As Variant


Sub main()

Set swApp = Application.SldWorks

Set swApp = CreateObject("SldWorks.Application")

Set Part = swApp.ActiveDoc


'名前faceの面を検出し、面上のエッジ情報取得

Set face = Part.GetEntityByName("face", 2)

edgecounts = face.GetEdgeCount()

edges = face.GetEdges()

For index2 = 0 To edgecounts - 1

    edges(index2).Select (True)
   
    edgeparams = edges(index2).GetCurveParams2()
   
    x_s = edgeparams(0) * 10 ^ 3
   
    y_s = edgeparams(1) * 10 ^ 3
   
    theta_s = edgeparams(6)
   
    x_f = edgeparams(3) * 10 ^ 3
   
    y_f = edgeparams(4) * 10 ^ 3
   
    theta_f = edgeparams(7)
   
    Open "d:\test\test2.txt" For Append As #3
    Print #3, x_s, y_s, theta_s, x_f, y_f, theta_f
    Close #3
Next

End Sub
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:穴情報の取得について
« 返信 #4 投稿日: 2004/06/04 - 12:53:43 »
引用して返信

こんなのでどうですか?

Option Explicit

Dim swApp As Object
Dim Part As Object
Dim face As Object
Dim edgecounts As Variant
Dim edges As Variant
Dim index2 As Integer
'*****追加*****
Dim curve  As SldWorks.curve
Dim cparams As Variant
Dim center_x As Variant
Dim center_y As Variant
Dim center_z As Variant
Dim axis_x As Variant
Dim axis_y As Variant
Dim axis_z As Variant
Dim radius As Variant
'**************
Dim edgeparams As Variant
Const swSelFACES = 2
Dim x_s As Variant
Dim y_s As Variant
Dim x_f As Variant
Dim y_f As Variant
Dim theta_s As Variant
Dim theta_f As Variant

Sub main()

    Set swApp = Application.SldWorks
    Set swApp = CreateObject("SldWorks.Application")
    Set Part = swApp.ActiveDoc
   
    '名前faceの面を検出し、面上のエッジ情報取得
    Set face = Part.GetEntityByName("face", 2)
    edgecounts = face.GetEdgeCount()
    edges = face.GetEdges()
   
    For index2 = 0 To edgecounts - 1
        edges(index2).Select (True)
       
        '*****追加*****
        Set curve = edges(index2).GetCurve
        If curve.IsCircle() Then
            cparams = curve.CircleParams()
            center_x = cparams(0)
            center_y = cparams(1)
            center_z = cparams(2)
            axis_x = cparams(3)
            axis_y = cparams(4)
            axis_z = cparams(5)
            radius = cparams(6)
        '**************
            edgeparams = edges(index2).GetCurveParams2()
            x_s = edgeparams(0) * 10 ^ 3
            y_s = edgeparams(1) * 10 ^ 3
            theta_s = edgeparams(6)
            x_f = edgeparams(3) * 10 ^ 3
            y_f = edgeparams(4) * 10 ^ 3
            theta_f = edgeparams(7)
           
            Open "c:   est.txt" For Append As #3
            '*****変更*****
            Print #3, center_x, center_y, center_z, _
                      axis_x, axis_y, axis_z, radius, _
                      x_s, y_s, theta_s, x_f, y_f, theta_f
            '**************
            Close #3
           
        '*****追加*****
        End If
        '**************
    Next

End Sub
議長に報告する   記録済み
shin
新人さん
*

オフライン

投稿: 4



I'm a llama!

プロファイルを見る メールアドレス
Re:穴情報の取得について
« 返信 #5 投稿日: 2004/06/04 - 13:40:44 »
引用して返信

どうもありがとうございました。
うまくいきそうです。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 穴情報の取得について 前のトピック 次のトピック
ジャンプします: