In case someone else stumbles onto this thread, they might find the
Comparison of CAD software page at Wikipedia interesting.
Of those mentioned there at end of July 2015, seven (BRL-CAD, FreeCAD, LibreCAD, OpenSCAD, QCad, SALOME, and SolveSpace) are licensed under one or other free/libre license, with full source code available online.
For 2D, there are quite a few electronic design automation (EDA) software, too. The
Comparison of EDA software page at Wikipedia is quite interesting.
There are, of course, a large number of
3D modeling software; not so much related to real-world manufacture, more like "CAD for virtual objects". And of course, at least as many
3D computer graphics software. Many of these are licensed under a Libre license, with sources readily available; even more for 2D. The
Free graphics software category at Wikipedia is a good starting point -- but by no means exhaustive; not even close!
It should be clear that for anyone requiring specific functionality, there is little need to start from scratch. The free/libre licenses allow one to publish modified versions with few requirements; with GPL often considered the most strict (or "viral"), as it requires you to license any derivatives with the same license, too.
In all my years, questions similar to the OP have occurred because the OP thinks they have a good idea for commercial/proprietary software, but lack the development skills. This is not surprising, because in todays world, commercial software development is not a one-man job. (This is increasingly the case for software in general, actually, but at the time of this writing, there still are a large number of software written basically by one person.) In many cases, user interface (or more generally, "user experience", UX) design requires approach and background knowledge that is typically not that interesting to a programmer; those who manage both, are rarely masters of either. You skip UX, the lifespan of your software tends to be pretty short, and your software will only be "commercial" in the sense that it cost you money to produce it.
A good, practical way of estimating development time for a project starting from scratch, is to find a free software project with comparable feature set, and examine the extent of its source base. Then, if the end result should be proprietary, examine the extent of the sources for the pertinent libraries the free software project relies on. This is often very enlightening.
If the OP is still reading this post at this point, I bet they're thoroughly angry. They wanted a simple answer they could frame their business plan around, and instead they're getting "lip". They wanted an answer, not talkback how their question is not just badly framed, but thoroughly silly, and clearly posed by someone who wants others to do their work for them. You, OP, are clearly PHB material. I recommend getting to Business School. The cheaper the better.
Back to topic. Project planning and/or design -- I mean, writing up the requirements, estimating work allocation and so on -- is
a job unto itself, and in many companies, has dedicated staff to do it. Questions like "how long will this take" actually
cost money to answer -- not because the answer is a secret, but because it is a lot of work to define the question with enough details to make it possible to base any answer on anything relevant. If you don't do the work, the answer is less than a guess; it's pure make-believe, as you don't even
know the actual question.
(Even so, the result is still an
estimate. Such an estimate is only probably closer to reality, than e.g. asking a few dozen strangers for their guesses. The latter is a valid way to estimate too, however. Just don't tell your clients you do it that way, they might object.)
In many software development houses, project planning is done either by the developers themselves, or by their managers or others who really do not have the skills to do this part of the job, and
that is the main reason why so many software projects either fail, end up buggy, or are otherwise badly managed.
Sure, we could lie to you, but we don't work that way here. We're here to help, not deceive.
If the OP just wants a figure (a length of time), but is not willing to do the work of actually defining the question to the detail necessary to give even a guess, I suggest they go and ask a hobo.