CAD_VBA中的選擇集過濾_第1頁
CAD_VBA中的選擇集過濾_第2頁
CAD_VBA中的選擇集過濾_第3頁
CAD_VBA中的選擇集過濾_第4頁
CAD_VBA中的選擇集過濾_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、CAD中的選擇集過濾一、選擇集過濾時的使用方式如下:Object指使用SelectionSet這個方法適用的對象運(yùn)用select方法上面的例題已經(jīng)運(yùn)用了select方法,下面講一下select的5種Mode選擇方式:1:擇全部對象(acselectionsetall)2 .選擇上次創(chuàng)建的對象(acselectionsetlast)3 .選擇上次選擇的對象(acselectionsetprevious)4 .選擇矩形窗口內(nèi)對象(acselectionsetwindow)5 .選擇矩形窗口內(nèi)以及與邊界相交的對象(acselectionsetcrossing)1) object.SelectMode

2、,Point1,Point2,FilterType兒FilterData2) object.SelectOnScreenFilterType兒FilterData3) object.SelectAtPointPoint,FilterType,FilterDataFilterType:Variant變體(整數(shù)數(shù)組);僅用于輸入;(可選項(xiàng))指定使用的過濾器類型的DXF組碼。FilterData:Variant變體(變體數(shù)組);僅用于輸入;(可選項(xiàng))過濾器的值。二、DXF群組碼共同群組碼代碼一覽表群碼說明預(yù)設(shè)值-4過濾群組方式,例如AND、ANDOR、OR、XOR、XOR、NOT、NOT單一條件時可

3、省略-1圖元名稱(會隨每一個圖檔開啟而有所不同)不可省略0圖元類型,例如ARC、LINE、CIRCLE.不可省略5處理碼不可省略6線型名稱(如果線型不為BYLAYER,此群碼值會出現(xiàn))BYLAYER8圖層名稱不可省略48線性比例(選擇性)1.060物件可見性,0=可見,1=不可見062顏色編號(如果線型不為BYLAYER,此群群碼會出琨)當(dāng)值為0畤,即指BYLAYER,口果是負(fù)值即指該圖層是關(guān)閉的(選擇性)BYLAYER67值為空或0時即指圖元在模型空間,如果為1指在圖形空間0三、過濾群組方式-FilterType(DXF群組碼)=-4過濾群組方式內(nèi)含項(xiàng)目描述運(yùn)算法則1或多個所有項(xiàng)目的交集1+

4、1=1,1+0=0,0+1=0,0+0=01或多個所有項(xiàng)目的并集1+1=1,1+0=1,0+1=1,0+0=02個兩個項(xiàng)目的異或運(yùn)算1+1=0,1+0=1,0+1=1,0+0=01個不包含此項(xiàng)目的值NOT(1)=0,NOT(0)=1四、范例:1、過濾條件為圖元為MTEXT圖元是MTEXTFilterDataMTEXTFilterType02、過濾條件為圖元為CIRCLE或LINE圖元是CIRCLEOR圖元是LINEFilterDataFilterType-400-43、過濾條件為圖元在DIM圖層(LAYER)中的CIRCLE或LINE(圖元是CIRCLEOR圖元是LINE)AND圖層位于DIM

5、層FilterDataANDDIMANDFilterType-4-400-48-44、過濾的條件為圖元為CIRCLE或LINE但圖層(LAYER)不屬于DIM層(圖元是CIRCLEOR圖元是LINE)ANDNOT圖層位于DIM層)FilterDataANDANDFilterType-4-4100-41-418-4-4的XData的XData。strAppName=south名稱:獲取與修改AutoCADEntity功能:獲取與修改AutoCADEntity源代碼:南方CASS實(shí)體編碼的應(yīng)用程序名PublicFunctionGetCode(objEntAsAcadEntity,strAppNam

6、eAsString)AsVariantDimdTypeAsVariant,dDataAsVariant,iAsIntegerIfHasXData(objEnt,strAppName)=FalseThenGetCode=ElseobjEnt.GetXDatastrAppName,dType,dDataFori=LBound(dType)ToUBound(dType)IfdType(i)=1000ThenGetCode=dData(i)ExitForEndIfNextiEndIfEndFunctionPublicFunctionSetCode(ByValobjEntAsAcadEntity,ByV

7、alstrTextAsString,ByValstrAppNameAsString)DimdType(0To1)AsIntegerDimmData(0To1)AsVariantdType(0)=1001:mData(0)=strAppNamedType=1000:mData(1)=strTextobjEnt.SetXDatadType,mDataEndFunctionPublicFunctionHasXData(ByValentAsAcadEntity,ByValstrAppNameAsString)AsBooleanDimdataTypeAsVariantDimDataAsVarianten

