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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: ツリーの展開 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: ツリーの展開  (閲覧数 4566 回)
hdyk_yamada
カタマリの王様!?
*****

オフライン

投稿: 500



NIGHTINGALE

プロファイルを見る
ツリーの展開
« 投稿日: 2005/07/04 - 21:17:06 »
引用して返信

いつもお世話になります。

ツリーの展開のマクロを作ろうと思ったのですが、よくわかりません。
どなたか、教えてください。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ツリーの展開
« 返信 #1 投稿日: 2005/07/05 - 22:46:41 »
引用して返信

いろいろと調べてみたのですが、フィーチャツリーをコントロールするAPIは見つかりませんでした。

簡易的にでも実現できないかと思って、Featureオブジェクトを取得してSelectメソッドで選択、そしてSendKeys関数で+や−を送ってツリーの展開・収縮できないかと思ってやってみたのですが、これも思うように動作しませんんでした。

hdyk_yamadaさんがどの様なことをやられたいかはわからないのですが、参考までに簡単なツリー展開の手動操作を書いておきます。

ツリーのトップを選択してキーボードの「*」を押す。

これで、全ての子供のツリーが展開されます。
(SWに限らずほとんどのツリーコントロールで可能な方法です。)
議長に報告する   記録済み
hdyk_yamada
カタマリの王様!?
*****

オフライン

投稿: 500



NIGHTINGALE

プロファイルを見る
Re:ツリーの展開
« 返信 #2 投稿日: 2005/07/06 - 08:58:22 »
引用して返信

わあ〜〜〜
こんな手で出来るなんて知りませんでした。
『*』を押すと、今表示しているツリー以降を展開
『-』を押すと収縮するんですね。
ありがとうございました。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #3 投稿日: 2006/02/02 - 10:23:18 »
引用して返信

hiroponです
私も現在、FeatureManagerのツリー操作でしたいことができません。
マクロ上で部品を選択させたときに、FeatureManagerでも選択させたいのですが
カーソルが移動してくれません。サブアセンブリ内の部品であればサブアセンブリの
展開すらしてくれません。。。困りました。。。
どなたかご存知ないでしょうか。。。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:ツリーの展開
« 返信 #4 投稿日: 2006/02/02 - 11:02:27 »
引用して返信

hisaです

FeatureManagerデザインツリーの展開の可否は、システムオプションの
"FeatureManager"内にある"選択アイテムの自動表示"チェックのON/OFFに
左右されるみたいなので、APIでこのチェックをONにすれば対応出来ると
思います。

ざっとAPIで選択に関するメソッドを探ってもFeatureManagerに関する引数が
見当たらなかったので、とりあえずこんなところで…
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #5 投稿日: 2006/02/02 - 11:39:11 »
引用して返信

hiroponです
hisaさんありがとうございます。
こんなチェックボックスがあったんですね。。。
ところがですねーー。このチェックがOnしていても
マクロで部品を選択するとFeatureManagerのカーソルが
移動しないんです (手動で選択すると移動するんですが。。。)
マクロ上でチェックOnにしないといけないのかなと思い
SldObj.SetUserPreferenceToggle swUserPreferenceToggle_e.swFeatureManagerEnsureVisible, True
を追加したんですが同じでした
困りました
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:ツリーの展開
« 返信 #6 投稿日: 2006/02/02 - 12:04:16 »
引用して返信


引用:
マクロで部品を選択するとFeatureManagerのカーソルが
移動しないんです (手動で選択すると移動するんですが。。。)


丁度作成中のマクロにも選択の処理(Select2)があったので確認してみましたら…
確かに展開されてません
どうやらSelectByIDであれば有効のようです。←誤情報
マクロの記録で確認しただけだったので中途半端な情報になってしまいましたね

もう少し探ってみようと思います
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #7 投稿日: 2006/02/02 - 12:32:19 »
引用して返信

