CAD Discussion

From Open Source Ecology
Jump to: navigation, search

Overview

CAD Discussion

see also CAD Tools

Discussion

from Sam Rose

Blender is OK for sketching. But, not good for CAD/CAM programming, as it draws in vectors, and not in constructive solid geometry, which is what is needed to give you the details of dimensions of what you are drawing.

OpenCascade does have CAD, and so does BRL-CAD. Much of the drawing done in both happens by way of command line input as opposed to computer mouse drawing. There is going to be a steep learning curve with any open source CAD (or even commercial CAD for that matter).

While OpenCascade seems easier to me, the consensus among people working in open design is http://brlcad.org/

What kind of computer are you going to be using (Mac, Linux?)

I would say that it would be more than worth the time invested to learn http://brlcad.org/ this will put tremendous power to design into your hands. documentation is here http://brlcad.org/wiki/Main_Page and http://gpwiki.org/index.php/BRL-CAD:Tutorials tutorials can help.

Also, get an IRC client and check yourself in to irc://irc.freenode.net/#brlcad if you run into questions you can ask the actual people that program it. Let them know who you are and your project and they will probably be interested in helping you. Mailing lists are here http://sourceforge.net/mail/?group_id=105292 but I do not follow them so do not know if they are currently active.

Also, http://avocado-cad.wiki.sourceforge.net/Tutorial_CoffeeMug avaCADo is a very simple one that is based more on drawing (although with scant documentation). Yet, some evalution (using Ubuntu Intrepid Ibex 8.10) shows that it is capable of doing some pretty complex solid geometry operations (without all of the command line interface). Worth a try, and it runs on Mac too.


Revolve.jpg


Marcin says:

From a cursory view, AvoCADo appears to be best. We are looking for a simple drawing tool that has robust visualization features a la doing prototyping on the computer screen rather than in physical space, like Jeremy did on Sawmill wiki page with Blender. The goal is: if you can draw a design, you can see the details of how things fit together, and you can draw up a BOM and fabrication procedure for that. We're talking about basic modeling before one goes out to buy supplies.

This is what we need badly right now for the OS movement in general.

from roleic

It is sad to see the inspiring open-HW-movement dragging along designing 3D-geometry with inadequate tools like blender or sketchup. Discussing the features of existing CAD SW will not do. Important is what the OSE project and most other open mechanical HW projects really need. If you want more than a few people join in the development (crowd development) then you need a tailored free and open source HW development tool-chain which also allows easy model distribution and easy change management. This is not in existence as of now (end of 2013) and therefore also no large crowd development can be happening.

Current CAD files save the 3D-geometry-data. And the most often used transfer formats like STEP and IGES also contain 3D-geometry-data. These files are bulky, difficult to share over the internet and contain only dumb 3D data without parametrization etc. In terms of SW development 3D-geometry-data corresponds to compiled executables. However in open SW projects they manage source code and its changes not executables for good reasons. In 3D-CAD the source code corresponds to the sequence of commands that created the 3D-geometry-data. Some CAD-systems are scriptable. The scripts creating the 3D-geometry-data are the source code. This should be distributed, collected and version controlled not the geometry data. The scripting command language should be standardised rather than the 3D-geometry-data formats. The actual CAD tool would act like a compiler or interpreter by locally turning the source code into 3D-geometry-data. This may take some time. So does compiling SW source code. But as in the so-called build-system of SW development you might keep the locally compiled object code (single 3D-geometry-objects) in separate files such that only the changed objects and depending ones have to be recompiled.

