vb.netdxf編程的簡單介紹

vb.net如何在編程中獲取CAD對象的DXF組碼

感覺 vb.net對象中根本不存在組碼這個東西,一切皆對象。直接遍歷訪問,要對應組碼有何用?如果你想獲取組碼一句簡單lsp語句就行了。

創(chuàng)新互聯(lián)公司專注于葉城企業(yè)網(wǎng)站建設,響應式網(wǎng)站,商城網(wǎng)站建設。葉城網(wǎng)站建設公司,為葉城等地區(qū)提供建站服務。全流程定制網(wǎng)站制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

如何用VB.NET編程語言實現(xiàn)打開CAD文件?

需要解析CAD文件的構(gòu)成 然后根據(jù)規(guī)則繪制 說白點CAD文件是人家公司定義的一個文件格式 里面保存的不是圖形 而是圖形的繪制規(guī)則 程序AutoCad打開文件的時候是讀取文件里面描寫的繪制規(guī)則繪制圖案的 你了解了CAD文件的構(gòu)成后就可以自己寫代碼繪制圖形了(具體CAD圖形構(gòu)成沒研究過 你可以用記事本打開一個CAD的圖形交換文件.Dxf 可以看到 這個文件是由圖層說明和很多點坐標組成的)

VB.net 導入DXF文件

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??'保存位圖的內(nèi)存文件流

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)?'從第十三字節(jié)開始讀取

PosSentinel?=?br.ReadInt32?'第13到17字節(jié)指示縮略圖描述塊的位置

DwgF.Seek(PosSentinel?+?30,?SeekOrigin.Begin)?'將指針移到縮略圖描述塊的第31字節(jié)

TypePreview?=?br.ReadByte?'第31字節(jié)為縮略圖格式信息,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)?'從位圖塊開始處讀取全部位圖內(nèi)容備用

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?'保留字節(jié)

.bfReserved2?=?0?'保留字節(jié)

.bfOffBits?=?14?+?H28?+?1024?'圖像數(shù)據(jù)偏移

End?With

'以下開始寫入位圖文件頭

bmpr.Write(biH.bfType)?'文件類型

bmpr.Write(biH.bfSize)?'文件大小

bmpr.Write(biH.bfReserved1)?'0

bmpr.Write(biH.bfReserved2)?'0

bmpr.Write(biH.bfOffBits)?'圖像數(shù)據(jù)偏移

bmpr.Write(BMPInfo)?'寫入位圖

BMPF.Seek(0,?SeekOrigin.Begin)?'指針移到文件開始處

myImg?=?Image.FromStream(BMPF)?'創(chuàng)建位圖文件對象

Return?myImg

bmpr.Close()

BMPF.Close()

End?Select

Catch?ex?As?Exception

Return?Nothing

End?Try

End?Function

End?Class

vb.net如何在編程中獲取CAD對象的DXF組碼求解答

感覺 vb.net對象中根本不存在組碼這個東西,一切皆對象。直接遍歷訪問,要對應組碼有何用?如果你想獲取組碼一句簡單lsp語句就行了。

網(wǎng)站題目:vb.netdxf編程的簡單介紹
本文來源:http://muchs.cn/article20/dospgco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站制作、網(wǎng)站營銷、網(wǎng)站內(nèi)鏈網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設