C# CAD SelectionFilter下TypedValue數(shù)組使用方式
TypedValue數(shù)組使用方式
SelectionFilter是用于過(guò)濾AutoCAD實(shí)體的類(lèi),在AutoCAD中,可以使用它來(lái)選擇具有特定屬性的實(shí)體。
構(gòu)造SelectionFilter對(duì)象時(shí),需要傳入一個(gè)TypedValue數(shù)組,它用于定義選擇規(guī)則。
在TypedValue數(shù)組中,每個(gè)元素表示一個(gè)選擇條件,它由兩個(gè)參數(shù)組成:DxfCode和值。
DxfCode是一個(gè)整數(shù)枚舉值,用于表示選擇條件的類(lèi)型,而值則是與之對(duì)應(yīng)的具體屬性值。
根據(jù)不同的需求,可以定義不同的TypedValue對(duì)象,并將它們組合成一個(gè)數(shù)組,從而實(shí)現(xiàn)各種自定義的選擇規(guī)則。
常用的DxfCode枚舉值及其對(duì)應(yīng)的屬性值
DxfCode.Start(0)
:選擇開(kāi)始實(shí)體DxfCode.End(1)
:選擇結(jié)束實(shí)體DxfCode.Text(1)
:選擇包含指定文本的實(shí)體DxfCode.BlockName(2)
:選擇位于指定塊名稱(chēng)的實(shí)體DxfCode.LayerName(8)
:選擇位于指定圖層的實(shí)體DxfCode.Color(62)
:選擇指定顏色的實(shí)體DxfCode.LinetypeName(6)
:選擇位于指定線(xiàn)型的實(shí)體DxfCode.LinetypeScale(48)
:選擇具有指定線(xiàn)型比例的實(shí)體DxfCode.LineWeight(370)
:選擇具有指定線(xiàn)寬的實(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)
:選擇具有指定對(duì)象ID的實(shí)體
// 選擇顏色為1(紅色)且位于圖層“Layer1”的線(xiàn)段 TypedValue[] values = new TypedValue[] { new TypedValue((int)DxfCode.Color, 1), new TypedValue((int)DxfCode.Start, "LINE"), new TypedValue((int)DxfCode.LayerName, "Layer1") };
下面是一個(gè)示例代碼
演示如何實(shí)現(xiàn)選擇圖層名為"權(quán)利人"和"預(yù)編號(hào)"
并且類(lèi)型為T(mén)EXT的實(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ù)編號(hào)"), new TypedValue((int)DxfCode.Start, "TEXT"), // 實(shí)體類(lèi)型為T(mén)EXT new TypedValue((int)DxfCode.Operator, "or"), new TypedValue((int)DxfCode.End, "or"), }); // 使用多邊形窗口選擇方式讓用戶(hù)選擇位于外部多段線(xiàn)內(nèi)的實(shí)體 PromptSelectionResult innerSelRes = ed.SelectWindowPolygon(outerPoints, innerFilter);
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Unity 實(shí)現(xiàn)鼠標(biāo)滑過(guò)UI時(shí)觸發(fā)動(dòng)畫(huà)的操作
這篇文章主要介紹了Unity 實(shí)現(xiàn)鼠標(biāo)滑過(guò)UI時(shí)觸發(fā)動(dòng)畫(huà)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04Winform?控件優(yōu)化LayeredWindow無(wú)鋸齒圓角窗體
這篇文章主要為大家介紹了Winform?控件優(yōu)化LayeredWindow實(shí)現(xiàn)無(wú)鋸齒圓角窗體示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09C#使用UdpClient類(lèi)進(jìn)行簡(jiǎn)單通信的實(shí)例
本文主要介紹了C#使用UdpClient類(lèi)進(jìn)行簡(jiǎn)單通信的實(shí)例,具有很好的參考價(jià)值,需要的朋友可以看下2016-12-12C# 通過(guò)反射獲取類(lèi)型的字段值及給字段賦值的操作
這篇文章主要介紹了C# 通過(guò)反射獲取類(lèi)型的字段值及給字段賦值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01C#中數(shù)據(jù)的傳遞以及ToolStripProgressBar
本文主要介紹了C#的數(shù)據(jù)傳遞方法以及ToolStripProgressBar進(jìn)度條的使用。希望對(duì)大家有所幫助,話(huà)不多說(shuō),請(qǐng)看下面代碼2016-11-11c#實(shí)現(xiàn)把異常寫(xiě)入日志示例(異常日志)
這篇文章主要介紹了c#實(shí)現(xiàn)把異常寫(xiě)入日志示例(異常日志),需要的朋友可以參考下2014-04-04