I had this problem with my '07 31PC. For me, the swinging was not the problem, it was the sudden stop and jerking of the boat. This occurs due to the all-chain rode. Obviously the chain does not stretch like a nylon rode will. This is how I solved it:
1. Obtain these parts - Approx. 15' to 20' of 5/8" or 3/4" 3-strand nylon (for the weight of a 45' boat).
2. Purchase the largest marine stainless carabiner that will fit thru the opening in your chain link.
3. A marine stainless shackle of the same material diameter as the carabiner.
Make a "snubber" as follows:
1. Connect the shackle to the carabiner thru the "eye" at the bottom of the carabiner.
2. Fold the 15' 3-strand line in half to make a loop end.
3. Pass the "loop" end thru the shackle that is connected to the carabiner leaving the loop about 5-6" out of the shackle.
4. Take the opposite ends of the folded line; the two loose ends; and pass them thru the loop, then cinch it tightly.
You now have an assembly. To use as a "snubber", after dropping and setting anchor, lay down and reach over bow down to your chain. Attach the carabiner to the closest link you can reach.
Take one end of the line and secure it to the starboard bow cleat and the other to the port bow cleat.
Now, drop some additional chain from the windlass until the two nylon lines are tight and you have a "swag" of chain with no tension on it from the anchor pulpit to the point where the carabiner attaches to the chain.
The length of line from the two bow cleats to the chain can vary, but they should be as close to the same length each as possible.
The boat will now swing putting tension on one nylon line, then the other. No sudden stopping..no jerking! It works great for us and it is an effective yet very inexpensive and easy fix. It takes no more than two to three minutes to set-up.
You may get some chafing as the line will lay against the deck of the bow and rub as the boat swings, but, you can experiment with various materials around the lines at the contact points.
Good luck!