下面是一个示例:
[code](defunc:findblocks(/ent idx qty sel tag val)(cond(null(setqsel(ssget“\u X”(list'(0.[color=栗色]“INSERT(if(=“color]1(getvar'cvport))(cons410(getvar'ctab))(410。“Model”))(princ[颜色=栗色]“\n在当前布局中未找到属性块。”)(或(==“(setq标记(strcase”\n指定属性标记:“))(=[color=BLUE setqval(strcase(getstringt“\n指定属性值:”))(t(repeat(setqidx(sslengthsel))(if(not(vl some'(lambda(att)(和(=标记(strcase(vla get tagstringatt))(=val(strcase(vla get texstringatt)))(vlax invoke(vlax ename->vla object(setqent(ssnamesel(setqidx(1-idx ')')'getattributes))(ssdelent sel))(如果(
由于您还希望指定块名,因此可以将此参数包括在ssget筛选器列表中,以减少候选块的初始集,从而提高程序的性能,例如:
[code](defunc:findblocks(/blk ent idx obj qty sel tag val)(while(not(=”(setqblk(getstring[=BLUE]t[=MAROON]“\n指定块名:(tblsearch“block”blk))(princ“\n未找到块。”)(cond(=”“(setqblk(STRACASEblk))(null(setqsel(ssget[=MAROON]“\u X”(list[/COLO'(66.1)(cons2(strcat“`*U*,“blk”)(if(=1(getvar'cvport))(cons410(getvar'ctab))'(410.[color=MARO)(princ“\n未找到块。”)(或(==“(setq标记(strcase”\n指定属性标记:“))(=[color=BLUE setqval(strcase(getstringt“\n指定属性值:”)))(t(repeat(setqidx(sslengthsel))(setqent(ssnamesel(setqidx(1-idx)))obj(vlax ename->vla objectent()(if(或(/=blk(strcase(LM:blockname obj))(非(vl some'(lambda(att)(和(=标记(strcase(vla get tagstringatt)))(=val(strcase(vla get textringatt)))(vlaxobj'getattributes))(ssdelent sel))(if(