C# CAD SelectionFilter下TypedValue數(shù)組使用方式
TypedValue數(shù)組使用方式
SelectionFilter是用于過濾AutoCAD實(shí)體的類,在AutoCAD中,可以使用它來選擇具有特定屬性的實(shí)體。
構(gòu)造SelectionFilter對象時,需要傳入一個TypedValue數(shù)組,它用于定義選擇規(guī)則。
在TypedValue數(shù)組中,每個元素表示一個選擇條件,它由兩個參數(shù)組成:DxfCode和值。
DxfCode是一個整數(shù)枚舉值,用于表示選擇條件的類型,而值則是與之對應(yīng)的具體屬性值。
根據(jù)不同的需求,可以定義不同的TypedValue對象,并將它們組合成一個數(shù)組,從而實(shí)現(xiàn)各種自定義的選擇規(guī)則。
常用的DxfCode枚舉值及其對應(yīng)的屬性值
DxfCode.Start(0):選擇開始實(shí)體DxfCode.End(1):選擇結(jié)束實(shí)體DxfCode.Text(1):選擇包含指定文本的實(shí)體DxfCode.BlockName(2):選擇位于指定塊名稱的實(shí)體DxfCode.LayerName(8):選擇位于指定圖層的實(shí)體DxfCode.Color(62):選擇指定顏色的實(shí)體DxfCode.LinetypeName(6):選擇位于指定線型的實(shí)體DxfCode.LinetypeScale(48):選擇具有指定線型比例的實(shí)體DxfCode.LineWeight(370):選擇具有指定線寬的實(shí)體DxfCode.EntityHandle(5):選擇具有指定句柄的實(shí)體DxfCode.XCoordinate(10):選擇具有指定X坐標(biāo)的實(shí)體DxfCode.YCoordinate(20):選擇具有指定Y坐標(biāo)的實(shí)體DxfCode.ZCoordinate(30):選擇具有指定Z坐標(biāo)的實(shí)體DxfCode.Radius(40):選擇具有指定半徑的實(shí)體DxfCode.Diameter(41):選擇具有指定直徑的實(shí)體DxfCode.Angle(50):選擇具有指定角度的實(shí)體DxfCode.Elevation(38):選擇具有指定高度的實(shí)體DxfCode.Thickness(39):選擇具有指定厚度的實(shí)體DxfCode.TextStyleName(7):選擇使用指定文本樣式的實(shí)體DxfCode.TextHeight(40):選擇具有指定文本高度的實(shí)體DxfCode.TextRotation(50):選擇具有指定文本旋轉(zhuǎn)角度的實(shí)體DxfCode.TextString(1):選擇包含指定字符串的實(shí)體DxfCode.ObjectId(330):選擇具有指定對象ID的實(shí)體
// 選擇顏色為1(紅色)且位于圖層“Layer1”的線段
TypedValue[] values = new TypedValue[] {
new TypedValue((int)DxfCode.Color, 1),
new TypedValue((int)DxfCode.Start, "LINE"),
new TypedValue((int)DxfCode.LayerName, "Layer1")
};下面是一個示例代碼
演示如何實(shí)現(xiàn)選擇圖層名為"權(quán)利人"和"預(yù)編號"
并且類型為TEXT的實(shí)體:
SelectionFilter innerFilter = new SelectionFilter(new TypedValue[] {
new TypedValue((int)DxfCode.Operator, "<or"),
new TypedValue((int)DxfCode.LayerName, "權(quán)利人"),
new TypedValue((int)DxfCode.LayerName, "預(yù)編號"),
new TypedValue((int)DxfCode.Start, "TEXT"), // 實(shí)體類型為TEXT
new TypedValue((int)DxfCode.Operator, "or"),
new TypedValue((int)DxfCode.End, "or"),
});
// 使用多邊形窗口選擇方式讓用戶選擇位于外部多段線內(nèi)的實(shí)體
PromptSelectionResult innerSelRes = ed.SelectWindowPolygon(outerPoints, innerFilter);總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)為Word文檔特定字符或句子添加邊框
開發(fā)者在處理Word文檔時,常遇C# Word 文本邊框需求,本文將為大家詳細(xì)介紹C#如何使用Spire.Doc for .NET實(shí)現(xiàn)為Word文檔特定字符或句子添加邊框,希望對大家有所幫助2026-02-02
C#判斷一個字符串是否是數(shù)字或者含有某個數(shù)字的方法
這篇文章主要介紹了C#判斷一個字符串是否是數(shù)字或者含有某個數(shù)字的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
C#并發(fā)編程之a(chǎn)sync和await關(guān)鍵字詳解
對于?async?和?await?兩個關(guān)鍵字,對于一線開發(fā)人員再熟悉不過了,到處都是它們的身影,下面小編就來和大家記錄匯總下它們的使用吧2023-07-07
WinForm實(shí)現(xiàn)多屏交互的實(shí)戰(zhàn)技巧和避坑指南
你是否遇到過這些問題窗體顯示在錯誤的屏幕、窗口位置被任務(wù)欄遮擋或者跨屏拖拽卡頓,本文將通過 3步核心流程、5大實(shí)戰(zhàn)技巧和10個高頻避坑指南,教你徹底掌握WinForm多屏交互開發(fā),讓窗體精準(zhǔn)飛向副屏,需要的朋友可以參考下2025-09-09

