LibreCAD v3
Development.
GSoC 2014, I got chance to work for a pure CAD software. The LibreCAD. LibreCAD had a plan for a version 3 and the creator of LibreCAD had some code which he created 2 years ago for the V3 development. I begun working on the code. My first priority was to develop, polish and enhance the 2D kernel.
Looking towards the LibreCAD, the Code is kept pretty modularized so that the user can have choice. For example the LCviewerNoQt contains the code for rendering the drawings on the screen. At the moment the functionality is moved from Qt to Cairo but in future, the user may have an option to choose between Qt, Cairo or may be OpenGL too. This modularity is also designed keeping in mind the extensibility and usability of code. The LCKernel is a robust 2D kernel being developed at the moment. So it can be used in any other software which may require such functionalities ( transformations, Intersections etc). LibreCADv3 currently uses Lua as its scripting language, which is pretty finalized. The modularity code allows the developers to add their favorite scripting languages, may be python, ruby or any preferred. The design principles of the LibreCAD v3 include the immutable concept. Every entity in the kernel is assigned with an ID at the time of creation. Whenever a transformation is to be processed on entity such as a move or rotate operation, the new data ( Coordinates, Radius, start/end angles ) etc are calculated and a new entity is created at the Coordinates calculated with the same ID and the older entity object is deleted.
LibreCAD v3 at the moment has
- The Move, Copy, Rotate and Scale operations for all the entities.
- Point, Line, Circle, Ellipse, Text, MText, Dimensions, Spline ( Kernel part only )
- Intersection pattern
- Robust equation solvers for quadratic, Cubic as well as Quartic equations.
While coding with the LibreCAD V3, I shared it with a group of my friends and the played a bit with the Lua scripting and designed marvelous designs.
https://gurpindersingh751.wordpress.com/2014/06/10/10-june-2014/
Get gaganjyot’s stories in your inbox
Join Medium for free to get updates from this writer.
https://gurpindersingh751.wordpress.com/2014/06/08/8-june-2014/
https://navdeepsaini48.wordpress.com/2014/06/08/taijitu-code-for-libre-cadv3/
http://jagmeet787.wordpress.com/2014/06/08/8-june-2014/
http://jagmeet787.wordpress.com/2014/06/07/7-june-2014/






