I have written a script to change the lineweights of objects in a drawing based on there existing lineweight and it works fine in a layer but I can not get it to work in a symbol. Does anyone know what I could do to make this work. One Idea I have is to cut the objects out of the symbol and place them on a layer make the change and then put them back in the symbol but I do not know how do do this in a script.
my script is below.
Procedure Lineweight;
Label 100, 101, 102, 103, 104, 105, 106;
VAR
H1 : HANDLE;
P1,P2 : real;
Begin;
DSelectAll;
SelectObj(INSYMBOL & INOBJECT & INVIEWPORT & (LW=7));
DSelectObj(INSYMBOL & INVIEWPORT & (T=TEXT));
H1:= FSActLayer;
100:SetLW(H1,3);
H1:=NextSObj(H1);
if H1<>Nil then goto 100;
DSelectAll;
SelectObj(INSYMBOL & INOBJECT & INVIEWPORT & (LW=10));
DSelectObj(INSYMBOL & INVIEWPORT & (T=TEXT));
H1:= FSActLayer;
101:SetLW(H1,4);
if H1<>Nil then goto 101;
DSelectAll;
SelectObj(INSYMBOL & INOBJECT & INVIEWPORT & (LW=14));
DSelectObj(INSYMBOL & INVIEWPORT & (T=TEXT));
H1:= FSActLayer;
102:SetLW(H1,6);
H1:=NextSObj(H1);
if H1<>Nil then goto 102;
DSelectAll;
SelectObj(INSYMBOL & INOBJECT & INVIEWPORT & (LW=20));
DSelectObj(INSYMBOL & INVIEWPORT & (T=TEXT));
H1:= FSActLayer;
103:SetLW(H1,8);
H1:=NextSObj(H1);
if H1<>Nil then goto 103;
DSelectAll;
SelectObj(INSYMBOL & INOBJECT & INVIEWPORT & (LW=28));
DSelectObj(INSYMBOL & INVIEWPORT & (T=TEXT));
H1:= FSActLayer;
104:SetLW(H1,11);
H1:=NextSObj(H1);
if H1<>Nil then goto 104;
DSelectAll;
SelectObj(INSYMBOL & INOBJECT & INVIEWPORT & (LW=39));
DSelectObj(INSYMBOL & INVIEWPORT & (T=TEXT));
H1:= FSActLayer;
105:SetLW(H1,12);
H1:=NextSObj(H1);
if H1<>Nil then goto 105;
End;
Run (Lineweight);