CAD_VBA中的选择集过滤_第1页
CAD_VBA中的选择集过滤_第2页
CAD_VBA中的选择集过滤_第3页
CAD_VBA中的选择集过滤_第4页
CAD_VBA中的选择集过滤_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CAD中的选择集过滤一、选择集过滤时的使用方式如下:Object指使用SelectionSet这个方法适用的对象运用select方法上面的例题已经运用了select方法,下面讲一下select的5种Mode选择方式:1:择全部对象(acselectionsetall)2 .选择上次创建的对象(acselectionsetlast)3 .选择上次选择的对象(acselectionsetprevious)4 .选择矩形窗口内对象(acselectionsetwindow)5 .选择矩形窗口内以及与边界相交的对象(acselectionsetcrossing)1) object.SelectMode

2、,Point1,Point2,FilterType儿FilterData2) object.SelectOnScreenFilterType儿FilterData3) object.SelectAtPointPoint,FilterType,FilterDataFilterType:Variant变体(整数数组);仅用于输入;(可选项)指定使用的过滤器类型的DXF组码。FilterData:Variant变体(变体数组);仅用于输入;(可选项)过滤器的值。二、DXF群组码共同群组码代码一览表群码说明预设值-4过滤群组方式,例如AND、ANDOR、OR、XOR、XOR、NOT、NOT单一条件时可

3、省略-1图元名称(会随每一个图档开启而有所不同)不可省略0图元类型,例如ARC、LINE、CIRCLE.不可省略5处理码不可省略6线型名称(如果线型不为BYLAYER,此群码值会出现)BYLAYER8图层名称不可省略48线性比例(选择性)1.060物件可见性,0=可见,1=不可见062颜色编号(如果线型不为BYLAYER,此群群码会出琨)当值为0畤,即指BYLAYER,口果是负值即指该图层是关闭的(选择性)BYLAYER67值为空或0时即指图元在模型空间,如果为1指在图形空间0三、过滤群组方式-FilterType(DXF群组码)=-4过滤群组方式内含项目描述运算法则1或多个所有项目的交集1+

4、1=1,1+0=0,0+1=0,0+0=01或多个所有项目的并集1+1=1,1+0=1,0+1=1,0+0=02个两个项目的异或运算1+1=0,1+0=1,0+1=1,0+0=01个不包含此项目的值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实体编码的应用程序名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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论