2014-01-15 91 views
1

我有一個DXF(rev 10)CAD文件與一些二維圖紙,我正在實施一個閱讀器。到目前爲止,我已經成功加載了所有內容,並使用ImageMagick進行柵格化處理。單位對現實世界

但重點是,我已經手動將座標上的縮放設置爲對我有意義的數字。我怎麼知道元件的原始尺寸是多少?用什麼單位來畫?我有什麼特別的組合嗎?

我的頭是這樣的:

0 
SECTION 
    2 
HEADER 
    9 
$ACADVER 
    1 
AC1006 
    9 
$EXTMIN 
10 
-14.610075 
20 
-14.723197 
    9 
$EXTMAX 
10 
14.556421 
20 
15.530217 
    9 
$LTSCALE 
40 
0.000394 
    9 
$PDMODE 
70 
    35 
    9 
$PDSIZE 
40 
0.000315 
    0 
ENDSEC 

我讀過的每個部分是和我似乎沒有找到任何可以幫助我。

我想知道單位,因爲我希望能夠準確地更改圖形,因爲它將被繪製爲,例如,移動一個點2英寸。

+0

DXF是無單位的,正如我通過Google搜索「DXF單元」發現的那樣。 –

+0

這是否意味着當繪圖以這種格式從CAD中導出時,它們會失去任何意義?那麼AutoCAD如何讀取DXF?謝謝 – aledalgrande

回答

3

在實現dxf文件的查看器時,實際上並不需要知道有關單元的任何信息。除非你要在你的瀏覽器中實現一個Measure函數,否則它會變得更加複雜。

您的查看器中的初始「縮放」大小可以根據您顯示的標題信息確定:EXTMINEXTMAX是您需要的兩個關鍵信息。在你的例子中,dxf文件中的最小座標use3d是-14.610075,-14.723197,最大座標是14.556421,15.530217。這給你一個29.166496(寬)×30.253414的總圖尺寸。

對於一個簡單的查看器,您可以假設DXF文件中的單位等於您的查看器中的單位(像素或點或任何您正在使用的單位)。

然後,您的查看器中的基本繪圖大小將爲29.166496x30.253414,您可以縮放(縮放)以使其填充任何可用的顯示區域。

編輯

DXF文件絕非「無單位」,所以在這裏你絕對需要知道的單位的情況下,你需要閱讀$INSUNITS組碼值,並要仔細檢查它,你也可以閱讀$MEASUREMENT組碼值。

R2000 dxf spec或任何其他版本都包含您需要的關於這些值的含義的所有信息。如果您進入'HEADER Section Group Codes'頁面,並搜索'units',您將能夠找到所有單位類型的列表。例如:

$INSUNITS 
70 
    4 

表示dxf文件使用公制單位,特別是毫米作爲基本單位。因此,dxf文件存儲的任何尺寸或座標值都將以毫米爲單位。

AutoCAD DesignCenter塊的默認繪圖單位:0 =無單位; 1 =英寸; 2 =腳; 3 =英里; 4 =毫米; 5 =釐米; 6 =米; 7 =公里; 8 =微英寸; 9 =密爾; 10 =碼; 11 = 埃; 12 =納米; 13 =微米級; 14 =分米; 15 = Decameters; 16 = Hectometers; 17 = Gigameters; 18 =天文學 單位; 19 =光年; 20 =秒差距

編輯

我剛纔注意到您使用的是非常老DXF格式(R10)。如果我沒有記錯的話,這些單元直到R12才被引入到DXF規範中。在此之前,繪圖實體的實際大小並未根據假定的單位而改變。只有尺寸標籤與英制單位不同。

如果你使用舊的R10格式,你只需要對單元做什麼決定;假設您的圖紙上沒有任何維度標籤,表明哪些單位被隱含。

+0

謝謝@Stewbob。你能否通過「測量」功能來解釋你的意思? – aledalgrande

+0

PS:如果我想實現也可以繪圖的查看器,該怎麼辦? – aledalgrande

+1

如果您想讓用戶測量dxf文件中的功能並讓它返回「12.2英寸」或「43毫米」等答案,那麼您需要擔心單位。 – Stewbob