intersection in the geometry package does not seem to recognize assume.

restart: with(geometry):

assume(p[1]<>0, p[2]<>0, p[3]<>0);

assume(q[1]<>0, q[2]<>0, q[3]<>0);

point(T,[p[1],q[1]]);

point(U,[p[2],q[2]]);

point(V,[p[3],q[3]]);

point(Op,[0,0]);

line(OT,[Op,T]);

line(OU,[Op,U]);

line(OV,[Op,V]);

point(B,2*q[2],solve(subs(x=2*q[2],Equation(OU)),y));

coordinates(B);

IsOnLine(B,OU);

PerpendicularLine(AD,B,OT);

ArePerpendicular(AD,OT);

sol:=solve({Equation(AD),Equation(OT)},{x,y});

eval(x,sol);

point(A,eval(x,sol),eval(y,sol)); ## the intersection exists

intersection(xA,AD,OT); ## fails

about(p[1]),about(q[1]);