chapter70 自動作図の基本
前回のおさらいをします。
前回のおさらいをします。
直線のデータを読み込みます。
必要なデータは、図形タイプ(直線)、線種、色、始点よ終点の座標です。
今回は、直線1本のデータなので、サブプロシージャに入れました。
その後、Entitiesの後に、データを挿入していきます。
複数ある場合は(実際はいつも複数ありますが)、ワークシートに設定しとくと便利です。
ちなみに、複数の図形を書く場合は、Entitiesの後に挿入するより、
ENDSECを検索して、この手前に挿入するようなコードを書くほうが簡単です。
それでは、続きを解説します。
今回はDXFファイルを作成し、ワークシートのデータを書き込むところです。
⑥名前をmyDXF.dxfで、DXFファイル(テキストデータ)を作成します。
FileSystemObjectを利用しています。
⑦テキストデータを開いて読み書きする承認をWindowsに命令します。
⑧セルのデータをテキストデータに書き込みます。
最終行番号をEndRowに代入していますので、カウンター変数が最終行番号を超えたら、
終了します。
Option Explicit
Sub test1()
Dim i As Long, j As Long, k As Long
Dim cnt As Long
Dim EndRow As Long
Dim ENTITIES_Row As Long
Dim EntitiesTyp, LineTyp, LineCol, Xcod_S, Ycod_S, Xcod_E, Ycod_E
Dim myDATA(20)
With Worksheets("TEST") <---①
.Cells.Delete
Worksheets("ENTITIES前(編集禁止)").Cells.copy .Range("A1") <---②
EndRow = .Range("A1").End(xlDown).Row
For i = 1 To EndRow
If .Cells(i, 1).Value = "ENTITIES" Then <---③
ENTITIES_Row = i
'直線 -------------------------------------
Call 直線データ(EntitiesTyp, LineTyp, LineCol, Xcod_S, Ycod_S, Xcod_E, Ycod_E) <---④
myDATA(1) = 0
myDATA(2) = EntitiesTyp
myDATA(3) = 8
myDATA(4) = "_0-0_"
myDATA(5) = 6
myDATA(6) = LineTyp
myDATA(7) = 62
myDATA(8) = LineCol
myDATA(9) = 10
myDATA(10) = Xcod_S
myDATA(11) = 20
myDATA(12) = Ycod_S
myDATA(13) = 11
myDATA(14) = Xcod_E
myDATA(15) = 21
myDATA(16) = Ycod_E
cnt = 1
For k = 1 To 16 <---⑤
.Cells(ENTITIES_Row + cnt, 1).EntireRow.Insert
.Cells(ENTITIES_Row + cnt, 1).Value = myDATA(k)
cnt = cnt + 1
Next k
Exit For
End If
Next i
'DXFファイル作成
With CreateObject("scripting.filesystemobject") <---⑥
.createtextfile ThisWorkbook.Path & "\myDXF.dxf", True
End With
'データをコピペ
EndRow = .Range("A1").End(xlDown).Row
Open ThisWorkbook.Path & "\myDXF.dxf" For Output As #1 <---⑦
cnt = 1
Do Until cnt > EndRow
Print #1, .Cells(cnt, 1).Value <---⑧
cnt = cnt + 1
Loop
Close #1
End With
End Sub
------------------------------------------------------------------------------------------------------------------------------------
Sub 直線データ(EntitiesTyp, LineTyp, LineCol, Xcod_S, Ycod_S, Xcod_E, Ycod_E)
EntitiesTyp = "LINE"
LineTyp = "CONTINUOUS" <---実線
LineCol = 7 '黒 <---線の色は黒
Xcod_S = 100 <---始点X座標
Ycod_S = 100 <--- Y座標
Xcod_E = 200 <---終点X座標
Ycod_E = 200 <--- Y座標
End Sub
どうだったでしょうか。
このあたりで、自動作図の講座は一旦、終わります。
代わりに、Jwcadユーザーの初心者向けにJwcadの使い方講座を始めます。
それではまた。