Random Thoughts |
Rome did not create a great empire by having meetings, they did it by killing all those who opposed them.
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 07:31:57 |
|
|
|
著者
|
トピック: 3Dスケッチにおける、直線の名前取得方法 (閲覧数 3577 回) |
|
hukulogy
新人さん
オフライン
投稿: 5
I'm a llama!
|
|
3Dスケッチにおける、直線の名前取得方法
« 投稿日: 2013/03/31 - 22:15:56 » |
|
初めまして、hukulogyと申します。 いつもこの掲示板にお世話になっております、 SolidWorks API初心者です。
開発環境としましては、SolidWorks 2012学生版を使用し、EXCELと連携させるためにVBAでプログラムを作成しております。
質問の内容と致しましてはタイトルに記述しております通り、3Dスケッチにおける、直線の名前取得方法です。
私がやろうとしていることですが、 まず3Dスケッチを開いている状態で直線が選択されており、その名前をEXCELに出力。 別のプログラムを走らせる時にその名前を読み込んで、再度同じ直線が選択できるようにしたいのです。
プログラムとしましては、SelectByID2 Method(IModelDocExtension)を使用して再度選択することを考えております。 ですので、その引数であるName 直線の名前@スケッチの名前 が取得できたら嬉しいと思っております。
過去の質問にも目を通しましたが、なにぶん初心者なため求めているプログラムがあるか分かりませんでした・・・ この方法をご存知の方が居られましたら、ご教示ください。 宜しくお願い致します。
|
|
|
|
hukulogy
新人さん
オフライン
投稿: 5
I'm a llama!
|
|
Re:3Dスケッチにおける、直線の名前取得方法
« 返信 #1 投稿日: 2013/04/01 - 08:12:17 » |
|
hisa様、はじめまして。宜しくお願いします。
早々にご回答して頂き、ありがとうございます。 名前は取得出来ないのですか・・・残念です。^^; 寸法では出来たので可能であると考えておりました。
詳しい説明と、そのプログラムコード、ありがとうございます。 説明して頂いた内容を拝見させて頂きましたが、Case1の方が良さそうですね。
一度Case1の方法でやってみます。 ご教示ありがとうございました。
今後もまた質問させて頂くことがあると思いますので、その時はまた宜しくお願い致します。
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:3Dスケッチにおける、直線の名前取得方法
« 返信 #2 投稿日: 2013/04/01 - 10:27:12 » |
|
ふと、「もしかしたらGetIDで得られる数値が"直線1"などの数値と一致するのでは!?」と思ったので、少し検証してみました。
結果、GetIDで得られる2つの数値の内、後者が一致していそうです。
もっと色々試してみないと本当に大丈夫かは分かりませんが、ご参考まで
Code: ' ========== Case 3 ========== ' スケッチ名取得 Set swSketch = swSketchSeg.GetSketch sSketchName = swSketch.Name ' セグメントの種類取得 lSketchSegType = swSketchSeg.GetType ' ID取得 vID1 = swSketchSeg.GetID
' 選択解除 swModel.ClearSelection2 True ' 要素の種類から、SelectByID2に渡す値を設定 Select Case lSketchSegType Case 0 ' 直線 sSegName = "Line" sSegType = "EXTSKETCHSEGMENT" Case 1 ' 円弧 sSegName = "Arc" sSegType = "EXTSKETCHSEGMENT" Case 2 ' 楕円 sSegName = "Ellipse" sSegType = "EXTSKETCHSEGMENT" Case 3 ' スプライン sSegName = "Spline" sSegType = "EXTSKETCHSEGMENT" Case 4 ' スケッチテキスト(何故かSelectByID2では選択出来ませんでした…) sSegName = "SketchText" sSegType = "EXTSKETCHTEXT" Case 5 ' 放物線 sSegName = "Parabola" sSegType = "EXTSKETCHSEGMENT" End Select ' 要素の名前をIDとスケッチ名から設定 sSegName = sSegName & vID1(1) & "@" & sSketchName bRet = swModel.Extension.SelectByID2(sSegName, sSegType, 0#, 0#, 0#, False, 0, Nothing, 0) Debug.Print bRet |
追伸:寸法は、名前が分かっているのであればModelDoc2.Parameterで、直接取得することが出来ますよ
|
|
|
|
hukulogy
新人さん
オフライン
投稿: 5
I'm a llama!
|
|
Re:3Dスケッチにおける、直線の名前取得方法
« 返信 #3 投稿日: 2013/04/01 - 13:50:36 » |
|
検証して頂き、ありがとうございます。
今の私のプログラムでは、要素の名前が得られたらそのまま使えますので、大助かりです。
>追伸:寸法は、名前が分かっているのであればModelDoc2.Parameterで、直接取得することが出来ますよ そうだったんですね・・・全然知りませんでした。 いちいち選択しては色々Setした後にGetValue3を行っていましたから大変参考になります
|
|
|
|
|
|
|
|