今回は視点の切り替えについて考えてみましょう
SolidWorksは標準で「正面」「平面」「右側面」の3平面を持っています。
各平面と座標系との関係は
正面:XY座標
平面:XZ座標
右側面:YZ座標
となっています。
ここまで読んで「あれっ、ちょっとおかしいな」と思った方はいますでしょうか?
自分の目線で形状を考えた場合、正面とは形状を前から見るのでXZ座標に、平面(上面)は形状を上から見るのでXY座標になるのではないかと考えました。
そう考えるとSolidWorksの正面と平面は逆になりますので、今回は正面と上面の表示を行うためのマクロを作成してみましょう。
まずサンプルマクロを取得/実行してください。こちらから...
処理は至って単純で
正面ボタンを押したときはXXXを使用して平面ビューを
上面ボタンを押したときはXXXを使用して正面ビューを
呼び出しているだけです。
これだけではおもしろくないので別の方法で画面切替を行ってみましょう。
以下のコードを UserForm1 に追加してください
Private Sub View_Change() Dim Xform As SldWorks.MathTransform Dim data As Variant Set Xform = swModel.ActiveView().Orientation3 data = Xform.ArrayData data(0) = 1# data(1) = 0# data(2) = 0# data(3) = 0# data(4) = 1# data(5) = 0# data(6) = 0# data(7) = 0# data(8) = 1# Xform.ArrayData = data swModel.ActiveView().Orientation3 = Xform swModel.ViewZoomtofit2 End Sub |
次に上面ボタンの処理を変更してみましょう。
CommandButton1_Click内の処理を上記関数呼び出しに変更します。
Private Sub CommandButton1_Click() View_Change ' swModel.ShowNamedView2 "*正面", 1 End Sub |
修正したら実行してみましょう。
どうでした?修正前と同じように動作しましたか?
正面ボタンの処理も修正します。
CommandButton1_Click内の処理を上記関数呼び出しに変更します
Private Sub CommandButton2_Click() View_Change swModel.ViewRotXPlusNinety ' swModel.ShowNamedView2 "*底面", 6 ' swModel.ViewZoomtofit2 End Sub |
View_Changeの処理は必ずXY平面を画面に表示するため
ViewRotXPlusNinetyでX軸を回転させてXZ平面を画面に表示させます。
ではまた!