Home > Tags > SolidWorks
SolidWorks
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
全面ループして色の設定。
何とか変わった。
タイマーは面倒くさそうなので、とりあえずwhileで点滅させる。
- Comments (Close): 0
- Trackbacks (Close): 0
Home > Tags > SolidWorks