How to Save AutoCAD Drawing as Read Only

You may also like...

2 Responses

  1. John Bisschop says:

    Method 1 doesn’t actually make a drawing read-only. When saving as a DXF file, the drawing is saved in an ASCII format that any text editor like Notepad can change. Of course, you need to be careful doing this because you can corrupt the drawing. When I have had problems with certain drawings, I have saved them to DXF to allow me to clean them up. I edit the file very carefully with Notepad, load the DXF file back into AutoCAD and save it as a DWG. In any case, you can load a DXF, edit it in AutoCAD and save it as a DXF or DWG. It is NOT read-only!

  2. The following example is a simple Visual Basic 6 program that reads a DXF file and extracts specific codes and values from a given object in a given section.

    ‘ ReadDXF extracts specified code/value pairs from a DXF file.
    ‘ This function requires four string parameters, a valid DXF
    ‘ file name, a DXF section name, the name of an object in that
    ‘ section, and a comma delimited list of codes.

    Function ReadDXF( _
    ByVal dxfFile As String, ByVal strSection As String, _
    ByVal strObject As String, ByVal strCodeList As String)
    Dim tmpCode, lastObj As String
    Open dxfFile For Input As #1
    ‘ Get the first code/value pair
    codes = ReadCodes
    ‘ Loop through the whole file until the “EOF” line
    While codes(1) “EOF”
    ‘ If the group code is ‘0’ and the value is ‘SECTION’ ..
    If codes(0) = “0” And codes(1) = “SECTION” Then
    ‘ This must be a new section, so get the next
    ‘ code/value pair.
    codes = ReadCodes()
    ‘ If this section is the right one ..
    If codes(1) = strSection Then
    ‘ Get the next code/value pair and ..
    codes = ReadCodes
    ‘ Loop through this section until the ‘ENDSEC’
    While codes(1) “ENDSEC”
    ‘ While in a section, all ‘0’ codes indicate
    ‘ an object. If you find a ‘0’ store the
    ‘ object name for future use.
    If codes(0) = “0” Then lastObj = codes(1)
    ‘ If this object is one you’re interested in
    If lastObj = strObject Then
    ‘ Surround the code with commas
    tmpCode = “,” & codes(0) & “,”
    ‘ If this code is in the list of codes ..
    If InStr(strCodeList, tmpCode) Then
    ‘ Append the return value.
    ReadDXF = ReadDXF & _
    codes(0) & “=” & codes(1) & vbCrLf
    End If
    End If
    ‘ Read another code/value pair
    codes = ReadCodes
    End If
    codes = ReadCodes
    End If
    Close #1
    End Function
    ‘ ReadCodes reads two lines from an open file and returns a two item
    ‘ array, a group code and its value. As long as a DXF file is read
    ‘ two lines at a time, all should be fine. However, to make your
    ‘ code more reliable, you should add some additional error and
    ‘ other checking.

    Function ReadCodes() As Variant
    Dim codeStr, valStr As String
    Line Input #1, codeStr
    Line Input #1, valStr
    ‘ Trim the leading and trailing space from the code
    ReadCodes = Array(Trim(codeStr), valStr)
    End Function

Leave a Reply