Since these CAD scripts are text they can be managed like software source code e.g. with existing distributed version control software like git or mercurial. Changes could be diff'ed and merged. In the best case sub-assemblies could be filled in different source files and sub-directories just like in open SW development. Only the files which have changed would need to be distributed. This process has been proven even in very large open SW projects like the Linux Kernel. If this can be implemented then you would have much better change mgmt than all commercial PDM systems provide for big money! Why does such a tool not yet exist in the commercial world? Because the commercial CAD vendors don't want standardized script languages because their customers would no longer be locked into their product and could easily change CAD tools. But for open source HW projects this is essential. 1. to be able to distribute compact source code over the internet and 2. a CAD and build system to efficiently turn source code into 3D-geometry 3. to easily manage many submitted changes from a large crowd.

As a starting point existing open source CAD systems with a scripting language could be used. Ideally they have a source code window and a graphical 3D-geometry-window showing source code and geometry side by side. FreeCad and PythonOCC are candidates. With more limitations also Salomé, OpenSCAD and ImplicitCAD. If the open-mechanical-HW-movement does not bother to develop a tool-chain matching their needs it will not take off like the open-SW and the open-electronic-HW-movements did by creating their own dedicated tool chains. The most important missing link in the mechanical-HW-tool-chain is a open CAD tool working with text source code files and directories, visualizing changes of two designs and possibly highlighting the relevant source code if a part of a 3D-geometry is selected in the graphical window. Also the interaction of such a CAD with a build system to avoid rebuilding unchanged geometry is required. Such a tool chain will have to be developed by mechanical engineers because only they know what is needed. However too many mechanical engineers seem to back away from SW development...It is time to change that. And it is high time for a dedicated open-mechanical -HW-tool-chain allowing large crowds to efficiently collaborate! How hard can it be? ;-)

Nick

Personally if I am going to go to the trouble of doing a model I'd like the program to have the capability of automatically putting out 2D manufacturing drawings and a BOM. This greatly streamlines the development process. I'm not certain if either of those two programs can do that?

From Chad

To respond to your request for open-source CAD, see/explore the following links for an assortment of packages:


If none found through those links suit your fancy, you may have to settle with a closed-source app for now - see the following:

An excellent repository of FREE 3D models in numerous formats, hosted by Solidworks (a closed-source suite) - just register with a valid email and you can download any of the models available in a plethora of different file formats:

http://www.3dcontentcentral.com


Open-source CAE - computational fluid dynamics, finite element analysis, electromagnetics, etc...a little farther down the line in product development, but you can bookmark it for now:

CAELinux: http://www.caelinux.com/CMS/

Development Discussions

Sam:

Marcin, as we discussed in email: use BRL-CAD for actual CAD drawings. Blender is good for sketches, but BRL-CAD, or other solid geomtery modeling is needed for translation of designs to CAM. Perhaps more development of BRL-CAD is needed, or training for those using it. There is a learning curve for sure, but it is worth learning. Worth the time investment. Also, perhaps if we can build a set of stakeholders, we can raise some funds and get several developers involved in adding drawing capability to BRL-CAD or other solid geo model CAD, like OpenCascade (BRL-CAD developers are very receptive to supporting this type of development).

Also, it is worth comparing RepRap with http://fabathome.org/wiki/index.php?title=Main_Page there is a consensus among some that fab@home is more robust/usable than RepRap. However, by the same token, RepRap could probably be made to be much better with some development. One of the problems with Fab@home is the software, which only runs on Windows http://fabathome.org/wiki/index.php?title=Fab@Home:Model_1_Software Fab@home seems to be a superior design, so it could be worthwhile to put some time and money towards development of open source, cross platform software to run it. This is something that I could look at developing this year.

Also, on the software front, progress is being made on http://heybryan.org/mediawiki/index.php/Skdb

Marcin:

Sam and Nick, it is a good idea to be proactive as the project unfolds, and consider paying for open source development of the necessary, cross-platform solution - after we evalutate all options fully and then define our needs clearly. Please put the evaluation and needs info at

http://openfarmtech.org/index.php?title=CAD_%28Computer_Aided_Design%29


Comment added on 10 November 2009:

