dxf文件是AutoCad的交換文件,可以直接用AutoCad打開。dxf文件是明碼文件,在vb環境下按順序文件讀取就可以了。
桐城網站建設公司創新互聯公司,桐城網站設計制作,有大型網站制作公司豐富經驗。已為桐城成百上千家提供企業網站建設服務。企業網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的桐城做網站的公司定做!
例如:在C盤根目錄下有一個文件“1.dxf”
啟動vb后,建立一個按鈕:Command1
并雙擊此按鈕,對其輸入以下代碼:
Private Sub Command1_Click()
Dim a As String '讀取文件一行的內容
Dim i As Long '用于記錄行數
Dim j As Long '用于記錄用戶如何響應提示
Open "c:\1.dxf" For Input As #1
i = 0
While Not EOF(1)
Line Input #1, a
i = i + 1
j = MsgBox("第 " i " 行內容為:" a, vbOKCancel + vbInformation)
'運行到此步時,如果用戶輸入“確定”則繼續,如果用戶輸入“取消”則結束本程序
'用戶可以在此輸入處理代碼,對讀入的字串進行處理
If j = vbCancel Then
End
End If
Wend
close #1
End Sub
Imports?System.IO
Imports?System.Drawing
Public?Class?PreViewDWG
Private?Structure?BITMAPFILEHEADER
Dim?bfType?As?Short
Dim?bfSize?As?Integer
Dim?bfReserved1?As?Short
Dim?bfReserved2?As?Short
Dim?bfOffBits?As?Integer
End?Structure
Public?Function?GetDwgImage(ByVal?FileName?As?String)?As?Image
If?Not?File.Exists(FileName)?Then?Exit?Function
Dim?DwgF?As?FileStream????'文件流
Dim?PosSentinel?As?Integer??'文件描述塊的位置
Dim?br?As?BinaryReader??'讀取二進制文件
Dim?TypePreview?As?Integer?'縮略圖格式
Dim?PosBMP?As?Integer?'縮略圖位置
Dim?LenBMP?As?Integer?'縮略圖大小
Dim?biBitCount?As?Short?'縮略圖比特深度
Dim?biH?As?BITMAPFILEHEADER?'BMP文件頭,DWG文件中不包含位圖文件頭,要自行加上去
Dim?BMPInfo()?As?Byte??'包含在DWG文件中的BMP文件體
Dim?BMPF?As?New?MemoryStream??'保存位圖的內存文件流
Dim?bmpr?As?New?BinaryWriter(BMPF)?'寫二進制文件類
Dim?myImg?As?Image
Try
DwgF?=?New?FileStream(FileName,?FileMode.Open,?FileAccess.Read)????'文件流
br?=?New?BinaryReader(DwgF)
DwgF.Seek(13,?SeekOrigin.Begin)?'從第十三字節開始讀取
PosSentinel?=?br.ReadInt32?'第13到17字節指示縮略圖描述塊的位置
DwgF.Seek(PosSentinel?+?30,?SeekOrigin.Begin)?'將指針移到縮略圖描述塊的第31字節
TypePreview?=?br.ReadByte?'第31字節為縮略圖格式信息,2?為BMP格式,3為WMF格式
Select?Case?TypePreview
Case?1
Case?2,?3
PosBMP?=?br.ReadInt32?'DWG文件保存的位圖所在位置
LenBMP?=?br.ReadInt32?'位圖的大小
DwgF.Seek(PosBMP?+?14,?SeekOrigin.Begin)?'移動指針到位圖塊
biBitCount?=?br.ReadInt16?'讀取比特深度
DwgF.Seek(PosBMP,?SeekOrigin.Begin)?'從位圖塊開始處讀取全部位圖內容備用
BMPInfo?=?br.ReadBytes(LenBMP)??'不包含文件頭的位圖信息
br.Close()
DwgF.Close()
With?biH??'建立位圖文件頭
.bfType?=?H4D42
If?biBitCount??9?Then?.bfSize?=?54?+?4?*?(2?^?biBitCount)?+?LenBMP?Else?.bfSize?=?54?+?LenBMP
.bfReserved1?=?0?'保留字節
.bfReserved2?=?0?'保留字節
.bfOffBits?=?14?+?H28?+?1024?'圖像數據偏移
End?With
'以下開始寫入位圖文件頭
bmpr.Write(biH.bfType)?'文件類型
bmpr.Write(biH.bfSize)?'文件大小
bmpr.Write(biH.bfReserved1)?'0
bmpr.Write(biH.bfReserved2)?'0
bmpr.Write(biH.bfOffBits)?'圖像數據偏移
bmpr.Write(BMPInfo)?'寫入位圖
BMPF.Seek(0,?SeekOrigin.Begin)?'指針移到文件開始處
myImg?=?Image.FromStream(BMPF)?'創建位圖文件對象
Return?myImg
bmpr.Close()
BMPF.Close()
End?Select
Catch?ex?As?Exception
Return?Nothing
End?Try
End?Function
End?Class
從你貼的鏈接教程來看,所謂的dxf文件本質上就是文本文件,因此擴展名可以是任意的,完全沒問題。
感覺 vb.net對象中根本不存在組碼這個東西,一切皆對象。直接遍歷訪問,要對應組碼有何用?如果你想獲取組碼一句簡單lsp語句就行了。
你是要操作cad文件?網上有操作dxf或dwg格式的代碼,你看看dxf的格式吧,是明碼的。
簡單的點線這些好實現,但要尺寸標注或其它的就要麻煩些
網頁名稱:vb.net生成dxf的簡單介紹
文章起源:http://vcdvsql.cn/article40/hehpeo.html
成都網站建設公司_創新互聯,為您提供Google、網站建設、服務器托管、營銷型網站建設、關鍵詞優化、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