Home > Tags > SolidWorks

SolidWorks

SolidWorks APIに関する検討 その1の続編

前回報告したSolidWorksのAPI機能を使って色変更によるアニメーションのデモムービーを
2つアップします.今回は色を変更するだけです.



SolidWorks APIに関する検討 その2

  • Comments (Close): 0
  • Trackbacks (Close): 0

SolidWorks APIに関する検討

■Solid Works API その1 面の色を変える

普段、Solid Works使うことはないのだが、ある日Solid Worksでモデリングを行うことになった。
簡単な機械部品をモデリングしたり、時間があるときは好き勝手に謎のオブジェクトを作ってみたりした。
ある時マクロの存在に気づいた。マクロでモデルをいろいろ操作できたらおもしろいと思い、ちょっとかじってみることにした。

・面の色を変える

手始めに面の色を変える方法を調べることに。面の色をタイマーか何かで定期的に変更できればモデルを点滅させることが
できるんじゃないか、と。そのとき何も知らなかった自分はそんなことを漠然と考えていた。とりあえずモデルの点滅を目標に作業開始。
まず、APIについてのヘルプを開く。英語だ。早くもくじけそうになった。
何はともあれ、色を変更する面を取得せねばならない(だろう)。
英語のヘルプと格闘しつつ、ネットで情報をあさりつつ、調べたところ、モデル全体のオブジェクトからフィーチャーオブジェクト、
そこからフェイスオブジェクトというように階層的にデータを取得していけば面までたどり着けそうだ。

——————————————————————————————————————

まず始めに、

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

モデルデータを取得。で、

swModel.GetFeatureCount

フィーチャーの数を取得。フィーチャーの個数回ループして

Set swFeat = swModel.FeatureByPositionReverse()

swFeat.Name

フィーチャー名を確認、お目当てのフィーチャーを探す。(もっと効率のいい方法があるんだろうな)

vFaceArr = swFeat.GetFaces

目当てのフィーチャーのフェイスをごっそり取得して、

For Each vFace In vFaceArr

Set swFace = vFace

swFace.MaterialPropertyValues = vFeatColor

全面ループして色の設定。

img_1

何とか変わった。

タイマーは面倒くさそうなので、とりあえずwhileで点滅させる。

SolidWorks APIに関する検討②

  • Comments (Close): 0
  • Trackbacks (Close): 0

Home > Tags > SolidWorks

Search
Feeds
Authorized
奨学金支援制度
Meta

Return to page top