For 3D modelling you may want to look into openscad (at openscad.org) written by Clifford Wold (you met him @metalab, he fixed your power cord). This uses CSG (constructive solid geometry) internally and can generate STL but also *import* STL (and use CSG on the resulting model). It also can read 2D designs in DXF and extrude parts of it into the 3rd dimension (extrusion can be linear or on different paths, so you can make, e.g., a torus by extruding a circle on a circular path).

Computer Aided Engineering (CAE)

Programs

  • List of CAE programs
  • VisualFEA - VisualFEA is an innovative program for finite element analysis, which is an advanced technique to solve and analyze physical problems arising in many fields of science and engineering.

Landscaping CAD

We are looking for an open source landscaping CAD program to help with collaborative permaculture design.


Although it is extremely difficult to learn to use, http://www.brlcad.org/ is the most robust that I have tried this far.

http://www.qcad.org/qcad.html is also really nice for 2D CAD work.

LinuxCNC looks awesome, but is only an "Enhanced Machine Controller", and doesn't provide CAD drawing, nor CAM toolpaths (G-code drawing). What it does is interpret G-code toolpaths to move the actual XYZ table, or whatever machine you are controlling.

So, LinuxCNC is essential, but as I have no machines to run yet, i have not had much of a way to test it out.

Also, for non-commercial use http://fab.cba.mit.edu/about/fab/ (cam.py and cad.py) those are some simple but useful software programs both cad drawing and cam toolpath generation (but are not fully open source, as we discussed earlier)

I am still searching for other software, but you can really do a lot with brl-cad and q-cad.

I still want to try http://www-rocq.inria.fr/OpenFEM/ and http://avocado-cad.sourceforge.net/ and http://www.cademia.org/frontend/index.php?sub=29 and http://www.opencascade.org/ don't know anything about those yet.

BRL-CAD

If you plan on trying to use BRL-CAD, the PDF's on this page are essential reading http://www.brlcad.org/wiki/Documentation

BRL-CAD Industry Diagram

BRL CAD.jpg

Other Software Sam Rose is evaluating

From Elifarley

As I examined current open source projects, I saw FreeCAD (http://free-cad.sourceforge.net) as holding the most promise. It is still far from production ready, but with a bit of a development push it could get there. It is based on OpenCascade: http://www.opencascade.org/

> The key features required is: (1) straightforward GUI; http://www.youtube.com/watch?v=Q7cG-LQK8Ps http://www.youtube.com/watch?v=LOAxc1StGW8&feature=related

> (2) collapse of 3D design into 2D fab drawings; http://www.youtube.com/watch?v=GFuyF78QLGc&feature=related

> and (3), generation of 2D CAM files. Is this at all possible by using a mixture of open solutions? No idea about 2D CAM. Here, a combination of Qcad and FreeCAD use: http://www.youtube.com/watch?v=Wavr1qF309c&feature=related

Miquel

Actual work, diagrams for manufacturing instruction documentation being done in Sketchup

For now, all the work being done for the manufacturing instruction diagrams seems to be occurring with Google's Sketchup software. We need to move forward, so I propose until better solutions are found, we stick with it.

That being said, I've encountered some issues working on technical documentation that I think deserve to be addressed by those working on the Sketchup models: consistency with the text. Brianna has informed me, for instance, that machinists prefer to work in pure inches instead of feet-inches. That is the way the text will be written, and when doing dimensionals in Sketchup to show where things go (like holes to punch, etc.), I think the text of those dimensionals should reflect inches only instead of feet-inches to stay consistent with the text. I feel, as a technical writer, that simplifies the CAD drawings and, in so doing, simplifies the documentation, making it super easy for novices to follow along and see how it all goes together.

I hope my message is received in the constructive manner it was intended. I look forward to working with CADders to knock out completed manufacturing instruction sets with accurate, easy-to-follow diagrams showing inexperienced machinists exactly how to build these machines one simple measurement at a time. --Howard V. Agnew 04:25, 24 September 2011 (CEST)

See Also