一.概念
塊定義與塊參照兩個概念
塊定義類似於模具,而塊參照類似於模具澆築出來的模型,在圖形中只需用塊定義來儲存塊的實際幾何組成,而僅用插入點和比例因子來儲存塊定義,因為塊參照的幾何形狀與快參照完全一樣,僅大小不同,
好處
不需要儲存塊參照中的實體,減小了圖形檔案;只需要修改塊定義,塊參照會自動更新,減輕了修改和維護工作。
插入乙個普通塊實際是只在
dwg文件增加了塊參照的插入點選比例因子等定義,
並沒有增加其他任何實體
,只在塊最初定義時根據塊內圖元增加了實體。
屬性塊的定義
屬性塊是有構成的實體和附加資訊(屬性)組成的,屬性塊中塊的定義與簡單塊中塊的定義一樣,而屬性的定義主要是通過屬性的attributedefinition類的有關屬性和函式來實現的。具體實現有:
a 、attributedefinition類的例項並設定物件的屬性值;
其中,屬性定義的屬性值主要有:文字的插入點、高度、旋轉角度、對齊方式和寬度;
屬性的預設值;屬性的模式,如不可見方式invisible、常量方式constant、驗證方式verify、預置方式preset;屬性標籤名。
插入乙個屬性塊時,同普通塊一樣,塊內普通圖元不存在新增,塊定義的時候就新增好了。但是
attributedefinition實體時新增的。
就是每增加乙個屬性塊,每個單獨的塊的屬性都是作為單獨的新增實體加入文件資料庫內
所以我們在cad中畫圖時候,改變屬性塊的定義的時候,新增的屬性塊的文字不會發生任何改變。
二.**
public static void insertpropertyblock(string blockpath,dictionaryvals)應用**//向塊參照新增屬性物件
trans.addnewlycreateddbobject(attr, true);}}
}trans.addnewlycreateddbobject(br, true);
trans.commit();}}
public static database getdb(string sourcefilename, fileshare share)
catch
return db;
}
[commandmethod("insertattributeblock")]三.總結插入屬性塊的步驟:public static void insertattributeblock()
1.根據塊檔案路徑資訊讀取塊檔案(.dwg檔案)的資料庫資訊(database)。
2.將讀取到資料庫插入當前dwg圖形檔案的資料庫中----objectid blockid= database.insert(blockname, dbblock, false);
返回的是插入後的塊定義id
3.例項化塊參照(blockreference),並將其新增到塊表記錄中
上述就將塊的普通塊定義部分以塊參照的存在,插入當前文件。
4.讀取塊定義內的圖形檔案,確認是否包含屬性定義資訊
blocktablerecord record = blockid.getobject(openmode.forread) as blocktablerecord;
//判斷塊表記錄是否包含屬性
if (record.hasattributedefinitions)
5.遍歷當前塊定義內的圖形檔案id,例項化屬性參照,對屬性參照記性賦值
6.將塊參照的屬性集合新增此定義的屬性,並進行事務新增
7.塊參照的事務提交
CAD插入塊命令
可以在圖形中插入塊或其他圖形,在插入的同時還可以改變所插入塊或圖形的比例與旋轉角度。1.單擊選單欄,繪圖 插入塊 2.單擊繪圖工具欄 插入塊命令 按鈕 3.在命令列中輸入insert 按回車鍵。名稱 用於選擇塊或圖形的名稱,使用者也可以單擊其後的 瀏覽 按鈕,開啟 選擇圖形檔案 對話方塊,選擇要插入...
CAD二開 擴充套件資料XData
一.簡述 cad資料庫物件可以靈活新增一定數量的自定義資料,供開發者使用,這些資料由開發者自己進行解釋 cad不管其含義,但要遵循一定的組碼規則,這些資料被稱為擴充套件資料xdata。擴充套件資料以吸附物的形式吸附在實體上。1.可以通過實體dbobject類及其派生類的xdata屬性獲取或設定擴充套...
cad二開輸出實體id CAD建模之布林運算
安裝解除安裝 異常 退出 檔案及輸入輸出 基本操作技巧 設定及相關問題 介面和顯示 快捷鍵 檢視設定和調整 圖層管理 顏色 線型 字型 文字樣式和文字輸入 標註 引線和標註樣式 座標系 座標輸入定位 物件捕捉 選擇及組 二維繪圖 多段線 圖塊 屬性塊 動態塊 填充 複製貼上 三維建模 圖形編輯和修改...