Thread: simple 2D/3D app like AutoCAD

  1. #1
    Registered User
    Join Date
    Jul 2015
    Posts
    10

    simple 2D/3D app like AutoCAD

    I realize Autocad is not a game but I figured I'd ask here since it's 2d and 3D vector graphics....

    How long would it take an experienced developer to write a program like AutoCAD 2004 from scratch with only Win32 API ??

    no nurbs or advanced solids but a basic 2d/3d cad app like some past version of AutoCAD.....??

    is there a ballpark guesstimate how long that would take??

  2. #2
    Ticked and off
    Join Date
    Oct 2011
    Location
    La-la land
    Posts
    1,728
    Quote Originally Posted by markraz View Post
    How long would it take an experienced developer to write a program like AutoCAD 2004 from scratch with only Win32 API ??
    Until the money runs out. Not that you'll have a working program then, of course.

    Quote Originally Posted by markraz View Post
    is there a ballpark guesstimate how long that would take??
    How much money do you have?

    No, there is no reason to give even a Stetson-Harrison estimate (i.e. pulled out from under your hat, with zero basis in reality or fantasy, just the first numbers that pop into your mind), because the definition of the task is so vague.

    It's like asking a contractor how much it'd cost to build a house. You don't have a location, timeframe, or any kind of plans, but you're pretty sure it'd have doors and windows, and probably some walls, just like other houses do. And maybe some roofs too, unless it's build underground. Yes, rooms would be nice. At least three, but lots more if you can, please. Nothing special like an indoor pool or a wine cellar kept at a steady temperature and moisture.

    No, it's not that difficult or vague! A house is a house! It's perfectly clear what the task is! Just give me an estimate or stop wasting my time!
    Last edited by Nominal Animal; 07-29-2015 at 11:40 PM.

  3. #3
    Registered User
    Join Date
    Jul 2015
    Posts
    10
    Thanks... Lets put it in terms of months or years and not $$$

  4. #4
    Registered User
    Join Date
    Jul 2015
    Posts
    10
    Quote Originally Posted by Nominal Animal View Post
    Until the money runs out. Not that you'll have a working program then, of course.


    How much money do you have?

    No, there is no reason to give even a Stetson-Harrison estimate (i.e. pulled out from under your hat, with zero basis in reality or fantasy, just the first numbers that pop into your mind), because the definition of the task is so vague.

    It's like asking a contractor how much it'd cost to build a house. You don't have a location, timeframe, or any kind of plans, but you're pretty sure it'd have doors and windows, and probably some walls, just like other houses do. And maybe some roofs too, unless it's build underground. Yes, rooms would be nice. At least three, but lots more if you can, please. Nothing special like an indoor pool or a wine cellar kept at a steady temperature and moisture.

    No, it's not that difficult or vague! A house is a house! It's perfectly clear what the task is! Just give me an estimate or stop wasting my time!
    thanks for the reply but you can estimate the time and money it would take to build a house 100% accurately. but that is not really a good analogy to software. Since location doesn't matter here. I am only curious how long it woudl take an experienced developer to write a 2D/3D cad app like acad

    thanks

  5. #5
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    It's a perfectly good analogy. Perhaps consider location of the house analogous to where you're going to install the software when you're done.

    Just because it's using only Win32 API doesn't necessarily mean you can install it anywhere that supports Win32 API. What version of runtime libraries are you using? The Win32 API has grown over the years, so some functions you use may not be available on older systems. Are you sure the client is up to date enough to have all the functions you used available to them?

    Even if you still don't like the location aspect of the analogy, the rest of it still stands. But if it's still not clear, here it is again, with no analogies, as simple as I can make it:

    You provided way too little detail to give even a rough estimate answer.

  6. #6
    Registered User
    Join Date
    Jul 2015
    Posts
    10
    Quote Originally Posted by anduril462 View Post
    It's a perfectly good analogy. Perhaps consider location of the house analogous to where you're going to install the software when you're done.

    Just because it's using only Win32 API doesn't necessarily mean you can install it anywhere that supports Win32 API. What version of runtime libraries are you using? The Win32 API has grown over the years, so some functions you use may not be available on older systems. Are you sure the client is up to date enough to have all the functions you used available to them?

    Even if you still don't like the location aspect of the analogy, the rest of it still stands. But if it's still not clear, here it is again, with no analogies, as simple as I can make it:

    You provided way too little detail to give even a rough estimate answer.
    Ok ... How long would it take an experienced SE to develop the Windows Version of AutoCAD using WIN32 API?? Basically the GUI and the 2D/3D graphics engine, all the editing and transformation tools, layers, entities (lines, circles, splines, 3d faces, dimensions, 3d primitives).... Maybe include a scripting language to control all the tools as well....

    There will be no custom of 3rd party runtime libraries it will be written in pure WIN32 and only for windows. So GDI, and other DLLs will not be a concern... They are automatically deployed with Windows.
    Last edited by markraz; 07-30-2015 at 08:00 PM.

  7. #7
    Registered User
    Join Date
    Jun 2011
    Posts
    4,513
    Quote Originally Posted by markraz View Post
    Ok ... How long would it take an experienced SE to develop the Windows Version of AutoCAD using WIN32 API?? Basically the GUI and the 2D/3D graphics engine, all the editing and transformation tools, layers, entities (lines, circles, splines, 3d faces, dimensions, 3d primitives).... Maybe include a scripting language to control all the tools as well....

    There will be no custom of 3rd party runtime libraries it will be written in pure WIN32 and only for windows. So GDI, and other DLLs will not be a concern... They are automatically deployed with Windows.
    An experienced software engineer (as in one)?

    Who knows.

    Perhaps you should start by seeing what is involved with writing a single plug-in using their existing API before considering how long it might take for the entire thing to be written from scratch.

  8. #8
    Registered User
    Join Date
    Jul 2015
    Posts
    10
    thanks... I have written some plugs with their API .... ObjectARX, it's very straight forward but the API is very encapsulated at least the graphics engine part... It's very simple, more simple than even drawing in Open GL or DX for instance

    so no one here has ever written a CAD or program? or a 3d graphics engine?
    Last edited by markraz; 07-30-2015 at 09:19 PM.

  9. #9
    Ticked and off
    Join Date
    Oct 2011
    Location
    La-la land
    Posts
    1,728
    Quote Originally Posted by markraz View Post
    so no one here has ever written a CAD or program? or a 3d graphics engine?
    No, of course not. AutoCAD is the only program that exists.

  10. #10
    Ticked and off
    Join Date
    Oct 2011
    Location
    La-la land
    Posts
    1,728
    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.
    Last edited by Nominal Animal; 07-30-2015 at 10:10 PM.

  11. #11
    Registered User
    Join Date
    Jul 2015
    Posts
    10
    Quote Originally Posted by Nominal Animal View Post
    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.
    wow... you are condescending .....

    "the OP thinks they have a good idea for commercial/proprietary software, but lack the development skills."

    You read 2 of my posts and you can ascertain I lack the development skills? How do you know this? Perhaps I lack 3D CAD development skills...?? hence MY QUESTION!!!

    too funny ...lol

    I asked a simple question and you want a project plan to bring to management to get funding.... ?? lol...HILARIOUS.... the MBA mindset is not relevant here, what is relevant here is relevant CAD coding experience and it doesn't appear to me that you have any.

    FYI... If I was asking how long would it take to develop a unique one of a kind one off obscure application that has never been developed, I could understand your bloviating here, however the fact that you list 10 freeware CAD packages proves that is it probably a meager task for an experienced developer and there would be a solid time-frame to deliver such a product for that experienced developer... Obviously you are not an experienced graphics developer. My question can't be any more clear or simple... HOW LONG WOULD IT TAKE AN EXPERIENCED DEVELOPER TO CODE AUTOCAD FOR WINDOWS? there is no R&D involved here since it's all been done before. The question is simple and apparently you don't know it.

    Lastly Message boards are places on the net where people ask questions because they either can't find the answer or they are too lazy to look for the answer on their own.... regardless, YOU answer the question if you know it... if YOU don't know it... you move on to a question YOU do know... Perhaps you should just refrain from replying to posts where you don't have a good answer?? make sense? yeah that makes sense ... but sorry I even asked the question. I'll go ask a hobo
    Last edited by markraz; 07-30-2015 at 11:49 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Simple Socket Library Not so simple
    By jbully in forum C Programming
    Replies: 4
    Last Post: 12-23-2010, 09:23 AM
  2. simple program, simple error? HELP!
    By colonelhogan44 in forum C Programming
    Replies: 4
    Last Post: 03-21-2009, 11:21 AM
  3. Simple program, not so simple problem
    By nolsen in forum C++ Programming
    Replies: 2
    Last Post: 01-18-2008, 10:28 AM
  4. Autocad 2004
    By FillYourBrain in forum A Brief History of Cprogramming.com
    Replies: 12
    Last Post: 06-25-2003, 07:09 AM
  5. Replies: 1
    Last Post: 07-20-2002, 06:33 PM