It looks ok. you might show where you set camera1 to be the current view. Don't see that in the code.
You can also try:
if(vec_to_screen (text_pos1,camera1) != NULL)
{
txt_build.pos_x=text_pos1.x;
txt_build.pos_y=text_pos1.y;
}
else
{
while(1)
{
draw_text("Position was not on screen",0,0,vector(225,0,0));
wait(1);
}
}
Or something like that to make sure that the vec_for_screen() position is actually even on the screen area.
You might also take out the ARIGHT flag and test without that.
Loco