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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 3Dスケッチにおける、直線の名前取得方法 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 3Dスケッチにおける、直線の名前取得方法  (閲覧数 3420 回)
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!!

プロファイルを見る WWW
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を行っていましたから大変参考になります
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 3Dスケッチにおける、直線の名前取得方法 前のトピック 次のトピック
ジャンプします: