Создание файла DXF (DXF)

Написать программу для создания файла DXF может быть сложнее, чем написать программу для чтения файла DXF, поскольку, чтобы файл был принят в AutoCAD, необходимо поддерживать согласованность в чертеже. AutoCAD позволяет исключить различные элементы из файла DXF и при этом получить приемлемый чертеж.

Следующая подпрограмма Visual Basic 6 используется для создания файла DXF, представляющего многоугольник.

' WriteDXFPolygon creates a minimal DXF file that only contains
' the ENTITIES section. This subroutine requires five parameters,
' the DXF file name, the number of sides for the polygon, the X
' and Y coordinates for the bottom end of the right-most side
' (it starts in a vertical direction), and the length for each
' side. Note that because this only requests 2D points, it does
' not include the Z coordinates (codes 30 and 31). The lines are
' placed on the layer "Polygon."
'
Sub WriteDXFPolygon( _
        dxfFile As String, iSides As Integer, _
        dblX As Double, dblY As Double, dblLen As Double)
    Dim i As Integer
    Dim dblA1, dblA, dblPI, dblNX, dblNY As Double
    Open dxfFile For Output As #1
    Print #1, 0
    Print #1, "SECTION"
    Print #1, 2
    Print #1, "ENTITIES"
    dblPI = Atn(1) * 4
    dblA1 = (2 * dblPI) / iSides
    dblA = dblPI / 2
    For i = 1 To iSides
        Print #1, 0
        Print #1, "LINE"
        Print #1, 8
        Print #1, "Polygon"
        Print #1, 10
        Print #1, dblX
        Print #1, 20
        Print #1, dblY
        dblNX = dblLen * Cos(dblA) + dblX
        dblNY = dblLen * Sin(dblA) + dblY
        Print #1, 11
        Print #1, dblNX
        Print #1, 21
        Print #1, dblNY
        dblX = dblNX
        dblY = dblNY
        dblA = dblA + dblA1
    Next i
    Print #1, 0
    Print #1, "ENDSEC"
    Print #1, 0
    Print #1, "EOF"
    Close #1
End Sub

До тех пор, пока правильно отформатированный элемент отображается на линии, предназначенной для размещения данных, он принимается командой ИМПОРТА. (Безусловно, элементы строки не должны содержать начальные пробелы, если только они не являются частью строки). Данная программа на языке BASIC использует обеспечиваемое подобной гибкостью преимущество в формате ввода, в результате чего файл не создается в точности таким, каким он создается в AutoCAD.

В случае ошибки при использования команды ИМПОРТА для загрузки в AutoCAD отображается сообщение об ошибке, в котором указывается причина ошибки и последняя строка, обработанная в файле DXF до обнаружения ошибки. Это может быть не та строка, в которой произошла ошибка, в особенности если ошибка связана с отсутствием необходимых групп.