it is possible, after all they do it in commercial games, you have the object position and you can find the distance from the camera, and you know that the size of the rectangle that would bound the shape gets smaller the further the object gets from the camera, it works to a ratio, so all you need to do is work out how much smaller the object gets for every world unit it moves away from the viewpoint, from memory it`s something LIKE (my memory is lousy)
dist apsize(pixels)
2 = 260
3 = 150
4 = 110
5 = 90
6 = 70
7 = 60
etc = etc
so just store whatever values it realy is (those above are best guess) in an array and scale to the object at the size you select from the array as an integer of the distance from the viewpoint, for example if the object is at a distance of 4 and the size is one then the rectangle would be an apparent 110 pixels across in the default screen, so a sprite scaled suitably would be 110 pixels wide, is that the sort of thing you are after? (yes! I know it involves some tiresome work getting the object sizes in the first place but that happens a lot when you code and you only need the range for one model and you can work the rest from relative sizes

)
Mentor.
ps: or in simpler terms use a table of numbers to give the on screen size of objects at a set range if you can`t figure what I am ranbling on about, you could measure the relative scales from some code like this...
autocam off
make object cube 1,1
position object 1,0,0,1
position camera 0,0,0
for i=1 to 100
position object 1,0,0,i
repeat
text 0,0,str$(mousex())
text 0,15,str$(mousey())
text 0,30,str$(i)
sync
until spacekey()
wait 200
next i
do
loop
cheers.