GSoC 17 LibreCAD

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

GSoC 17 LibreCAD

behlV
Hi all,

I am vaibhav bhel pursuing my engineering in chandigarh university. I am in second year now and have a keen interest in programming. My past experience is on C, C++, somewhat Java and ruby as well. I would like to contribute to LibreCAD 3 this year in the LC phase 1 UI.

I downloaded the LibreCAD 3 source code and tried to understand the workings. Somewhat I understood.

I had a quick call with Gaganjyot ( was my senior in the college ) two days ago and he explained me that in this project we need to develop a sort of abstraction from the UI for the LibreCAD.

So I realise we need multiple interfaces for to communicate between UI and LibreCAD kernel.
1) Mouse interface
2) Keyboard interface
3) Buttons interface
4) Menubar interface
5) Context Menu interface.
6) Scroll bar interface ( not sure though )

These interfaces are librecad side interfaces which will be called by Qt/GTK UI.

After building these interfaces, i need to connect LibreCAD and our UI via these interfaces and make them working.

Is this understanding correct?

What else comes under this project? any guidance will be helpful.

I'll be writing and uploading a proposal this weekend.

I know I am a bit late to communicate, I was kind of stuck up in mid-sem exams.

Any other sort of guidance, thoughts will help me in making a better proposal. Please let me know.

Thanks and Regards,
Vaibhav.
Reply | Threaded
Open this post in threaded view
|

Re: GSoC 17 LibreCAD

behlV
Hi ail,

I had some discussion with ries and gaganjyot regarding the project and I'll be continuing with the javascript plugin interface project.

Having a bit thinking and brainstorming on this project, I understand that we need to create an interface to LibreCAD that will expose LibreCAD functionalities to outside users via JSON.

Reading gaganjyot's blog http://gaganjyot.com/CAD_Plugin_interface I get a better idea,

Reasons I realise the need of this project,
1) People will be able to write plugins in their favourite language.
2) People will be able to create JSON based macros to perform repetitive tasks.
3) People will be able to create micro-programs that will generate JSON inputs for the LibreCAD program.
4) I've used FreeCAD too much for my designs in college and hence we might be able to build an interactive command prompt just like freeCAD has one for LibreCAD.

I think the whole project could be split into smaller milestones,

1) integrating librecad into a webserver module that will be able to accept http requests.

2) Create an interface to the LibreCAD Kernel to be executed by JSON Parser being developed in point 3.

3) Creating custom JSON Command parser so as to parse the commands in the JSON Request and call the specific functionality from the LibreCAD interface developed in point 2.

I am looking something towards http://pistache.io/ for creating the web server.
https://github.com/nlohmann/json for JSON Parsing.

I'll be writing the proposal today and uploading it finally tomorrow.

Any thoughts/ideas on above approach would be helpful for making the proposal better.
Reply | Threaded
Open this post in threaded view
|

Re: GSoC 17 LibreCAD

behlV
Hi team,

I've submitted shared my proposal draft with you, I'd like to have suggestions from to improve it. I have exams on monday and tuesday so I might be a bit less available a day after tomorrow.

P.S Please bear with me for this time. I am withheld by exams now but I'll be able to contribute fully during the vacations.
Reply | Threaded
Open this post in threaded view
|

Re: GSoC 17 LibreCAD

gaganjyot
Hi Vaibhav,

Nice to see you working on LibreCAD.

I saw your proposal and have a few questions mentioned on the doc itself.

One of the most important thoughts I had while thinking of this model was that we don't need dependencies on any sort of libraries that don't get into with LibreCAD license. If the work is not much, we ourselves can develop that module but if work is much, maintenance and there are already good libraries available for the same, we might use them via this plugin interface.

For example LibDXFrw or LibreDWG to read DWG/DXF Files, instead of incorporating into librecad we use it via interface, are you able to understand this?

I again have this question from you, how do you see the GUI if the JSON interface is implemented? I'd like to know your thoughts regarding how do you see LibreCAD 3 implemented? The information in the proposal is fine but it can be an expansion of the information written on my blog as well. So I want to know what knowledge you have regarding LibreCAD history, design decisions, approaches previously used etc.

Some personal advice,
Please use a spell checker.
Also if you have any questions, doubts, try to post them on Forum or IRC ( as in open discussion ) instead of private communications. It will be much helpful in future for reference purposes.
Reply | Threaded
Open this post in threaded view
|

Re: GSoC 17 LibreCAD

R. van Twisk
Administrator
In reply to this post by behlV
Vaibhav,

A few questions.

1) What's the reason you want to embed LibreCAD into a webserver instead of embedding a webserver into LibreCAD?

2) What is your thought on using RPC?

3) In your proposal you mentioned nlohmann/json. Why would you go this route instead of connection over lua and using a lua JSOn library?

Kind Regards,
R. van Twisk