Freecad lags compared to commercial, but gets you a long way if you're prepared to invest a little effort, and tolerate a few bugs.
I'm not affiliated with freecad in any way, but just want to remark if there are any students around (or anyone with a little time availabe) reading this with interest in both engineering and software development, contributing to freecad could be a very rewarding experience, and probably good basis for a project or thesis.