YORIK’S COFFEE CORNER

You are currently viewing a single post of this guestblog.

Click here to go back the complete page. I would be glad to hear your comments, so don’t hesitate to leave me your feedback below. It will appear on the main guestblog page.


in categories  linux  opensource  permalink:  65   posted on 09.07.2014 23:21
From Yorik

Invert the colors of qcad3 icons




QCad is an open-source 2D CAD program I've already been kind of fond of. It runs on Windows, Mac and Linux, its version 2 has been the base of LibreCAD, and version 3, which is a couple of months old already, is a huge evolution after version 2. Their developers have always struggled between the open-source and closed source worlds, trying to turn QCad into a business, and at the same time keeping the code open. This is a very hard and subtle fight, and their commitment to open-source is really impressive. They basically make the code available on github, and also sell a Pro version (which costs around 30 euro and has dwg support).

There are only very small annoyances that make me still stick to draftsight, basically the not very customizable dimension styles, and thing of the same level, but most tools in this new version 3 being written in javascript, they are quite easy to tweak, I'll certainly have a look at it at some point.

One small issue that I already found an easy way to solve is this: All icons are drawn in black, which, on my white-on-black desktop theme, made them almost invisible and qcad therefore almost unusable. I then wrote this little script, that crawls through the qcad source code, opens all the svg files it finds, and changes black color with white:

#!/usr/bin/python

import os

def processdir(path):
    print "entering " + path
    for entry in os.listdir(path):
        if os.path.isdir(path + os.sep + entry):
            processdir(path + os.sep + entry)
        elif entry[-4:] == ".svg":
            print "    processing " + path + os.sep + entry
            f = open(path + os.sep + entry)
            b = f.read()
            f.close()
            b = b.replace( 'stroke="#000"','stroke="#fff"' )
            b = b.replace( '#000000;','#ffffff;' )
            f = open( path + os.sep + entry,'wb' )
            f.write(b)
            f.close()

processdir(os.getcwd())


To use it, simply paste the above code in a file, save it inside the qcad source folder, make it executable, and run it from there. Not sure if this will work out-of-the-box on Windows, but I believe it should.

First and foremost, your name:

And your message:

To publish it, just press this ...