高手们帮帮忙啊! 从dxf中提取直线的点坐标并建一个文本保存起来
如要读取C:\Documents and Settings\LPC\桌面\1.dxf 把坐标保存在新建的C:\Documents and Settings\LPC\桌面\1.txt内
越简单越好啊!
手上有一个程序不怎么看的懂.高手指点下,还要加点什么?
' ReadDXF从DXF文件中提取指定代码/值对。
' 该函数需要4个字符串参数,一个有效的DXF文件名、
' 一个DXF区域名称、一个在该区域中对象的名称以及
' 一个列出代码的逗号分隔符。
'
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
' 获得第一个代码/值对
codes = ReadCodes
' 在整个文件中循环直到找到"EOF"行
While codes(1) <> "EOF"
' 如果该组码为"0"并且其值为"SECTION" ..
If codes(0) = "0" And codes(1) = "SECTION" Then
' 这必定是一个新的区域,所以获取下一个代码/值对
codes = ReadCodes()
' 如果该区域为所要寻找的区域..
If codes(1) = strSection Then
' 取得下一代码/值对并且..
codes = ReadCodes
' 在该区域中循环直到找到"ENDSEC"
While codes(1) <> "ENDSEC"
' 在这个区域中,所有"0"代码表示一个对象。
' 如果发现"0"就可保存对象名以便以后使用。
If codes(0) = "0" Then lastObj = codes(1)
' 如果该对象是所需要的对象
If lastObj = strObject Then
' 在代码的前后加上逗号
tmpCode = "," & codes(0) & ","
' 如果该代码为列表中的代码..
If InStr(strCodeList, tmpCode) Then
' 添加它的返回值。
ReadDXF = ReadDXF & _
codes(0) & "=" & codes(1) & vbCrLf
End If
End If
' 读取另外的代码/值对
codes = ReadCodes
Wend
End If
Else
codes = ReadCodes
End If
Wend
Close #1
End Function
' ReadCodes从打开的文件中读取两行并返回一个两项的数组:
' 一个组码和它的值。只要在读取DXF文件能同时读取两行,
' 则在处理时不会出现问题。然而,为了让你的代码更加可*,
' 你可以增加一些附加的出错及纠正检查。
'
Function ReadCodes() As Variant
Dim codeStr, valStr As String
Line Input #1, codeStr
Line Input #1, valStr
' 修剪代码中的前导及后随空格
ReadCodes = Array(Trim(codeStr), valStr)
End Function