Random Thoughts |
As seen above a urinal: What are you looking up here for? The real joke is in your hands.
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 20:23:42 |
|
|
|
著者
|
トピック: 穴情報の取得について (閲覧数 2191 回) |
|
shin
新人さん
オフライン
投稿: 4
I'm a llama!
|
|
穴情報の取得について
« 投稿日: 2004/05/26 - 08:48:29 » |
|
はじめまして、shinです solidworks2003で穴の情報を取得したいのですが、 手詰まりになってしまいました。そこで教えていただければと思います。
パーツファイルで穴の面のエンティティ名を入力した状態のファイルに対して、そのエンティティを選択するプログラムは出来たのですが、そこから、穴の面の情報(エンティティ名、直径、中心位置)をテキストファイルに保存するにはどうしたらいいのでしょうか?
名前が記入されたエンティティを選択するまでのソースを貼り付けておきます
|
|
|
|
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 » |
|
どうもありがとうございました。 うまくいきそうです。
|
|
|
|
|
|
|
|