{Line Adjuster v1.0 Developed by Julian Carr 1997 This command modifies the pen thickness of non horizontal and non vertical lines, walls and dimensions to compensate for MiniCAD's inability to print these lines at their designated thickness (non postscript printers and plotters). It works on all objects in a drawing including groups and placed symbols. Use it only once on a duplicate of your file. } Procedure AdjustLineWeight; CONST C1 = 0.292893; {thanks to Merril Aldrich} C2 = 0.0349; {for these two numbers} VAR i : INTEGER; Procedure FEO(h : HANDLE); VAR NewLW,ELW,j : INTEGER; h1 : HANDLE; BEGIN IF GetType(h)=63 THEN BEGIN j:=0; h1:=FIn3d(h); REPEAT IF GetType(h1)=2 THEN BEGIN IF j=0 THEN ELW:=GetLW(h1); NewLW:=ELW*(1-(C1*(abs(sin(C2*HAngle(h1)))))); SetLW(h1,NewLW); j:=j+1; END; h1:=NextObj(h1); UNTIL h1=Nil; END ELSE ELW:=GetLW(h); NewLW:=ELW*(1-(C1*(abs(sin(C2*HAngle(h)))))); SetLW(h,NewLW); Message('Adjusting object no. ',i); i:=i+1; HMove(h,0,0); {forces correct redraw for walls} END; BEGIN IF YNDialog('Adjust non vertical & non horizontal line weights of lines, walls and dimensions?') THEN BEGIN i:=1; ForEachObject(FEO,(T IN [Line,Wall,Dimension])); ForEachObject(FEO,InSymbol & (T IN [Line,Wall,Dimension])); ReDrawAll; ClrMessage; END; END; RUN(AdjustLineWeight);