JulianStirling wrote: ↑Sat Feb 22, 2020 9:05 pm
The idea of a GitLab for Open Hardware is really exciting! We do most of our hardware development on GitLab (Example1Example2). We find it very powerful for OpenSCAD as we can use the CI to build the STLs, and the OpenSCAD code is easy to track in Git.
The biggest issue we have had with GitLab are that many members of the hardware community are not Git savvy and find it hard to contribute. The other is that if we keep generated files such as STL files out of the repo then parts cannot be viewed.
The biggest thing I have found at OpenHardware events that people talk about is documentation. I work on a program for hardware documentation. This generates web documentation from GitLab CI (example) which has threeJS for viewing STLs generated by the CI. What it lacks is a good way to show things like STEP and FCStd files, this seems like a !HUGE! step in the right direction.
I would be very interested in talking about how to integrate documentation into justyour.parts. I also encourage you to join the GOSH - Gathering for Open Science Hardware, you will find many people very interested in this project.
Thank you for starting this project, Iook forward to the Docker image.
Thanks for your feedback. I just have updated the code and there is now a way to "easily" build a Docker image. I say easily because the stuff is complex in the end. It tested it on my Mac and it seems to work as it is supposed to.
Just let me know on github if you have any issue by reporting it I will definitely have a look to the community website you pointed me out. CADCloud is able to show STEP and native FCStd file by keeping the tree structure. It is definitely still buggy, not optimized etc ... but it works on huge models from OCP (Open Compute), and I bet we can make it work with roughly everything which FreeCAD can open, this is a matter of testing and wish.
sliptonic wrote: ↑Thu Feb 20, 2020 4:54 pm
Hey Jean-Marie,
I was fascinated by this idea at FOSDEM. It's very cool that you decided to open-source it.
Do you have any more documentation on deploying a private install? It might be cool for someone to build a docker image that anyone could put up quickly to experiment with or use in-house.
I'm looking for the cloud workbench referenced in the readme but not finding it. link?
It would be very cool if Part::Link could work with remote resources through an URL. Maybe I'm just dreaming though.
Done, (at least for Docker), so you can checkout latest commit from the github repo and you shall be able to build a Docker image. For every build, I shall get a PR to fix one bug or enhance the code. (I am kidding). There is still a lot of work, but I am convinced that this stuff progress in the right direction. I have a basic dream to see a windows build coming up of 0.19 with Cloud workbench. Most of mechanical engineers are still on Windows
Just a quick update we made some good progress on the Docker image build. Thanks to @sliptonic and @apeltauer. There is still a lot of work to do, but I am getting more and more optimistic on that project
vejmarie wrote: ↑Sat Apr 18, 2020 3:32 pm
Just a quick update we made some good progress on the Docker image build. Thanks to @sliptonic and @apeltauer. There is still a lot of work to do, but I am getting more and more optimistic on that project
Just found out about this second-hand from Brad Collette.
Very neat project! Keep up the exciting work
I'd love to dig-in and find out how you're rendering parts through WebGL.
Hi,
That is super easy. I am opening the CAD file with FreeCAD running in "headless" mode and export that as an OBJ Wavefront mesh. When done, you can open that with Xeogl.js and you are good. Ok this is a little bit more complex (with big model) than that as there is a mesh per part into the original CAD file, but the principle is the previous one.
You also have limitation from web browser which can't accept string bigger than 64MB. So you have to split the OBJ file in multiple files, which is a funny task to do as you need to re-number the nodes, keep the vertices, and normal matching the new node numbers. So I wrote in go a wav obj file splitter.
Hope this help, and didn't afraid you too much. Everything is public by the way either in FreeCAD or CADCloud source code. I do accept PR, so feel free to clean my dirty code !
That is super easy. I am opening the CAD file with FreeCAD running in "headless" mode and export that as an OBJ Wavefront mesh. When done, you can open that with Xeogl.js and you are good. Ok this is a little bit more complex (with big model) than that as there is a mesh per part into the original CAD file, but the principle is the previous one.
You also have limitation from web browser which can't accept string bigger than 64MB. So you have to split the OBJ file in multiple files, which is a funny task to do as you need to re-number the nodes, keep the vertices, and normal matching the new node numbers. So I wrote in go a wav obj file splitter.
Hope this help, and didn't afraid you too much. Everything is public by the way either in FreeCAD or CADCloud source code. I do accept PR, so feel free to clean my dirty code !
vejmarie
Thanks for the clear explanation vejmarie. It's certainly helpful!
For the revision management, it'd be very cool to have some sort of visual diffing and merge process.
Not text-based diffing, but highlighting additions and removals of the part geometry in green or red maybe.
I'm probably getting ahead of myself
Last edited by gbroques on Tue Jun 30, 2020 3:15 am, edited 6 times in total.
I am thinking about it, and how to implement that. I am just currently focused on something else, based on the links (integrating cloud storage to App::link ) , but this is definitely on the TODO
Feel free to implement the first phase. We do have FreeCAD running in server mode, so most of the diff computation could be done with FreeCAD. Then this is a matter of exporting the OBJ WAV properly, but I know how to do that.
Quick update for tonight, after a busy 4th of july week-end. I can create links between 2 CADCloud saved document, and properly save the Document which contains them. It has been easier than I initially thought to implement. I need to clean the code now, but this is just amazing to see it working !