1. プログラム!
1.1 導入
このEXCELファイルを開いた状態で「開発」タブ→「Visual Basic」を押すと「Microsoft Visual Basic for Applications」(VBA)が開きます。
VBA画面左上に「プロジェクト-VBAProject」ウインドウが有り、そこにはファイルのツリー構造が示されていますので、その中から現在編集しているEXCELファイル名(***)の「VBAProject(***_xlsm)」→「Microsoft Excel Objects」→から現在編集しているEXCELのシート名を選択し、下記プログラムコードを張り付けて保存するだけでOKです!
1.2 中身
表1変数行に有る角度「θ」の値を10°刻みで変化させ、これを表1の動作角度入力欄に入力した角度(表では360)まで行います。
これら一連の処理を連続して行います。
'NOBのArduino日記!(20170823作成)
If TARGET.Address = "$O$4" Then
Dim A As Variant, B As Variant, link As Variant, axis As Variant
A = Array(, 24, 24, 24, 25, 27, 26, 28, 26, 23, 23, 23)
B = Array(, 25, 26, 27, 27, 28, 28, 29, 29, 25, 26, 22)
link = Array(, "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "m")
axis = Array(, , , , , , , , , , , , , , , , , , , , , , "O", "A", "B", "C", "D", "E", "F", "G")
Range("N7") = I
'オートシェイプ削除
For Each E In ActiveSheet.Shapes
ActiveSheet.Shapes(1).Delete
Next
'b~mのリンク・記号を描画
For j = 1 To UBound(A)
'リンク
With ActiveSheet.Shapes.AddLine(Cells(A(j), 12), Cells(A(j), 13), Cells(B(j), 12), Cells(B(j), 13)).Line
.ForeColor.RGB = RGB(255, 0, 0)
.Weight = 0.75
End With
'リンク記号
ActiveSheet.Shapes.AddShape(msoShapeRectangle, (Cells(A(j), 12) + Cells(B(j), 12)) / 2 - 10, (Cells(A(j), 13) + Cells(B(j), 13)) / 2 - 10, 48.75, 43.5).Select
With Selection.ShapeRange
.Fill.Visible = msoFalse
.Line.Visible = msoFalse
.TextFrame2.TextRange.Characters.Text = link(j)
.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.TextFrame2.TextRange.Characters.Font.Size = 11
End With
Next j
'軸ポイント
With ActiveSheet.Shapes
.AddShape msoShapeOval, Cells(22, 12) - 5, Cells(22, 13) - 5, 10, 10 'O
.AddShape msoShapeOval, Cells(24, 12) - 5, Cells(24, 13) - 5, 10, 10 'B
.AddShape msoShapeOval, Cells(29, 12) - 5, Cells(29, 13) - 5, 10, 10 'G
End With
'軸記号
For k = 22 To 29
ActiveSheet.Shapes.AddShape(msoShapeRectangle, Cells(k, 12) - 10, Cells(k, 13) - 10, 48.75, 43.5).Select
With Selection.ShapeRange
.Fill.Visible = msoFalse
.Line.Visible = msoFalse
.TextFrame2.TextRange.Characters.Text = axis(k)
.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
.TextFrame2.TextRange.Characters.Font.Size = 11
End With
Next k
Range("O4").Select
DoEvents
Next I
End If
End Sub
図9:VBAマクロ
1.3 使い方
上記「表」と「VBAコード」を保存したEXCELシートで、動作角度入力欄(O-4セル)に終了時の角度(°)を入力し、ENTERを押すだけで「テオ・ヤンセン機構」が一番上の図の様にアニメーションで表示されます。
3. まとめ
今回は「テオ・ヤンセン機構」の大まかな流れを確認する為にプログラムはコンパイル不要の「VBA」を使い、パラメータ微調整の為に座標計算はEXCELシートで行うと言う一見遠回りな事をしましたが結果として短時間で大枠が出来ました。
ABUアジア・太平洋ロボットコンテスト(ABU Asia-Pacific Robot Contest)
余談ですが昨日ロボコンを初めて見ました!
ベトナムが作った自動・半自動運転を切り替えられるロボットが異次元の強さでビックリしました
こう言った若い技術者が世の中をどんどん便利にして行ってくれるのですね!
あっぱれ!
励みになりますのでよければクリック下さい(^o^)/