Workbench for FreeCAD integrating with OSEDev to provide for collaborative development, parts catalog management and versioning.





Minimum Viable Product

FreeCAD Login Screen for OSEDev Workbench

Login mechanism FreeCAD Dialog to let user enter their osedev.org user/name password, which is only saved in memory for the duration of FreeCAD process. Open and maintain websocket connection. websocket-client Send upon connection: Username/password Assembly 2 WB version (if installed) OSEDev WB version FreeCAD version ^ useful for debugging and notifying user if new versions are available Show connection status, allow user to connect/disconnect. osedev Authenticate websocket connections against osedev user table. Maintain event group for connected users in django-channels. Chat FreeCAD Simple chat client/panel. User list with online/offline status. Show FreeCAD version number next user names in the user list. osedev Simple django-channels chat service implementation. Chat messages logged to db. Parts Catalog Uses Amazon Cloud Storage to store files. Listing of parts FreeCAD list panel part name - OSE Part Naming Convention current lock status last modification date and user view part details and change log. osedev respond with list of all parts upon request send lock/unlock notifications and part changes down the django-channels group User can "open" (download) the part from S3. FreeCAD Open file as independent document. Open file using Assembly 2 WB "Add" mechanism. User can "lock" file for editing. FreeCAD: right/click on file or a button to lock/unlock. show what the server thinks is lock status. osedev process lock request save to db with timestamp notify everyone else in django-channel group release locks automatically after 12hrs of no activity User can "save" (upload) the part while providing a comment for the changes made. FreeCAD In addition to normal file save, there will be an upload button. (user can both keep/save file locally and/or upload changes) Dialog to collect changes before uploading file to osedev. Upload file, show upload progress, show processing progress. osedev Request to osedev.org to make sure it's okay to upload (user had lock or nobody else has made changes even if lock expired). If lock expired but nobody else made changes allow the upload but lock the file again until the upload finishes. Upload file to osedev and begin processing: #Part Processing upload file and generated artifacts to S3. Notify user that their changes were uploaded and lock released. (FreeCAD UI will reflect this)





Part Processing

make thumbnail. webgl view. calculate print time for printable parts. generate STL and run diff tool. see github for inspiration: 3d file diffs create version record and save change comment.





Future

Automate/assistant in the process of updating dependent assemblies when a sub-part is changed. Present list of directly dependent assemblies. User can pick which assemblies should be update. WB will download all assemblies, lock an assembly, open in Assembly 2 WB, re-fresh parts, upload/unlock. Search parts. Download older versions of parts. One click sharing of screenshot of your FreeCAD model view in chat. simple way to draw on screenshot (just single color/brush size and bitmap if that's easier).





Icons





Please enable JavaScript to view the comments powered by Disqus.