Read about working of OpenGL Vertex Buffers and usage of some new functions like glPushMatrix and glPopMatrix and implemented the conversion of the device to user coordinates and vice versa.
Got stuck with the rendering of the new painter due to some issues with the pointers but was finally able to resolve them with the help of my mentors. Also used QOpenGLWidget in place of QWidget for the rendering and read its documentation.
Add new functions to the new painter such as creating lines, rectangles, etc using Vertex buffer objects. Also added many similar functions like clear, fill color with arguments as RGB codes.
Learned few things about QOpenGLWidget and replaced it with QWidget at few places in order to create an OpenGL window. Removed the previous function to create painter and added files for new painter and make use of its members to create a window.
Removing the part of the grid that was earlier rendered through Cairo but now it is done with the new painter. Now the grid will be rendered using the new painter and rest all things are same. Changes made are mostly in grid.cpp file and the functions related to the previous painter is removed.
Completing the task of the grid for the new painter. The grid is rendered through OpenGL and lines are formed using ‘vertex buffer objects’ and then glDrawArrays(GL_LINES, 0, 2) will draw them on the painter.
With the end of the Community Bonding period, the official coding period has begun. During the Community Bonding period, I interacted with my mentors and did some research for my projects i.e. LibreCAD 3 OpenGL Rendering. With help from them, I was able to build the LibreCAD 3 and run it. I went through the code base and had a reading of the module ‘lcviewernoqt’ inside LibreCAD 3 which is directly involved with my project.
Also along with these readings, I went through some research papers and articles for the formation of different types of lines i.e. different dashed lines/strokes formed using OpenGL libraries that is to be used in the formation of the grid in the painter and other shapes such as lines, circles, etc.
During the first week of the coding period, I would be working on the formation of the grid inside the painter, creating lines using Vertex Buffers and working of the scrollbar. Also, it would involve the extraction of the coordinates of the mouse pointer.
Yesterday Google announced the 1,264 students from 64 countries, who have been accepted to work with 206+ open source projects for Google Summer of Code 2018!
Congratulations to all of them!
We are happy to welcome Parth Partani to become a member of our team. He was accepted with his proposal about LibreCAD 3 OpenGL rendering and will spend his summer with coding for LibreCAD. Florian and I will mentor Parth to make this GSoC participation a success for all again.
We expect an exciting time working with Parth and hope to have also a lot of fun together.
Many thanks to our friends at BRL-CAD too, who again take us under their umbrella, with several other CAx related organizations. Beside mentoring a couple of students for themselves they also have to administer the 9 students with their mentors from 4 organizations this year.
Good luck for Parth, our friends students from BRL-CAD, FreeCAD and slic3r and all the other GSoC participants!
The LibreCAD Team
LibreCAD is again on course for a Summer of Code with Google in 2018.
The first step is done, our umbrella organization BRL-CAD is again selected for mentoring students in GSoC 2018 and so we are too.
Now its up to eligible students to take the challenge and get in contact with us to prepare a great proposal, so we can get at least one of the treasured slots.
More information is available on our wiki page GSoC Check List and the Google site linked above.
The LibreCAD Team
There were more than 250 commits since 2.2.0-alpha, thus it was overdue to get rid of the alpha in the tag now.
With some more improvements in the last couple weeks, we switch directly to Release Candidate as the response from community is, that the master branch is stable.
There are only some minor changes in the line before the final 2.2.0 release.
Punctual with the release of 2.2.0-rc1 SourceForge’s file upload is down because they moved to a new datacenter this week. They work hard on it.
When the upload is available again, we will supply the new installer there.
Source code and a Windows installer is available on GitHub already: LibreCAD-Installer-2.2.0-rc1.exe
It has been 8 months since 2.0.7, and LibreCAD v2 has become better.
Exciting New Features:
1. DWG read support! Big thanks to our CAD expert @Rallaz ;
2. SVG export support! Salute to @dinkel ;
3. Arabic Language GUI support. More work is needed for:
* Right-to-left support for Text entities;
* Arabic fonts for Text.
4. More user configurable settings in App Preferences.
Under the hood, there’s lots of cleanup and coding style tweaking towards C++11, and the code base should be cleaner for new developers.
There is also lots of GUI and user experience tweaking, mostly following user requests. Clearly, LibreCAD needs help from more developers with the large volume of feature requests and bug reports from our user community.
A list of all commits since 2.0.7 can be found at 2.0.8 Forum Announcement
Feel free to join the development, if you are interested in C++/Qt.
The LibreCAD Team
I thought we should make a little update on what we are doing.
After months of development, LibreCAD v2 is ready for a 2.0.8 release in next days, while our developers are still busy to get version 2.1.0 ready.
What’s new in LibreCAD 2.1.0 are some new GUI interface and most notably fixes for icons on HD displays like Macbook retina, in addition to all fixes and enhancement found in 2.0.8. This is a lot of work and we are still with limited resources! (Software developers, see this as a call for help!) We are still working on the 2.1.0 release but with a little luck this should happen soon, within weeks if we are lucky.
The crashes in our build server was properly caused by a overheating mac mini and we are working on getting that replaced by a new mini for our automated builds. For the moment we do build OS/X by hand but the windows build’s are now automated using a proper build server. All thank’s to everybody that has been supporting LibreCAD financially and with kind words and help.
LibreCAD 3 is at the moment on hold but I will call out for help later this year once we are ready again to work on it. We need strong c++ developers with at least some knowledge of c++11 and people that can design and work with API’s. LibreCAD 3 is a lot about being able to integrate into other applications and to build stand-alone tools around the libraries. While LibreCAD v2 is more of a monolith, LibreCAD v3 will be divided into a set of libraries. For sure we will build a UI around it, but we will also have the option to make a scriptable version of it’s core engine. One of our development goal is to design a 2D engine to be used in 3D CAD, such as FreeCAD and BRL-CAD. Another interesting development is Web based LibreCAD by addition of an HTML5 canvas drawing engine. With an ambitious development plan, we are calling for developers interested in 2D CAD, computational geometry, C++, experienced with API designing and being not shy of a bit of refactoring a code base once a while.
As always, many thank’s for your support and we are looking forward for information, idea’s and just a ‘thanks!’ on our #librecad IRC channel at freenode.
LibreCAD is participating again in GSoC 2015. That doesn’t mean we are selected yet! This week is what Oscars is for Open Source projects, the selections for participation in GSoC 2015. We hope we can participate again because last year we had a great time!
I will update after second of march and let you know if if we got any slot’s this year.
LibreCAD 2.0.7 missed the Christmas party and new year eve, but only by days.
First, major fixes: a serious command line regression since 2.0.6: keyboard Enter/Esc support, command line widget in a second screen, etc. Also fixed are some crashes for tangential circle drawing and polyline addition.
OSX user’s unfortunately need to use macports to install LibreCAD. We are still short on OSX developers and we cannot seem to get the installed and it’s functionalities stable. We are terribly sorry about that. However, once you installed macports you can installed LibreCAD using
sudo port install librecad
Any brew user’s/dev’s reading this? We would love to also support brew and would highly appreciate if somebody can help us out with brew.
LibreCAD 2.0.7 got a boost on LFF font support with kindly help from:
- Petr on Czech fonts in unicode.lff
- stranger573 on OpenGost
- AZO on Japanese fonts kst32b.lff
As a new command line feature introduced in 2.0.7, the command line can be used as a calculator by typing math expression after command “cal”. For example command “cal 1+1” to get output “2”
There are many fixes and enhancement, and please refer the git logs for more details.
Armin Stebich (11):
- updated Qt version to 5.3.2 for Windows build in README.md
- .gitignore clean up, ignore all custom *.* files
- improvement of Windows build scripts, pass SCMREVISION to NSIS installer
- build-win-setup.bat: allow setting custom NSIS file to match local Qt version
- fixed sf.net bug #481, disappearing offset line when zooming
- fixed st.net bug #482, misaligned arc option widget on windows
- fixed Splash Screen GroupBox size in Application Preferences, was malformed on Windows
- fixed warning in qg_dlgoptionsgeneral.ui
- fixed broken HTML tag in doc/index.html
- applied patch #460, i18n for desktop file by glixx
- fixed github issue #464, switch tab-/sub-window mode with single document
Dongxu Li (67):
- updated SCM version to 2.0.7
- selectWindow: no need to set pen for preview
- osx use bz2 compressed DMG
- circle tan1_2p: avoid duplicated centers
- circle: tan2_1p, fixed a crash by right clicking
- trim: polyline not by ::trim()
- bug#480: fixed crash due to new spline addition
- tan1_2p: improved geometrical algorithm
- bug#481, fixed nearest point on line
- tan1_2p: code correctness
- Appollonius: fixed a regress, show candidate centers
- appollonius: fixed algorithm to get all possible solutions
- ignore certain compound entities when catching
- file cleanup
- trim: cleanup
- fixed enter command, select toolbar regression
- tan2/radius: file cleanup
- tangent circles: GUI cleanup
- commands: added divide and fillet
- divide: file cleanup
- unified getDistanceToPoint(): experimental
- Czech fonts in unicode.lff, by Petr
- add GUI actions by new helper functions Squashed commit of the following:
- updated help item
- actionPolyline: show options according to mode
- added c++11 to CONFIG
- muparser: c++11 compiler warnings
- polyline: added icons for arc direction
- opengost fonts by stranger573
- fixed opengost fonts: license, encoding
- opengost fonts: fixed encoding
- opengost: added blank line at file end
- README: fixed a typo
- unicode: fix by Petr
- bug#485, allow snap to center within an image
- fixed a filled arrow brush bug
- splinepoints: restore painter pen
- line patterns: cleanup
- line pattern: use static constants
- bug#454, commit e1db360d was lost
- added offset to Modify menu
- commands: avoid short command ambiguity
- command: more short command cleanup
- removed c++0x from CFLAGS
- lineType: added tiny line types
- ascii: allow reading in raw 2D data without point number column
- export pdf: append .pdf file extension by default
- command: added cli calculator by cal/calculate
- fixed a compiler warning
- key events: avoid filtering of Enter/Escape
- allow Enter/Return for command Continue
- updated opengost fonts by stranger573
- issue #469 : fixed regression on shortcuts
- Updated KST32B Japanese fonts
- fixed a typo in KST32B fonts
- Added CAD toolbar to main menu View
- custom paper size: troubleshooting
- win32: updated to Qt-5.4.0
- Use Qt arch paper sizes
- added printpreview to file toolbar
- fixed a qt4 building error by papersize
- bug#491, update leader arrow size by drawing options
- fixed a rvalue reference compiling issue
- disabled command widget event filter
- bug#492, dimension extension fixes
- unicode.lff: typo
- fixed menu item: offset
We are pleased to announce the release of LibreCAD 2.0.5.
Windows and OS/X Mavericks(10.9) installers can be found:
OS/X Mavericks: http://sourceforge.net/projects/librecad/files/OSX/2.0.5/LibreCAD-2.0.5-Mavericks.dmg/download
In this 2.0.5 release, we added or changed since 2.0.4:
1, interpolation spline， Draw->Spline->Spline Points (designed by Pavel Krejcir);
2, File -> Export as PDF
3, Korean language support;
4, smooth scrolling/zooming (designed by Oskar Linde);
5, allow user to hide splash at loading;
6, gcc-4.10 support;
7, Work-in-progress, finding enclosed area within a contour;
8, added appdata.xml;
9, “Modify->Round” renamed to “Modify->Fillet”
10, command line aliases can be made for both regular commands and short commands.
We also fixed many bugs since the 2.0.4 release.
The LibreCAD Team