【ごまかんぱちの挑戦】エクセルでAutoCADの自動作図(その9)
こんにちは。ごまかんぱちです。🐟
AutoCADの自動作図を目指して奮闘しています。
第9回の今回は、何やら よくわからない図形を描いていきます。
9-1. 図形の等分割
今回は こんな図形を描きます。
上辺と下辺の長さが異なる台形を等分割するものです。
まずは エクセルで こう表現します。
色がついているセルに 好きな数字を入力します。
色がついていないセルには計算式が入ります。
緑四角のように入力してください。
まずは 外側の台形を描きます。
Print #1, "clayer Layer1" '画層の指定
Print #1, "line " & 0 & "," & 0 & " " & Range("J8") & "," & 0 & " "
Print #1, "line " & Range("J8") & "," & 0 & " " & Range("J2") & "," & Range("C5") & " "
Print #1, "line " & Range("J2") & "," & Range("C5") & " " & 0 & "," & Range("C5") & " "
Print #1, "line " & 0 & "," & Range("C5") & " " & 0 & "," & 0 & " "
線分4本で描きました。
続いて 分割線を描きます。
Print #1, "line " & Range("H8") * 1 & "," & 0 & " " & Range("H2") * 1 & "," & Range("C5") & " "
Print #1, "line " & Range("H8") * 2 & "," & 0 & " " & Range("H2") * 2 & "," & Range("C5") & " "
Print #1, "line " & Range("H8") * 3 & "," & 0 & " " & Range("H2") * 3 & "," & Range("C5") & " "
できました。
3本の分割線を引きました。 ・・・しかし!
これでは 4分割以外には対応できません。
そこで、セルF2に入力した分割数の値を使って for文でこう書きます。
For i = 1 To Range("F2")
Print #1, "line " & Range("H8") * i & "," & 0 & " " & Range("H2") * i & "," & Range("C5") & " "
Next
セルF2に入力する値を変えてみて 試してみましょう。
例えば「5」にすると…
うまくいきました。😊
これで いろいろな分割数に対応できます。
Print #1, "clayer Layer0" '画層の指定
Print #1, "line " & -10 & "," & Range("C5") / 2 & " " & (Range("J2") + Range("J8")) / 2 + 10 & "," & Range("C5") / 2 & " "
よくわからないですが、中心線を入れてみたりして。
CAD側に 画層「Layer0」がない方は このタイミングで作成しましょう。
【ごまかんぱちの挑戦】~ エクセルでAutoCADの自動作図(その5)を参照ください。
できました。😊
何かしらの役に立ちそうな図形ですね。
さあ、ここから寸法線を入れていくのですが、実は今回の話は ここからがメインなのです。
寸法値の優先を使って、寸法値の表記を変えていくのですが、普通にやると、決定の役割のつもりの “半角スペース” が、文字の ”半角スペース” に判定されて うまくいかないのです。
それを 無理矢理、テクニカルに・・・
必見です!
・寸法線(寸法値の優先)
・表示桁数の指定
・「×」か「@」か
ぜひ 続きも読んでください。
9-2. アドバンス
さあ、寸法線を入れていきます。
Print #1, "clayer Layer2" '画層の指定
Print #1, "dimlinear " & 0 & "," & 0 & " " & 0 & "," & Range("C5") & " v " & -14 & "," & 0
Print #1, "dimlinear " & 0 & "," & 0 & " " & Range("J8") & "," & 0 & " h " & 0 & "," & -14
Print #1, "dimlinear " & 0 & "," & Range("C5") & " " & Range("J2") & "," & Range("C5") & " h " & 0 & "," & Range("C5") + 14
できました。😊
この「100」を「5×20=100」とかにしたいなぁ と思いますよね。
そこで 寸法値の優先を使います。
・寸法線(寸法値の優先)
ここから先は
¥ 300
「役に立った!」「助かった!」と感じたらサポートいただけると嬉しいです。😊