Minecart based artillery is significantly more effective and accurate than proper siege weapons. Send a minecart loaded with something plentiful but deadly towards them and smash it into a 1 Z tall wall. The contents will fly towards them, exiting the cart at Z+1. Adjust placement of the wall and cart speed and height until you can hit them from a safe range (making a gantry above the ground is good for protecting your cart recovery dwarves. Use bridges instead of constructed track for straight parts, they're cheaper and faster to build and count as track, but are not self supporting, so be cautious during construction). Blocks are good, but weapons or trap components are better, since they actually use relevant attacks when they hit. Try menacing spikes for the FB. You can make a lot of them from wood (or metal, if you have plenty) and they should have decent performance against large creatures, but blocks will work better against the undead. Boulders are much much heavier than blocks, but you can only fit 5 in a cart. If you are launching bins (of blocks or weapons) or cages, you will need to crash them against a second wall 1 z higher than the first to eject their contents (collisions of containers, be they cart or cage or bin, are handled similarly). This is a bit of a nuisance, but allows you to put a lot more stuff in a cart, and can even allow nonsense like aerial bombardment with cave crocodiles or giant sperm whales (the heaviest possible projectile in the game).