本文主要研究一種簡單高效的方法來存儲復(fù)雜的CAD符號到數(shù)據(jù)庫格式中。這在需要從CAD轉(zhuǎn)為GIS再轉(zhuǎn)換回CAD、并且要求保留之前的符號和文本(或注記)時(shí)會有幫助。以下為具體操作步驟。
最常見的兩種CAD格式,Microstation?DGN?DWG都有著各自的符號,這些符號通過很多屬性來定義。在數(shù)據(jù)庫中要創(chuàng)建表格字段來存儲這所有的屬性會很耗時(shí),但是絕大部分屬性都需要保留下來,用于寫回CAD的時(shí)候需要。此外,為了表現(xiàn)CAD特征,FME會另外增加格式屬性,所以數(shù)據(jù)庫中的表很可能還需要更新。
還有一種選擇就是將每個(gè)需要存儲的格式屬性打包放進(jìn)一個(gè)blob字段中,在寫回為CAD時(shí)可以解壓出來。
FME函數(shù)@SupplyAttributes(可通過轉(zhuǎn)換器FunctionCaller調(diào)用)具有一種功能,可以將要素的所有屬性放在一個(gè)單獨(dú)的屬性中,該屬性的名稱結(jié)構(gòu)為name:value:name:value:name:value:以此類推。@SupplyAttributes也可以將這些挑選的屬性不返回到原始屬性中,然而一旦選擇,@SupplyAttributes會選擇所有的屬性,包括那些不需要的屬性字段。
自定義轉(zhuǎn)換器PackAttributes(通過FME?Store獲取)使用了一個(gè)PythonCaller來選擇要素屬性到@SupplyAttributes函數(shù)中,同時(shí)允許你通過設(shè)置過濾器,對要選擇的屬性設(shè)置前綴。這樣一來,如果想要只存儲DGN文件中所有的格式屬性、同時(shí)舍棄所有的用戶屬性和FME屬性,可以將在過濾器中將前綴設(shè)置為"igds_".同理,對于DWG文件來說,前綴設(shè)置為"aCAD_"
工作空間DGNToSqlite和SqliteToDGN演示了如何實(shí)現(xiàn)這一過程:
DGNToSqlite中讀取Microstation?DGN文件MajorRoads.dgn,使用PackAttributes選擇格式屬性到一個(gè)新的屬性"igds_packed"中,然后將幾何對象和選擇的屬性寫出到Sqlite?Spatial。
SqliteToDGN讀取Sqlite表,使用轉(zhuǎn)換器FunctionCaller中的函數(shù)@SupplyAttributes來重新存儲返回到要素上的屬性,然后寫出到一個(gè)新的DGN文件中。
所有的這些符號都是來自MajorRoads.DGN,包括多線和自定義線型,都重新存儲到新的文件中。
這種存儲CAD屬性的方法是可持續(xù)的。未來的FME版本中添加的任何額外格式屬性都可以自動包含進(jìn)來,因?yàn)樘砑恿烁袷角熬Y,而且不需要對任何一張表做修改。
如果你想處理本機(jī)上的CAD數(shù)據(jù),存儲在數(shù)據(jù)庫中,那么就需要將本地的屬性提取出來分別存儲到字段中。最簡單的方法就是重新命名這些屬性。
通過以上的操作,就能快速實(shí)現(xiàn)在數(shù)據(jù)庫格式中保留CAD的符號和文本,簡單高效,大大節(jié)約了設(shè)計(jì)師的工作效率。安裝浩辰CAD軟件試試吧。更多CAD教程技巧,可關(guān)注浩辰CAD官網(wǎng)進(jìn)行查看。
2025-09-12
2025-01-07
2023-12-28
2023-11-01
2023-10-30
2019-10-12
2019-09-04
2019-08-13
2019-08-08
2019-08-01
2019-07-30
2019-07-30