8、t.GetXDatastrAppName,dataType,DataHasXData=TrueIfIsEmpty(dataType)ThenHasXData=FalseEndIfEndFunctionDimSET_PLAsAcadSelectionSetDimSET_nameAsStringSET_name=setnameDimF_type(0To7)AsIntegerDimF_data(0To7)AsVariantF_type(0)=-4:F_data(0)=F_type(4)=-4:F_data(4)=OnErrorResumeNextIfNotIsNull(ThisDrawing.Sel

9、ectionSets.Item(SET_name)ThenSetSET_PL=ThisDrawing.SelectionSets.Item(SET_name)SET_PL.DeleteEndIfSetSET_PL=ThisDrawing.SelectionSets.Add(SET_name)SET_PL.SelectOnScreenF_type,F_dataDimnAsInteger,iAsIntegern=SET_PL.Count-1DimD_BHAsIntegerD_BH=0Fori=0TonDimPL_coor()AsDoubleDimDt_lwplAsAcadLWPolyline,Dt

10、_plAsAcadPolylineDimmAsInteger,jAsIntegerD_BH=D_BH+1IfSET_PL.Item(i).ObjectName=AcDbPolylineThenSetDt_lwpl=SET_PL.Item(i)m=(UBound(Dt_lwpl.Coordinates)+1)*3/2-1ReDimPL_coor(m)Forj=0TomPL_coor(3*j)=Dt_lwpl.Coordinates(2*j)PL_coor(3*j+1)=Dt_lwpl.Coordinates(2*j+1)PL_coor(3*j+2)=0NextjElseIfSET_PL.Item

11、(i).ObjectName=AcDb2dPolylineThenSetDt_pl=SET_PL.Item(i)m=UBound(Dt_pl.Coordinates)/3ReDimPL_coor(m)Forj=0TomPL_coor(3*j)=Dt_pl.Coordinates(3*j)PL_coor(3*j+1)=Dt_pl.Coordinates(3*j+1)PL_coor(3*j+2)=Dt_pl.Coordinates(3*j+2)NextjEndIfDimset_DZAsAcadSelectionSetDimsetDZ_nameAsStringsetDZ_name=DZ_LWplDi

12、mFT_type(1)AsIntegerDimFT_data(1)AsVariantFT_type(0)=0:FT_data(0)=LWPOLYLINE”FT_type(1)=8:FT_data(1)=JMDIfNotIsNull(ThisDrawing.SelectionSets.Item(setDZ_name)ThenSetset_DZ=ThisDrawing.SelectionSets.Item(setDZ_name)set_DZ.DeleteEndIfSetset_DZ=ThisDrawing.SelectionSets.Add(setDZ_name)set_DZ.SelectByPo

13、lygonacSelectionSetCrossingPolygon,PL_coor,FT_type,FTdataDimFSAsInteger,aAsIntegerDimFW_LWPLAsAcadLWPolyline,HAOAsStringDimD_type(0To1)AsIntegerDimD_data(0To1)AsVariantDimInsert_point(2)AsDoubleDimBHAsAcadTextFS=setDZ.Count-1IfFS0ThenFora=0ToFSHAO=D_BH&-&(a+1)D_type(0)=1001:D_data(0)=LSZDD_type(1)=1

14、000:D_data(1)=HAOSetFW_LWPL=set_DZ(a)FW_PL.SetXDataD_type,D_dataInsert_point(0)=FW_LWPL.Coordinates(0)Insert_point(1)=FW_LWPL.Coordinates(1)Insert_point(2)=0SetBH=ThisDrawing.ModelSpace.AddText(HAO,Insert_point,2)BH.Layer=編號NextaElseD_type(0)=1001:D_data(0)=LSZDD_type(1)=1000:D_data(1)=D_BHSetFW_LWPL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論