Building a CAD collaborative open source platform

CADCloud is a new software contribution hosted by the Open Compute Project, and is released under the MIT license. CADCloud aims to allow the OCP Community, and mechanical engineers around the globe, to collaborate online during these challenging & unprecedented times.

 

CADCloud is an ongoing effort which aims to create a common platform intended to store, retrieve, analyze and improve mechanical parts and assemblies. It is based on pure open source technologies, but it can be interfaced with proprietary tools that are supporting STEP and IGES file exportation. NOTE: Some limitations might apply like design edition capabilities etc.

 

The front-end CADCloud relies on “FreeCAD,” which is an open source 3D parametric modeler. A specific build of FreeCAD is required to use CADCloud. These builds are available on the following operating systems:

 

The primary purpose of CADCloud is to publish online 3-D models that can be directly explored through a web browser of your choice, without any additional requirements. Please see figure-1 and figure-2 as examples showcasing 3-D modeling of an OpenEDGE system. End users can directly browse assembly, hide elements and quickly understand a design concept without needing specific tools. 3-D models can be embedded into websites to display a physical representation of any mechanical parts instead of 2D drawings or images.

Figure-1: OpenEDGE 3D Design using CADCloud

Figure-2: OpenEDGE Sled 3D Design using CADCloud

 

To publish a model, the following steps are required:

  •  An account on a CADCloud instance. A free public version is available at https://justyour.parts. 
  • The primary model needs to be imported into a local FreeCAD instance. To do so:
    •  Create an empty document and use the import function
    •  Any file format supported by FreeCAD can be used
  • Cloud module needs to be used to export the model to CADCloud. The Cloud-based module exports the model in FreeCAD open format using Amazon s3 object storage protocol. Cloud module is used through the python console included into FreeCAD and an export can be performed through a few commands:
    • import Cloud
    • Cloud.URL(u"https://justyour.parts") -> Name of your CADCloud server
    • Cloud.TCPPort(u":443") -> TCP Port used by the server (mostly 443)
    • Cloud.TokenAuth(u"<your authorization strings>") -> User specific
    • Cloud.TokenSecret(u"<your secret strings>") -> User specific
    • Cloud.Save(u"<my project>") -> Name of the project

By executing this command through FreeCAD python console, the model will be stored on the server, which will  automatically post and process it to transform the data into a web-ready representation that can be shared.

Users can then exchange a specific design through email, or any preferred communication channel. An upcoming feature of CADCloud is to smoothen that feedback process directly from the 3-D web client. If an update happens to the design, it could be automatically published back to the platform through FreeCAD, and a new version of the design is generated.

 

Using CADCloud as a save-and-restore platform

Using the same principles as previously described, it is possible to restore designs saved into a CADCloud instance by using the Cloud.Restore command in the python window of FreeCAD. In this mode, FreeCAD can be used as a primary design tool, and CADCloud as a publishing and storage backend, making it a unique tool for mechanical engineers. FreeCAD 0.19 version is supporting various assembly modules, and CADCloud is currently working on supporting the Assembly module, which could lead to creating advanced assemblies from parts stored into a CADCloud instance.

 

Enhancing CADCloud

CADCloud is an active Project under development. Bootstrapped into the FreeCAD Community, it is now part of the Open Compute Project Community, found here: Github location. A lot could be done to make it a useful and adopted tool. The core developers are currently focused on supporting document links to create advanced assemblies, project forks to allow users to retrieve existing projects from one user to the other, avoiding the need to redesign parts. The core of the technology is written in Go.

 

Feel free to join us and let's publish your designs!