Having looked at your screen shot I thing Lucas Tiridath is correct.
I think your gun model is very small and that your camera is very close to it, less than one unit, and the parts of the model that are too close to the camera are being clipped.
Below is a code snippet illustrating this:
sync on
sync rate 65
hide mouse
make object box 1, 0.1,0.1,0.5 :`box is less than 1 unit big
position camera 0,0.5,1 :`camera a little over 1 unit away
do
turn object left 1,0.1
if upkey() = 1 then move camera 0.05
if downkey() = 1 then move camera -0.05
point camera 0,0,0
text 1,1, "Up and down arrow keys to move camera back and forward"
sync
loop
If I scale up all the sizes and positions by a factor of 100 then there is no clipping but the box looks the same size on the screen:
sync on
sync rate 65
hide mouse
make object box 1, 10,10,50 :`box is much bigger than 1 unit
position camera 0,50,100 :`camera much further away than 1 unit
do
turn object left 1,0.1
if upkey() = 1 then move camera 5
if downkey() = 1 then move camera -5
point camera 0,0,0
text 1,1, "Up and down arrow keys to move camera back and forward"
sync
loop
I'm only guessing this as I don't know where you've positioned the camera in your program.
You could also try modifying the camera range using the SET CAMERA RANGE command:
sync on
sync rate 65
hide mouse
set camera range 0.1, 3000 :`will start clipping parts of object less than 0.1 unit from camera
make object box 1, 0.1,0.1,0.5 :`box is less than 1 unit big
position camera 0,0.5,1 :`camera a little over 1 unit away
do
turn object left 1,0.1
if upkey() = 1 then move camera 0.05
if downkey() = 1 then move camera -0.05
point camera 0,0,0
text 1,1, "Up and down arrow keys to move camera back and forward"
sync
loop
Try either scaling you gun model up and moving the camera back a bit or changing the camera range and see if that helps.