SelectByID有効でしたか? 
私、
PModelObj.Extension.SelectByID2(CompObj(CompIndex).SelectPassName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
というような感じで、(座標からではなく)構成部品の名称から、選択しているんですが、
この方法でも、展開されませんでした。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:ツリーの展開
« 返信 #8 投稿日: 2006/02/02 - 13:48:21 »
引用して返信

確かに…COMPONENTでは展開されませんね……
度々中途半端な情報でスミマセン…

更に探ってみたところ、デザインツリーの展開が機能するのは
一部の種類の要素を選択したときのみ有効のようです。(面と原点は確認済み)
『SelectByIDだから〜』の件は誤った情報です。スミマセンm(__)m

ですので、選択した構成部品(COMPONENT)からボディを取得(GetBody)して
更にボディから最初の面を取得(GetFirstFace)した後、取得した面の選択(Select2)
すると展開されます。(これはしっかりと検証をしました )

上記の方法以外に面以外の有効な要素の取得などもっと合理的な手段があるかも
しれませんが、とりあえずこんなところで…
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #9 投稿日: 2006/02/02 - 14:16:02 »
引用して返信

こちらこそ深く検証いただき有難うございます。
そうゆうことだったのかーー
面や原点を選択だったとは 思いつきませんでした。。。
ありがとうございます。助かります
ということは、サブアセンブリを選択してFeatureManagerでのカーソルを
移動させようとすると、原点を選択するってことになるのかな
調査が必要ですね。
サブアセンブリもできてくれないと 機能のメリットが半減するので
できてほしい!
hisaさん、本当に助かりました。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #10 投稿日: 2006/02/02 - 14:40:45 »
引用して返信

思いのほか、早く調査が完了しました。
原点を選択して ツリー展開およびカーソルの移動が可能でした。
私の方は SlectById2 関数を使用し、第一引数 Nameに
目的部品の原点をあらわす 文字列を入力することで
実現できました。
サブアセンブリにも対応しました。
ありがとうございました。
議長に報告する   記録済み
hdyk_yamada
カタマリの王様!?
*****

オフライン

投稿: 500



NIGHTINGALE

プロファイルを見る
Re:ツリーの展開
« 返信 #11 投稿日: 2006/02/06 - 20:54:20 »
引用して返信

出来ましたか?
私はまだ出来ません。
記録で取ると『"COMPONENT"』が出ていたのでやってみたのですが、うまくいきませんでした。
もう少し詳しく教えてください。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #12 投稿日: 2006/02/07 - 15:06:17 »
引用して返信

hdyk_yamadaさん
コンポーネントでなく原点をまず選択します  
boolstatus = PModelObj.Extension.SelectByID2("点1@原点@" & ”部品コンポーネント", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)

でまず原点選択

boolstatus = PModelObj.Extension.SelectByID2( ”部品コンポーネント", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

で部品選択でいけます。
ツリー展開だけなら、2つめの部品選択はいらないかもしれません
原点選択の場合は 第二引数は"EXTSKETCHPOINT"にします 。。。

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

オフライン

投稿: 500



NIGHTINGALE

プロファイルを見る
Re:ツリーの展開
« 返信 #13 投稿日: 2006/02/07 - 16:29:41 »
引用して返信

ありがとうございます。

早速やってみます。
議長に報告する   記録済み
hdyk_yamada
カタマリの王様!?
*****

オフライン

投稿: 500



NIGHTINGALE

プロファイルを見る
Re:ツリーの展開
« 返信 #14 投稿日: 2006/02/07 - 17:11:16 »
引用して返信

SW2004では、SelectByID2が存在しないのでSelectByIDでやってみたんですが、何も起こらなかった。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ツリーの展開
« 返信 #15 投稿日: 2006/02/07 - 17:59:24 »
引用して返信

そうですかーー :-
私のは2005なので問題ないのかなぁー 
2004を使っている人はいないから、確認のしようが
ないです。ごめんなさい
hisaさんのおっしゃる Select2ではどうです?

あとは、ちゃんと選択できてます?(できてたらごめんなさい
しっかり選択できているかは

boolstatus = PModelObj.Extension.SelectByID2("点1@原点@" & ”部品コンポーネント", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)

の返り値 boolstatusで確認できますよ(TrueならOK)
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: ツリーの展開 前のトピック 次のトピック
ジャンプします: