LibreCAD v2.2.0 - User Manual. This is an interim release of the of the LibreCAD User Manual and is subject to change. The manual is based on LibreCAD v2.2.0-rc1 with a few additions. If you are using another version of LibreCAD, your mileage may vary. “An option for design in a free software” Overall: In a time where we cannot afford the pay of the.
This is my final report for GSoC 2020. I’ve finished all my tasks laid out in my proposal and also managed to get a few more tasks done. I’d like to thank my mentors Florian andArmin for their tremendous help and swift reply to my doubts. I’d also like to thank members of the community like Rupak Bajgain, Guruprasad Rane and flywire for their help and advice.
Major PRs :-
Other PRs :-
Important Links :-
Brief description of work done
- LibreCAD is a free and open source tool that lets you make technical drawings without having to use AutoCAD or any other paid application. You cannot make 3D designs, but you do get a wide selection of tools for creating complex 2D designs. You can open your files in various CAD programs, as they can be saved in dxf, cxf, lff or jww formats.
- LibreCad is a very useful tool for creating precise professional 2D drawings quickly and easily. See howtopam set up a basic drawing and create a simple plan.
- Draw Lines in LibreCAD using this LibreCAD Tutorial Video.The Video is shows how to draw lines in LibreCAD using Crosshairs (Mouse) as well as Command Line (.
GUI shift from Lua to C++
- The GUI has been entirely shifted from lua to C++.
- Created MainWindow class, updated layer,toolbar,clicommand classes.
- All qt related code removed from qtbridge, now renamed to lua bridge.
- All lua ui files removed.
Lua GUI API
- Added Lua GUI API to allow lua plugin scripts to interact with the gui elements like the mainwindow, toolbar buttons, menu buttons, layer, clicommand etc.
- Added many dialog widget GUI classes, which allow the user to form his own gui widget for the user using a plugin.
- Lua GUI API Documentation added to the wiki.
Unit Tests
- Updated unit tests for the widgets like layers, clicommand, toolbar and mainwindow unit tests.
- Added Lua GUI API unit tests
Operation Loading
Loading of operation and generation and connection of the correct buttons, menu items, cli commands, context operations etc happen automatically by using the properties specified in the beginning of each lua operation file, making it easier to add new lua files without needing to change code elsewhere
Customize Toolbar Widget
- Ability to customize and order the toolbar buttons in the user’s desired order
- Order can be saved and loaded by the user (saved in json format)
- Added ui settings json file which stores ui settings and is validated by a schema on loading.
Property Editor
- Property editor added which allows the user to change the properties of the created entities, the change in properties updates the entity with new properties instantaneously.
- Uses the input gui widgets developed earlier in the lua gui api.
- Also contains meta info and layer properties.
Context Menu
Librecad
- Context menu can be opened by right clicking, it has three states, active,inactive and selected.
- Can easily access create and modify tools using the context menu
- Contains undo, last command, copy, paste etc.
- Allows transition between different methods while creating an entity.
Other
- Copying and pasting of entities among different librecadv3 windows.
- Few missing arc operations implemented.
- Added text operations lua file and a text dialog which allows adding more customized text with different style and font.
What I’ve learned
GSoC at librecad has been a great learning experience for me and I had a lot of fun working on the project. Some of the things I’ve learned
- Gained confidence in writing C++ object oriented code, as well learned the importance of writing comments and readable code.
- Learnt lua while preparing and working on my gsoc project.
- Learnt how to work with tools like CMake, which I was initially intimidated by but am now fairly comfortable with.
- Learnt the importance of approaching problems properly, like how florian pointed out that using the visitor design pattern in a certain problem was better than the approach I was going for.
- Gained confidence in using git and github, learning how to work with branches, squash commits, merge etc.
- Learnt how to use the Qt framework and about qt’s signal and slots system, model/view programming etc.
- Importance of discussing the task and problem, instead of diving head first into implementing it, and to also take into account the user’s perspective.
- Learned how to properly debug and track down problems.
I was lucky to have great mentors to help guide me through the summer, Florian has been extremely helpful and responsive from the very start when I started contributing at the end of December. Armin too has been very helpful and made the setting up of the required accounts for wiki and the blog a breeze.
Thanks for taking the time to read my final report, I’d again like to thank everyone involved for their help and advice. GSoC was a great experience and has helped me gain confidence to continue contributing to LibreCAD and other open source organizations in the future.
Akhil Nair
Developer(s) | LibreCAD community |
---|---|
Initial release | 15 December 2011; 9 years ago |
Stable release | |
Preview release | 2.2.0 Release Candidate 2 / December 31, 2020; 3 months ago[1] |
Repository | |
Written in | C++ |
Operating system | Windows, macOS, Unix-like |
Type | Computer-aided design |
License | GPLv2 |
Website | librecad.org |
LibreCAD is a freecomputer-aided design (CAD) application for 2D design. It works on Linux, macOS, Unix and Windows operating systems.[2][3]
LibreCAD was developed as a fork of QCAD Community Edition. The GUI of LibreCAD is based on Qt5 libraries, so it runs on several platforms in the same way.[4][5]
Most of the interface and handle concepts are analogous to AutoCAD, making it easier to use for users with experience of this type of commercial CAD application.
LibreCAD uses the AutoCAD DXF file format internally for import and save files, as well as allowing export to many other file formats.
GPLv3 vs GPLv2 controversy[edit]
The GNU LibreDWG library is released under GPLv3, so it cannot be used by GPLv2-licensed LibreCAD (and FreeCAD)[6][7] because their licenses are incompatible.[8] A request also went to the FSF to relicense GNU LibreDWG as GPLv2, which was rejected.[9] This controversy has been resolved by writing a new GPLv2-licensed library called libdxfrw,[10] with more complete DWG support.
References[edit]
- ^'Releases · LibreCAD/LibreCAD'. Retrieved 7 January 2021 – via GitHub.
- ^'LibreCAD the only major free Computer Aided Design program'. Retrieved 20 January 2013.CS1 maint: discouraged parameter (link)
- ^Dube, Ryan. '6 Tips To Get The Most Out of LibreCAD Free CAD Software'. Retrieved 20 January 2013.CS1 maint: discouraged parameter (link)
- ^Wallen, Jack. 'DIY: LibreCAD offers basic CAD tools for free'. Retrieved 20 January 2013.CS1 maint: discouraged parameter (link)
- ^'Review about Linux LibreCAD and Linux Inkscape'. Archived from the original on 20 November 2012. Retrieved 20 January 2013.CS1 maint: discouraged parameter (link)
- ^Prokoudine, Alexandre (26 January 2012). 'What's up with DWG adoption in free software?'. libregraphicsworld.org. Archived from the original on 9 November 2016. Retrieved 3 November 2013.
[Assimp's Alexander Gessler:] 'Personally, I'm extremely unhappy with their [LibreDWG's — LGW] GPL licensing. It prohibits its use in Assimp and for many other applications as well. I don't like dogmatic ideologies, and freeing software by force (as GPL/GNU does) is something I dislike in particular. It's fine for applications, because it doesn't hurt at this point, but, in my opinion, not for libraries that are designed to be used as freely as possible.' [Blender's Toni Roosendaal:] 'Blender is also still 'GPLv2 or later'. For the time being we stick to that, moving to GPL 3 has no evident benefits I know of. My advice for LibreDWG: if you make a library, choosing a widely compatible license (MIT, BSD, or LGPL) is a very positive choice.'
CS1 maint: discouraged parameter (link) - ^Larabel, Michael (2013-01-24). 'FSF Wastes Away Another 'High Priority' Project'. Phoronix. Archived from the original on 2016-11-09. Retrieved 2013-08-22.
Both LibreCAD and FreeCAD both want to use LibreDWG and have patches available for supporting the DWG file format library, but can't integrate them. The programs have dependencies on the popular GPLv2 license while the Free Software Foundation will only let LibreDWG be licensed for GPLv3 use, not GPLv2.
CS1 maint: discouraged parameter (link) - ^'Frequently Asked Questions about the GNU Licenses – Is GPLv3 compatible with GPLv2?'. The official site. Retrieved 13 April 2011.CS1 maint: discouraged parameter (link)
- ^Prokoudine, Alexandre (2012-12-27). 'LibreDWG drama: the end or the new beginning?'. libregraphicsworld.org. Archived from the original on 2016-11-09. Retrieved 2013-08-23.
[...]the unfortunate situation with support for DWG files in free CAD software via LibreDWG. We feel, by now it ought to be closed. We have the final answer from FSF. [...] 'We are not going to change the license.'
CS1 maint: discouraged parameter (link) - ^libdxfrw on sourceforge.net
External links[edit]
Wikimedia Commons has media related to LibreCAD. |
Librecad Vs Freecad
- Official website
- LibreCAD on GitHub
- LibreCAD on SourceForge.net