エクセルで自動作図 その5

Jw_cad 使い方.com

Jw_cadの使い方について、入門から応用、自動作図まで解説します。

エクセルで自動作図 その5

今回は、ENTITIESセクションにデータを入れていく所を解説します。
直線のDXFデータを作ります。
この考え方が、直線、円弧、円のデータを作る場合で共通です。
エクセルで自動作図をする場合のキモとなる部分です。

直線のDXFデータをつくるマクロ

Sub test5()
Dim i As Long
Dim RowEnd As Long
Dim Row_Enti As Long
Dim Xcod_S, Ycod_S
Dim Xcod_E, Ycod_E

RowEnd = Range("A1").End(xlDown).Row
For i = 1 To RowEnd
If Cells(i, 1) = "ENTITIES" Then
Row_Enti = i
Exit For
End If
Next i

Xcod_S = Range("D2").Value
Ycod_S = Range("E2").Value
Xcod_E = Range("D3").Value
Ycod_E = Range("E3").Value

Call LineDraw(RowEnd, Row_Enti, Xcod_S, Ycod_S, Xcod_E, Ycod_E)
End Sub

 

Sub LineDraw(RowEnd, Row_Enti, Xcod_S, Ycod_S, Xcod_E, Ycod_E)
Dim EntyData(16)
Dim LineTyp_code As String
Dim LineCol_code As Long
Dim i As Long
Dim j As Long
Dim Row_EndSec As Long
Dim cnt As Long

LineTyp_code = "CONTINUOUS"
LineCol_code = 7

EntyData(1) = 0
EntyData(2) = "LINE"
EntyData(3) = 8
EntyData(4) = "_0-0_"
EntyData(5) = 6
EntyData(6) = LineTyp_code
EntyData(7) = 62
EntyData(8) = LineCol_code
EntyData(9) = 10
EntyData(10) = Xcod_S
EntyData(11) = 20
EntyData(12) = Ycod_S
EntyData(13) = 11
EntyData(14) = Xcod_E
EntyData(15) = 21
EntyData(16) = Ycod_E
For i = Row_Enti + 1 To RowEnd
If Cells(i, 1) = "ENDSEC" Then
Row_EndSec = i
cnt = 0
For j = 1 To 16
Cells(Row_EndSec + cnt - 1, 1).EntireRow.Insert
Cells(Row_EndSec + 1 + cnt - 2, 1).Value = EntyData(j)
cnt = cnt + 1
Next j
End If
Next i
End Sub

 

マクロの解説

プロシージャtest5 で、ENTITIESのある行を探します。
さらに、直線の始点、終点の座標がはいっているセルの値を
変数に代入します。

 

サブプロシージャLineDraw で、直線のDXFデータをENTITIESセクションに書き込みます。
ENDSECのある行を探します。
その1つ上の行(0が入っている)の上に、1行挿入します。
EntireRow.Insert がそれです。
この時、ENDSECの行が1行下にずれることに注意して下さい。
1行挿入した行は、ENDSECの行からみると、2行上になります。
ここに、データをいれます。
これを繰り返します。

動画解説

残りは動画の中で解説しました。参考にして下さい。

 

 

 
このエントリーをはてなブックマークに追加