【ごまかんぱちの挑戦】エクセルでAutoCADの自動作図(その4)
こんにちは。ごまかんぱちです。🐟
AutoCADの自動作図を目指して奮闘しています。
第4回では、線分とポリラインを描いていきます。
それでは スタートです。
4-1. 複雑な図形
前回は 単純な線分を描きましたが、今回は 少しだけ複雑な図形を扱います。
・線分(応用編)
まずは、エクセルに 以下のような図形と数値を書いてみましょう。
この図形を 自動作成します。
コードは こうなります。
Print #1, "line " & 0 & "," & 0 & " " & Range("E10") & "," & 0 & " "
Print #1, "line " & Range("E10") & "," & 0 & " " & Range("E10") & "," & Range("G6") & " "
Print #1, "line " & Range("E10") & "," & Range("G6") & " " & Range("D6") & "," & Range("G6") & " "
Print #1, "line " & Range("D6") & "," & Range("G6") & " " & Range("D6") & "," & Range("B8") & " "
Print #1, "line " & Range("D6") & "," & Range("B8") & " " & 0 & "," & Range("B8") & " "
Print #1, "line " & 0 & "," & Range("B8") & " " & 0 & "," & 0 & " "
うーん 圧倒されてしまいそう。😥
でも 前回の基本編が理解できていれば できるはずです。
線分が6本必要なので、6行のコードになっています。
実行して 自動作図すると こうなります。
思い通りになりましたね。😊
エクセルの数値を変えて 再実行すると しっかり対応した図形が作図されます。
相対座標を使うと 簡略化できることもありますので、使ってみましょう。
Print #1, "line " & 0 & "," & 0 & " @" & Range("E10") & "," & 0 & " "
Print #1, "line @" & 0 & "," & 0 & " @" & 0 & "," & Range("G6") & " "
Print #1, "line @" & 0 & "," & 0 & " @" & -Range("F2") & "," & 0 & " "
Print #1, "line @" & 0 & "," & 0 & " @" & 0 & "," & -Range("E4") & " "
Print #1, "line @" & 0 & "," & 0 & " @" & -Range("D6") & "," & 0 & " "
Print #1, "line @" & 0 & "," & 0 & " " & 0 & "," & 0 & " "
最初と最後は絶対座標、ほかは 相対座標(@)になっています。
かなり スッキリしましたね。
・ポリライン
同じ図形をポリラインで描いてみましょう。
コードはこうなります。
Print #1, "pline " & 0 & "," & 0 & " " & Range("E10") & "," & 0 & " " & Range("E10") & "," & Range("G6") & " " & Range("D6") & "," & Range("G6") & " " & Range("D6") & "," & Range("B8") & " " & 0 & "," & Range("B8") & " c"
長いですが、改行せずに 1行で書いてくださいね。
実行して 自動作図すると…
ポリラインができました。😊
相対座標だと こうなります。
Print #1, "pline " & 0 & "," & 0 & " @" & Range("E10") & "," & 0 & " @" & 0 & "," & Range("G6") & " @" & -Range("F2") & "," & 0 & " @" & 0 & "," & -Range("E4") & " @" & -Range("D6") & "," & 0 & " c"
4-2. 今回のまとめ
最後に 今回のまとめです。
今回は 線分とポリラインを それぞれ 絶対座標と相対座標で書きました。
どれも 使いどころが出てくると思いますので しっかりマスターしましょう。
Sub macro()
Sakuzu = ThisWorkbook.Path & "\CAD_file.scr"
Open Sakuzu For Output As #1
Print #1, "osnap non"
'********↑前処理↑********
Print #1, "line " & 0 & "," & 0 & " " & Range("E10") & "," & 0 & " "
Print #1, "line " & Range("E10") & "," & 0 & " " & Range("E10") & "," & Range("G6") & " "
Print #1, "line " & Range("E10") & "," & Range("G6") & " " & Range("D6") & "," & Range("G6") & " "
Print #1, "line " & Range("D6") & "," & Range("G6") & " " & Range("D6") & "," & Range("B8") & " "
Print #1, "line " & Range("D6") & "," & Range("B8") & " " & 0 & "," & Range("B8") & " "
Print #1, "line " & 0 & "," & Range("B8") & " " & 0 & "," & 0 & " "
'********↓後処理↓********
Print #1, "zoom e"
Print #1, "filedia 1"
Close #1
End Sub
今回はここまで。👍
次回は 今回描いた図形に 寸法を入れていきます。
お楽しみに。
「役に立った!」「助かった!」と感じたらサポートいただけると嬉しいです。😊