自己解决!
" z; d ^9 ^, q2 Sint ISOBJECTSNULL()# U$ n2 ?" h; Z0 s4 o* ^) Q5 o
{
9 I7 Y d0 r8 h, |+ M int type;//类型
% o1 t. V& {% M. B0 c! r0 F int subType;//子类型
2 U9 _+ c9 j3 l( I0 y int ifali=0;
! n0 R4 w( o1 `: L! } int Layer_Num_Work;//当前工作的图层的编号
" K* m+ c: v2 O tag_t findobj=NULL_TAG;: S P3 K- A7 o9 e9 o! P- B
//实例化
% \, s' _5 Q- K1 W$ G E ifali=UF_initialize(); 8 b6 \. g" B: u1 P6 [9 z
0 g% w+ H, J& A4 @* S l+ A //获取当前工作图层
- E* t6 B+ K) d/ f+ ?& x ifali=UF_LAYER_ask_work_layer(&Layer_Num_Work);6 f2 K/ F% v9 G3 c9 @
if(!ifali && Layer_Num_Work)
6 O% s/ ^. G/ q- ~( G0 K& X {6 l2 u8 _# |/ o6 R, l
//通过图层来查找当前对象
: R' p0 i# A9 ^9 G! Y UF_LAYER_cycle_by_layer(Layer_Num_Work,&findobj);+ S }2 X+ c! H' O4 \
//如果当前对象不为空
$ @# ?# M( T6 m) e8 i while(findobj!=NULL_TAG), A- Q" E+ o# I$ z4 y0 Q6 K
{
; x! o/ z I. N //获取当前对象的类型和子类型
6 H5 ~6 s. C1 S* s UF_OBJ_ask_type_and_subtype(findobj, &type, &subType);
1 n( r& C. m0 K4 E+ |7 W //类型为25,子类型为1是注释类型
, Z9 M; L- [ J& }4 O, A if (type==25 && subType==1). n8 g8 h- M% {
{
. u% Q- @: s8 m //移动注释类型到153图层4 W _/ Y- Y1 f$ }) `9 s9 d
UF_OBJ_set_layer(findobj,153);
] y- |5 |* `) [, V' O" k }
9 o5 c7 G2 Y( P! w2 n //类型为25,子类型为2是表面粗糙度符号类型
" y6 T6 g! K- B if (type==158 && subType==2)
% o3 \% L$ z( Y8 g8 |3 D' t* ] {! G$ v5 C& r t7 V8 N
//移动表面粗糙度符号类型到152图层: S/ U, }3 a' D4 W7 L3 b% U
UF_OBJ_set_layer(findobj,152);2 \# W3 O/ `6 N& J" `' T5 S
}; H r. l( a/ s
//递归查找下级对象,直到对象为空为止1 {# `2 Y0 H4 L8 q- n
UF_LAYER_cycle_by_layer(Layer_Num_Work,&findobj); ! b- M0 E& q6 p7 y$ [0 G, T
} l& {3 H: P) e9 H5 C8 `
UF_LAYER_set_status(152,2);6 _8 m! _ Y( N0 T; S
UF_LAYER_set_status(153,2);6 _8 q+ ^4 J( f; F9 o- i
}8 ~. ]7 }) g3 t# j
} |