cad.net 關於圖元初始化注意事項


調用初始化賦值

初始化圖元的時候必須調用一下Entity.SetDatabaseDefaults();尤其是初始化填充(可以看到我代碼做了一次預處理測試).

因為acad的不同版本會修改初始化賦值的順序,導致此問題,
而且它報錯的地方可能並不是提交事務到數據庫時,
而是計算圖元顯示時: hatch.EvaluateHatch(true);//計算填充並顯示,例如通過jig觸發了.

這個操作是通用於所有圖元的,
當構造函數沒有可輸入參數時候才需要,如果是有重載參數的,最好利用含有參數來實現初始化(因為它更偏向於規范,而非必然報錯)

舉個簡單例子:
ok:

var ha = new Hatch(x,xx,xxx);
ha.其他工作

ok:

var ha = new Hatch();
ha.SetDatabaseDefaults();
ha.其他工作

不ok:

var ha = new Hatch();
ha.其他工作

誰特喵記得住啊,所以我都是把所有新建圖元封裝一次的,注意封裝內實現就行了.
可以參考李小科視頻上面的,不過就是不要抄它事務放子函數就行了(把事務傳參進去子函數).
如果你記得住,那就當我沒說.

相關閱讀

cad.net 封裝填充類
AutoCAD.NET關於Hatch填充

初始化賦值和修改

數據庫上已有的屬性塊使用ScaleFactors和Position修改並不改變圖形,這是為什么呢?

這是由於entity.屬性(字段)是用來初始化的,之后再去修改就最好不要用屬性(字段),而是通過矩陣去修改.

可以通過以下代碼實踐一下:

但是這些屬性(字段)又可以讀,又可以初始化改,加入數據庫之后的非矩陣部分又可以賦值,例如"文字內容",
所以只需要記住一個原則就行:新建時通過屬性或者字段,修改時通過矩陣

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM