leozide / leocad

A CAD application for creating virtual LEGO models
https://www.leocad.org
2.49k stars 211 forks source link

Integration with CADdrive? #918

Open ghackenberg opened 5 months ago

ghackenberg commented 5 months ago

Dear @leozide + LeoCAD developer community,

love your product! ♥️ Recently, I have been working on an integration with CADdrive, which is an open source platform for 3D model versioning, issue tracking, and milestone planning inspired by GitHub. We use LeoCAD in combination with CADdrive in courses on product design and digital collaboration at university. I was wondering if you are interested in adding our LeoCAD CADdrive extension to the standard feature set of LeoCAD?

"CADdrive" menu item

The LeoCAD CADdrive extension adds a new "CADdrive" menu item to the main menu of LeoCAD. Below this new CADdrive menu item you find the actions "Load", "Merge", and "Commit" (see Screenshot 1). The "Load" action can be used to load model revisions from a CADdrive server. The "Merge" action can be used to merge the currently loaded model revision with another model revision from a CADdrive server (using the standard LeoCAD merge operation). And the "Commit" action can be used to upload the currently loaded model revision including any changes made sofar to a CADdrive server.

image

"Load model from CADdrive" dialog

When clicking the "Load" action, the "Load model from CADdrive" dialog opens. You can enter the details of the CADdrive server (i.e. protocol, host name, and port number) into the dialog and select the product and model revision you want to load (see Screenshot 2). After clicking the "Ok" button, the LDraw file will be downloaded from the CADdrive server, stored into a temporary file on disk, and opened in LeoCAD (using the standard LeoCAD open file operation). After loading the model revision, the user can start working on the LDraw model as usual all the features included in LeoCAD.

image

"Commit model to CADdrive" dialog

When clicking the "Commit" action, the "Commit model to CADdrive" dialog opens. The dialog again shows the details of the CADdrive server (i.e. protocol, host name, and port number) to the user. Furthermore, the dialog shows the associated project on the CADdrive server as well as the base model revisions (i.e. the model revisions your current LDraw model is based on, which are derived from "Load" and "Merge" actions). Then, the user can enter the version number of the new model revision and enter a commit message. When clicking the "Ok" button, the model is and all the meta data is uploaded to the CADdrive server.

image

This is only a first draft of the extension. I am sure, the extension can be improved in many ways ... Anyways, looking forward to hear your thoughts on this!

Best regards, Georg