Menu

What matters most to you?

Adam Kumpf
2007-02-16
2013-04-26
  • Adam Kumpf

    Adam Kumpf - 2007-02-16

    I have my own set of ideas about what a good 3D CAD program should do, but I'm curious what others think. 

    What matters most to you in a 3D CAD program?

    Here's what matters to me:
    - Simple construction of arbitrary 3D objects
    - Easy and intuitive user interface
    - Both "pretty pictures" and "engineering precision"
    - Parameterized features
    - Open Source code
    - open file formats
    - project collaboration and presentation
    - support community for questions/help and part libraries
    - tutorials to "learn by example"
    - tool libraries to automate complex features
    - overall enjoyable design experience

    I look forward to hearing back from others! :)

     
    • bj_Sean

      bj_Sean - 2007-03-18

      Hi,
      First of all, I am very appreciate what you done here.

      I am a PhD student of Architecture and very familiar with lots of CAD tools.
      However, I am more interesting about "collaboration". And the collaboration
      is just right on you matters list. You must get more pictures about it.

      Here's what collaboration pictures to me:
      * Stream modeling format (incremental collaboration)
      * co-modeling on the air
      * historical path editing (allow different path modeling simultaneously)
      - model verification
      - conflict detection
      - then it can perform the "model reasoning" by itself
      * sub-model group with multi-tag notation function (act like hyper-link and can be found by google like search engine) to facilitate model reuse
      - geo-reference (in physical world it can be browsed with GPS) 
      - cyber-reference (in cyber-space/name-space it can be browsed by RFID-like devices)
      * Fun, Fun and must be Fun

      I look forward to know how many pictures above in your pocket!

      Best,

      Sean Shih
      PhD student in Architecture from Taiwan
      my personal email: scshih@grandz.net

       
    • Adam Kumpf

      Adam Kumpf - 2007-03-18

      Hi Sean,

      Thanks for the great ideas.  The collaboration and enjoyment aspects resonate very strongly with me as well.  I am a bit hesitant to include support for GPS mapping and cyber-references in the beginning since virtual worlds are not the main focus, but I see a lot of potential for something like that if the community grows in size and others are interested too.  Code wise, I imagine it would be pretty simple to add a couple extra fields to store geo/cyber reference location information. 

      Are you thinking of another application to view and navigate avoCADo's 3D objects?  Or simply having a single project with thousands of objects within avoCADo and sharing it with others via some kind of collaboration/presentation mode?  I hope to keep scale in mind, but I'm not sure if avoCADo will ever be optimized to handle entire 3D virtual worlds.  If, however, the avoCADo community becomes quite large, I can imagine a branch from the main code that could be optimized for just that.

      Thanks again for your input.  keep the ideas coming!

       
    • Ampere

      Ampere - 2007-04-23

      For me, the three most important things for me are interface, interface, and interface.  I get irritated extremely quickly with programs that are unintuitive (such as Blender), and uninstall them very quickly as well.

      I like AutoCAD's command-line interface, as it saves me a lot of button-searchings, pointings, and clickings.  That's not to say pointing and clicking are bad, but I think they should be saved for:
      1. operations that absolutely require the mouse
      2. commands automation

      Of course this is only my opinion.  I'm sure there are people who would completely disagree with me.  So, I guess you would need to give people the abilities to customize the interface to your program.

      I pretty much agree with your list.  But for "open file formats", I think you should have plans for getting help in writing importer/exporter to other CAD formats.  People might not be willing to invest time in a new CAD software to draw something entirely from scatch, but they would accept the program more easily if they can view models from other CAD software.

      From a debugging point of view, you could also use the import/export features to import sophisicated models, and thereby discovering bugs more easily as well as seeing what features you are missing.

       
    • Adam Kumpf

      Adam Kumpf - 2007-04-23

      Hey Ampere,

      Thanks for the ideas.  I strongly believe that the application's interface is VERY important as well.  Things get a bit tricky, however, because a good interface for an "expert user" is likely to be different than a good interface for a "novice user."  There are certain things they will surely have in common based on usability principles, Fitz's law, etc., but there are other aspects that will be very different.  avoCADo is geared to hopefully work nicely with both which is in general very difficult to achieve. 

      I think that the best way to bridge the gap is to keep the interface as simple as possible, while still allowing for complex functionality where necessary with a single level of abstraction.  for example, the "sketch" mode should only show the basic sketch tools that are simple and intuitive, but all the complex tools should be available with a single click if you want them.  I'm currently thinking that a "toolbox" metaphor achieves this pretty nicely.  I'm hesitant to throw in a command line interface since most non-expert users find them intimidating. However, I can imagine having a single click that allows for a command line to be used by expert users in later versions of avoCADo when things are built up a bit more.

      Importing from other file formats is important and I agree that users should not need to recreate everything within avoCADo.  There are enough 3D opensource programs out there with importing functionality so hopefully a lot of that code base should be transferable to avoCADo with a little work.

      Keep up the great ideas and comments!  Thanks. :)

       
    • Ampere

      Ampere - 2007-04-23

      An alternate solution would be simply copying someone else's user interface.  This would give you a list of requirements for your CAD program.

      As to collaboration, your program could follow what other CAD software did by allowing people to put different drawings together to form an assembly.  Different people could work on different parts simultaneously, and the resulting changes would be automatically updated in the assembly model.

       
      • Adam Kumpf

        Adam Kumpf - 2007-04-23

        I would like to stay away from copying other CAD programs' UIs since they are really only structured for "expert users."  That being said, I do think that most commercial packages have spent a lot of time getting the UI pretty good, so there are certainly  some great lessons there.  External consistency (an application's likeness to other applications of similar type) is a powerful tool to help users transfer what they know from one program to another, but it can also be very limiting if you are trying to blaze a new trail. 

        I think avoCADo should be somewhere in between; externally consistent when possible, but not bound to it when trying to open the door to more artistic and perhaps less technically minded users.  Simplicity, usability, and functionality are the ideals.

        I think there are many ways that people collaborate with 3D models; namely presentation, discussion, and simultaneous creation/modification.  A good collaboration solution will address all of those.  Collaboration as you suggest seems like a pretty good direction, but there are a lot of important details to figure out at some point (data protocols, concurrent modification, user interfaces, support for discussion and annotation, etc.). 

         
    • Chris Chiasson

      Chris Chiasson - 2007-05-12

      Thanks for starting this project. The only other one I am aware of is FreeCAD.

      Possible things to keep in mind (for the *far* future) to make math easier to do on CAD models:
      The ability to store parameters of solids (including object coordinates) as rational numbers and integers
      The ability to specify +/- errors (tolerances) for parameters (including geometry dimensions and material properties)
      Error propagation/tolerance stacking
      The ability to specify random variables instead of tolerances for parameters
      Boot strapping and other statistical propagation techniques
      The ability to store mathematical expressions as parameters, such as (1+Sqrt[2])*Meter for the length of something with 111/9*Inch as the length of something else in the same model. For actual rendering and computations, these expressions could be converted to doubles (and cached).

      Other:
      STEP Import/Export
      The ability to replace classes with C++ versions in case the code becomes slow for complex models (is that possible?)

       
    • markb001

      markb001 - 2007-10-28

      Just learned about this project and I am VERY excited. I have about 5 years worth of experience with CAD applications mostly including CATIA V5 and Solidworks (2 years in aerospace engineering and 3 years in automotive engineering).

      For engineering applications, their are a lot of features that are important so its hard to say what matters most.  I'd say that there is a lot of low hanging fruit like more sketching and solid modeling features. After that, assemblies are important. Out of all the CAD packages I've used, I feel that Solidworks is definitely the most usable. That would be a great package to model avocado's usability after.

      In my free time, I'll  start testing the program. I'll let you know if I run across any problems.

       
    • markb001

      markb001 - 2007-10-28

      After taking a closer look at the wiki, it turns out you have already mentioned everything from my last post :)

      But to answer the thread question. I'd say the most important features to me are:

      -Usability, usability, usability! I think Solidworks really excels in this. In fact, they have definitely revolutionized the CAD industry. CAD programs like CATIA V5 and UG seem to have copied many features from Solidworks.
      -Parametric modeling is also a must, especially if we want to compete with the major CAD programs.
      -Intuitive interface. This fits under the usability feature, but worth mentioning. So far, the latest release is doing well at this. I've been able to pick up the program without reading any tutorials.
      -Both "pretty pictures" and "engineering precision" - Agreed
      -Export to other standard CAD formats - This is important for users wanting to use outside FEA and CFD programs.

       
    • Anonymous

      Anonymous - 2007-10-28

      Just learned about AcoCADo-CAD today. This looks like it is going to be a CAD program that even I could use. Which is good, because I was looking for one.

      I am an hobbyist user, without any real background in CAD. Nevertheless, I found avoCADo-07.05-preAlpha-Linux easy enough to use. Please keep it that way. People like me do not mind using/figuring out complex programs as long as we can fall back to an agreeable interface.

      As for wanted features, a lot has been said already. But these are a few things I would like to see:

      - import of parts/libraries/whatever from other CAD programs
      - motion simulation like http://www.askoh.com/freecad/index.html
      - good printing function

      I have an interest in designing mechanical stuff and I hope AvoCADo can help me with that one day. I am sorry I have nothing to offer the project in terms of assistance. Just my enthusiasm and good wishes ;-)

       
    • The Open Prosthetics Project

      I'm part of a couple of open design projects (see openprosthetics.org, as well as our mission statement at shareddesign.org), and an open source CAD package is right at the top of my list of things lacking in order to allow projects like ours to take off.

      I think that reproducing (eventually) the features and functionality of full blown CAD systems is an absolute must. SolidWorks is an extremely easy to use and powerful tool that can be used by the novice within hours of starting the first tutorial. Most of the other systems tried to duplicate parts of the SW interface once SW started taking market share away from the old unix legacy systems that were awful from a UI standpoint (AutoCAD, Pro/E).

      An open source CAD package (and truly parametric interchange format) would help solve some fundamental inefficiencies that have long existed in engineering. I have been part of projects where different engineering teams spent significant amounts of time remodeling everything from scratch because of the lack of real translators between platforms.

      It is also my belief that CAD users probably have among them (both companies and individuals) many who would qualify as Von Hippel's "lead users" likely to be testing the bounds of their favorite system's capabilities (http://mit.edu/evhippel/www/books.htm). Giving them the keys to modifying the tool would likely yield quicker innovation in the tool.

      The barriers to entry into the world of 3d design for the novice user *do* need to be lowered, but it is my belief that these are not barriers of difficulty of use, but of price (no one buys a $3000 license just to mess around in their spare time), and of the difficulty of interacting with the physical product of the design at the other end. If the ultimate product of the CAD is a machine drawing that must be followed by a machinist, how many will experiment? It is only when projects like RepRap and Fab at Home become a little more capable, or ZCorp machines get a little cheaper that we'll be printing useful 3d models at Kinko's.

      A couple of thoughts on file formats. Here is an interesting paper on extending STEP with XML to add parametric information: http://www.cadanda.com/V1Nos1to4_18.pdf Other thoughts on file format could be to use the standard for 3d printing machines (BFF?), or a plain text script that mimicked the design tree (would fit nicely with the command line desire).

      Anyway, this is a noble effort, and one we hope gains critical mass soon. Thanks for the effort.

      Jon Kuniholm

       
      • Adam Kumpf

        Adam Kumpf - 2008-01-20

        thanks, Jon.  you bring up some really good points. 

        Development is now picking back up after being slow for a few months. hopefully the next release in a month or two will facilitate more discussion and interest. I'm trying to work out some bugs and add a couple features that will be needed for typical CAD applications. 

        Cost is definitely a barrier for people to play around with CAD and is certainly one of the main motivators for an open source solution. The user interface is also another barrier so I'm hopeful that avoCADo can make some steps forward in that realm as well.

        Saving/Loading/Importing/Exporting are all big areas to consider.  I've gotten excited about a number of different standards over the past year, but there always seems to be some kind of snag along the way.  3DXML was the main candidate, but it is not quite as "open" as one would think.  I do, however, think that XML should be part of the solution so your link to the paper on STEP with XML seems very relevant.

         
    • Jim T

      Jim T - 2008-02-10

      I like it! But now that I've tasted it, I want more, MUCH MORE! Like olavell, I am anything but an engineer, with some rudimentary experience with CAD ... enough to know that most of them are counterintuitive. AvoCADo, however, shows promise of powerful features built on a UI that requires a minimal learning curve to get started.

      Regarding native file formats, I suggest a good place to start would be SVG, a language for describing two-dimensional graphics and graphical applications in XML(sounds awfully smart, but I copied the definition from filext.com).

      Though I love AvoCADo's UI, others will inexplicably prefer a more traditional CAD UI, and logic tells us we can't please everyone. Well, maybe logic is wrong. Once a larger community of contributers becomes involved, coders will be able to develop plug-ins to make AvoCADo look any way they want.

      So I'll continue playing with it 'til I come up with some concrete suggestions.

       
      • Adam Kumpf

        Adam Kumpf - 2008-02-10

        We are definitely working on the "MUCH MORE" part. :)  I take it to be a good sign that one of the most frequent comments about avoCADo is "I like it, but want more."

        I'll look into 3D SVG -- thanks for the suggestion.

        The UI could certainly be improved, but I don't think avoCADo should try to be like a standard CAD application.  standard CAD tools are designed to be very efficient when used by experts (i.e., scripting, shortcuts, button palettes, jargon). Instead, I hope avoCADo is welcoming to non-experts while still allowing for powerful functionality; the flexibility and playfulness of modeling clay with the control and precision of CAD.

         
    • Tony B

      Tony B - 2008-03-02

      I believe cross platform is very important. We don't know what the future will bring, people might switch to Linux or they might crack down more on piracy forcing the poor to switch to Linux. Already I've heard many poor countries are switching to Linux.

      This project could do great things, if it helps extremely poor people get free CAD software. If it doesn't do that, it doesn't do much at all. It should also work on slow computers, 'cause extremely poor people can't afford fast computers.

      That, and an extremely easy to use user interface. I might design that, if I get time. I've got 10 years experience in CAD. I've used Solidworks, ProE (old and new), Cadkey (old), and AutoCAD (old).

      Lastly, it needs to be error free geometry. 

      Tony

       
    • Kelly L.

      Kelly L. - 2008-03-07

      Adam,

      First off, kudos on getting this project well underway. I think its a good thing that's definitely needed, tho will be a great challenge. Because there are free options out there already, tho they are "closed source", it'll be a challenge for you to compete. This is mostly because *open* source is not an important distinction to the majority of average users. I'm definitely not trying to discourage, tho! Its just advisable to be considering the real-world benefits to your OSS approach within the CAD industry in order to promote this effort in meaningful ways to potential users and contributors. Additionally, perhaps contacting and extending a personal invitation to the authors of some of these other apps might garner some valuable aid and experience (and maybe even some contributed code!) Google for DESI-III, MINOS or J-patch for possible authors.

      I have some thoughts on the interface design: don't get too uptight about this. You are simply not going to meet everyone's expectations. Come up with some basic fundamental "rules of thumb" as to its intent, then allow it to grow into what the tool requires.

      Everyone has their own idea of what "intuitive" means, and most of the time its erroniously equated with "familiar". Case in point is the above disapproval of Blender's interface. It is quite unfamiliar to the average Windows user, but it is far from unintuitive. Once familiarity is gained, even to a small degree, the intutitive nature of some aspects of it (not all of it, admittedly) becomes clear. Frankly, I'm surprised that a user familiar with keyboard/command-line interfaces was frustrated by Blender as its a *very* hot-key driven design. It utilizes a paradigm that is intended to allow a vast amount of information & capability to be presented to the user efficiently and contextually within limited screen space. Where it can begin to confuse the average (CAD) user is in its object-oriented data architecture, which is not at all an interface-only issue.

      Every application has its own unique interface philosophy and execution. I've used many CAD apps (including AutoCAD, SolidWorks, Inventor and CATIA V5) and each, while similar in intent and goals, goes about getting there in their own ways. The user must simply focus on the particular goal, then learn the ABCs of how to get there. One interesting example of a unique interface with specific, focused intent is Michael Gibson's MoI. He designed it to be tablet/stylus friendly, so that the artistically-oriented industrial designer could delve into technical design more intuitively.

      Speaking of MoI, a NURBs-based app, I think advanced math-based surfacing capability could be a real asset to avoCADo down the road. Perhaps "re-borrowing" the Nurbana code once donated to the Blender Foundation's efforts could be a starting place? (Not sure if the liscences are compatible, etc.)

      My only file-format thot is to see if anything can be garnered from the Robert McNeel & Associates' openNURBS initiative: http://www.opennurbs.org/ Again, not fully "open" but perhaps a source of information, if nothing else.

      Cheers, -Kelly

       
    • F Carlo

      F Carlo - 2008-03-08

      I'm posting you something that I recently wrote in a Blender forum, which can sum up a few aspects that I think are important

      "For a series of reasons, despite loving the idea of a powerful open source tool as blender, i never got out of the n00b phase, I'm sorry if what I'm going to write is somehow incorrect, but want to give a specific point of view, that of the occasional user, eg architectural designer".
      "I think the reason why a lot of students of architecture took up sketchup as a quick rough and ready modeling tool for pre-design concepts is it's immediacy, like, you operate on workspace by drawing lines picking points with a pen tool, you actually click and you get a point, a line, you move your mouse and you get a snap point (or with a simple combination you get different kind of snaps). You want a material on a face, or series of faces, you just drag and drop on the face from a menu, and so on.
      Blender is a way more powerful tool (it's not even possible to compare), but it lacks this "out of the box" immediacy of operating on the model".

      Now, what I've noticed in the underground world of open source CAD projects is a sort of fragmentation in the aims. For example you are writing about a tool for engineers and artists alike, but what about architecture, which is in-between, as it needs total flexibility in the creative use of tools, but also accuracy.

      What I think should be implemented somehow:
      * bridging the gap between 3D models and 2D representations. On one side it's excellent to have a powerful modeling tool, but a CAD software must be able to produce neat technical representatios: plans, elevations, blowups, sections. The workflow for this must be automatic: every drawing will be updated by avoCADo as the model changes.
      These 2D drawings must be fully customizable in a sort of "postproduction" mode.
      (why not borrow work or team up with 2D vector graphics open projects such as Inkscape, for example... maybe avoCADo shouldn't have too many capabilities within itself, as much as provide a link with some other more specific application: say, I have this view of my avoCADo model, and I can import it in another opensource software, but when I update my avoCADo model and views, the drawing in the other software will update as well).
      * think about scale. The very same object must be displayed with one level of detail at one scale (eg 1:20) but with a much lower level of detail at another scale (say, 1:100). This is very true of architecture and building engineering, maybe not as much in mechanical engineering.

      another thing I would recommend, since there is people out there working on open source CADs, well, guys, try to team up...
      I find interesting the ARCHIMEDES project (it's focused on 2D, though); definitely there must be some link with Blender in terms of interoperability (of course, Blender is NOT a CAD software)... well I'm sure you don't need to read this from me!
      good luck!

      (btw, I have no experience in programming, and I don't have time to learn anyway, but I'm definitely willing to give suggestions / try the software out).

       
    • Jeremy W

      Jeremy W - 2008-04-01

      There are so many important issues that it's hard to keep the list manageable. Most of my items have been mentioned above, but here's my input.

      -Usability
      -Cross-platform capability
      -Multiple file format interchange (STEP, etc)
      -Engineering precision as well as quick sketching
      -2D drawing creation from 3D parts
      -Parametric modeling
      -CAM capability
      -Plug-ins

      I see plug-ins as a way to help balance the whole power vs usability issue. If the community can write plug-ins for features like the AutoCAD command line interface, users can choose whether or not they want to add that feature (a.k.a. complexity) to their system. What would need to be done is to provide community programmers enough hooks into the underlying code to really give some bite to the plug-ins we write. Jon Kuniholm mentioned the RepRap and Fab at Home projects above which highlights the fact that it would be nice to have the CAM capability (again, maybe through a plug-in) eventually. Table top DIY CNC machines are getting to be more and more common.

      I'm excited about this project, and I think it's really headed in the right direction. As a Linux user I really appreciate the fact that it's cross platform too. I am a little concerned about the computational speed of Java for some of the more complex 3D modeling though. I think that Chris Chiasson's comment about being able to use C++ classes might be something to keep in mind. Hopefully using JNI or some equivalent to call the C++ code wouldn't add too much complexity.

      Keep it up, and I look forward to contributing to this community.

       
    • okbikebldr

      okbikebldr - 2008-04-09

      I just leaned about this project and I to am very interested in it. I will have to go home and try it. Now as to the question. I am a drafter and piping designer by trade. To me the most important features in a cad program are its drawing production tools. My model or picture can be beautiful and accurate but if I cannot present it in a printable drawing it is essentially useless. The entire purpose of any cad software is to design and build something in "virtual space" allowing for as many problems to be solved before spending the time and money to actually build it. Being able to communicate and present the design is what is most important to me. Along the same line being able to set up templates a borders, symbol libraries etc is very important due to the fact that in a given trade a drafter will produce the same type of drawings over and over again. Being able to have things pre drawn things making drawing faster to produce and consistent across multiple drawings.

       
    • IMcL

      IMcL - 2008-04-24

      First off, it is fantastic that you are developing this.
      I think as other users have stated cost is perhaps the biggest barrier to 3d CAD use.
      Also, the usability of Solidworks is excellent - but I would also be aware of the weaknesses of solidworks.
      A CAD program should make it easy to create geometry, but it should also be easy to manage assemblys of parts,
      (this would seem to be only acheivable with a clear mating heirachy a la Pro-e, rather than the "all mates are equal"
      system of solidworks)
      It also needs to be easy to  track references, and circular reference errors (if it has top-down design capabilities).
      Again solidworks is a bad example here - it doesn't even warn of circular references.

      As to what is most important - the possible range of features is huge.
      I would say for me the following:

      (bear in mind - I am talking from an engineering point of view and if you actually manage to do all this it would be huge)

      Easy to use and functional sketcher (eg solidworks)
      The ability to create almost any shape easily and quickly (solidworks again is a good example here)
      A stable and robust assembly system which enables the user to easily see, change and repair component mates (solidworks is a very bad example here - pro-e is much better)
      Parametric part and assembly configurations.
      Top down design (the pro-e system of copy geometry is extremely good)
      With top down design there needs to be a good system to avoid circular references, something that is a problem with solidworks.

      I must stress I have little or no knowledge of software development, so can only guess at the hurdles such features would present, or if they are even realistic for an open source
      project.

      Good Luck!

       
    • yndesai

      yndesai - 2009-02-05

      I agree with "Ampere K. Hardraade" when he says the command line like AutoCAD is desired. For it makes your both hands work.

      Also where we work we have AutoCAD as default CAD software hence asking people to migrate to any new software even MicroStation takes lot of efforts.

      I recently downloaded the software many functions on edit front like move, copy, offset are needed.

      Most striking is though we do 2D sketch we need the 3 co-ordinates system while sketching as some
      of my use of sketches are like running line in 3D space and converting them to pipes/beams/cables etc.
      THIS IS MORE OF THE PLANT DESIGN USE and not just component design.

      Good Luck

       
    • ist49869

      ist49869 - 2009-03-12

      I think it would be great if avoCADo had functionalities for the ones who work for industry. Three brief topics (note that I am new to advoCADo, so I don't know if it has them already):
      - Automatic generation of 2d projections, cuts and isometrics with dimensions from a 3d model like PDMS software;
      - Possibility of creating a database with components (with parameterised geometry) and their specifications like valves, elbows, etc. and automatic generation of a material take-off table;
      - Automatic generation of Lines, Tie-ins, Valves and Equipments Lists.
      Also I think it should be easy to a person out of your computer graphics world to ask you to build a GUI for a module for specific engineering applications. For instance I have lots of codes for hydraulics applications like fluid nets, dam-break problem, water-hammer problem, internal and external flows and I could build much more for flexibility analysis for example, or even FEA analysis. If you gave the variables my codes need from the solid model then they could run in batch mode. Notice that java isn't the best language for PDE's computation because it's slow.

       

Log in to post a comment.