見出し画像

【ごまかんぱちの挑戦】エクセルで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」とかにしたいなぁ と思いますよね。
そこで 寸法値の優先を使います。

・寸法線(寸法値の優先)

ここから先は

3,588字 / 8画像

¥ 300

「役に立った!」「助かった!」と感じたらサポートいただけると嬉しいです。😊