Monday 31 March 2014

Testing the Drawing Module: Part 1

After initial round of testing, we discovered a re-occurring crash when you tried to open a newly created page. The result of last nights work this is now fixed. For those unfamiliar, in the FreeCAD_sf_master directory run 'git pull'.

If you have any comments after testing the drawing module, please also consult this forum topic

-------------------------------------------------------

I haven't managed to do much recently. Work has snowballed and I've been having to work on a binary file converter for an Additive Manufacturing Machine. The experience from that I can imagine may be quite useful for writing and parsing other file formats if we ever need to in FreeCAD. I never would have thought I would read binary numbers as an engineer...

It appears there is a demand for testing the Drawing Module. It's in the stage where I any testing would be quite helpful, mainly to get feedback on the user interface and push this into the master for testing. I am aware there are some deficiencies both in missing features and bugs, but I need some motivation to finish up the GUI to make it more user friendly. Input on this would be helpful. In particular GUI mocks - hand drawings on tissue paper are accepted!

Note: Windows testers would be helpful!

 The idea of this post is to give a brief overview building FreeCAD to test out the Drawing Module.
mkdir test && cd test

The run "git clone http:://repositoryaddress" like the below to clone my Github repository into your testing directory.
git clone https://github.com/mrlukeparry/FreeCAD_sf_master.git

It should look like below. Cloning FreeCAD shouldn't take too long (it's about a 70mb download).


Ensure you have the prerequisites for compiling and building FreeCAD - consult either the wiki
or if you are really ensure ask on the forums. 

You now need to checkout out the drawing branch 
cd FreeCAD_sf_master && git checkout origin/drawing

You should now be on the drawing branch in a detached state. 


Now we create a build directory outside of the source directory and then we configure using CMake

You now need to checkout out the drawing branch 
cd ../ && mkdir build && cd build

Now we build using CMake. The options that you pass may depend on your platform or distribution. If you have problems please consult the forums. Configure the build using debug options for testing:
cmake - DCMAKE_BUILD_TYPE=Debug ../FreeCAD_sf_master


Eventually you should be configured and ready to build. All you then have to do is run make. To build faster, the option 'j' is the number of make jobs to run in parallel - set this to CPU cores + 1
make -j 7
The build procedure can take between 10-30 minutes depending on your computer specification. An SSD helps considerably more so than memory. Once built you can easily test FreeCAD without having to make an installation. 

In the build directory you can simply run FreeCAD
./bin/FreeCAD

To use the Drawing Module change the workbench once you have a part.

Part 2 to follow! 

I think I will try and record a screen-cast for the next guide.

7 comments:

  1. Hello Luke,
    I'm intersted in FreeCad and willing to help. So, after 2 days with a "standard" distribution (Linux Mageia 3 / 32 bits), I tried to build the testing version version but failed at the last step (the make, with no option). Any idea :

    In file included from /usr/include/Inventor/actions/SoAction.h:27:0,
    from /home/testF/freecad_test/FreeCAD_sf_master/src/3rdParty/Pivy-0.5/coin_header_includes.h:1,
    from /home/testF/freecad_test/FreeCAD_sf_master/src/3rdParty/Pivy-0.5/coin_wrap.cpp:3930:
    /usr/include/Inventor/SbBasic.h: In instantiation of ‘void SbDividerChk(const char*, Type) [with Type = float]’:
    /usr/include/Inventor/SbVec3f.h:78:81: required from here
    /usr/include/Inventor/SbBasic.h:99:5: erreur: ‘cc_debugerror_post’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
    In file included from /usr/include/Inventor/errors/SoDebugError.h:28:0,
    from /usr/include/Inventor/SbVec3f.h:31,
    from /usr/include/Inventor/SbColor.h:28,
    from /usr/include/Inventor/elements/SoLazyElement.h:29,
    from /usr/include/Inventor/nodes/SoLightModel.h:29,
    from /usr/include/Inventor/actions/SoCallbackAction.h:35,
    from /usr/include/Inventor/actions/SoActions.h:27,
    from /home/testF/freecad_test/FreeCAD_sf_master/src/3rdParty/Pivy-0.5/coin_header_includes.h:2,
    from /home/testF/freecad_test/FreeCAD_sf_master/src/3rdParty/Pivy-0.5/coin_wrap.cpp:3930:
    /usr/include/Inventor/C/errors/debugerror.h:59:19: note: ‘void cc_debugerror_post(const char*, const char*, ...)’ declared here, later in the translation unit
    ....
    In file included from /usr/include/Inventor/errors/SoDebugError.h:28:0,
    from /usr/include/Inventor/SbVec3f.h:31,
    from /usr/include/Inventor/SbColor.h:28,
    from /usr/include/Inventor/elements/SoLazyElement.h:29,
    from /usr/include/Inventor/nodes/SoLightModel.h:29,
    from /usr/include/Inventor/actions/SoCallbackAction.h:35,
    from /usr/include/Inventor/actions/SoActions.h:27,
    from /home/testF/freecad_test/FreeCAD_sf_master/src/3rdParty/Pivy-0.5/coin_header_includes.h:2,
    from /home/testF/freecad_test/FreeCAD_sf_master/src/3rdParty/Pivy-0.5/coin_wrap.cpp:3930:
    /usr/include/Inventor/C/errors/debugerror.h:59:19: note: ‘void cc_debugerror_post(const char*, const char*, ...)’ declared here, later in the translation unit
    make[2]: *** [src/3rdParty/Pivy-0.5/CMakeFiles/coin.dir/coin_wrap.cpp.o] Erreur 1
    make[1]: *** [src/3rdParty/Pivy-0.5/CMakeFiles/coin.dir/all] Erreur 2
    make: *** [all] Erreur 2

    ReplyDelete
  2. Hi Paul,

    Hmm, we haven't come across many people using Mageia. It's an unusual error where it's related to another library. Can you please post this on the forThis might be related to change to a new piums and we can try and investigate this.

    http://www.forum.freecadweb.org/viewforum.php?f=4

    And hopefully we can find a solution!

    Cheers,
    Luke

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Hi,

    sorry i had big problems with the text in the two messages I tried to send, so I deleted them. The proper characters wont print in the message so it's quite unusefull

    I'm using mageia 4 / 64 bits and had the same problem with /usr/include/Inventor/SbBasic.h

    I had to modify it by adding the line "#include Inventor/C/errors/debugerror.h" after the line "#include Inventor/C/basic.h"

    remember to put the right "arrows" characters (greater than & smaller than) in the include instruction I couln't put them here cause they delete the words inside if I trie to write them ...

    Hope it will help

    Alain

    ReplyDelete
  6. Bonjour Alain,

    Thanks a lot : I was the key to success (compile and run).
    How to make this modification included in the SbBasic.h ?

    ReplyDelete
  7. Bonjour ! are you french ?

    I think we should declare a bug in Mageia Bugzilla, but it depends on open-Inventor and perhaps it's just a problem with the release used in Mageia, sometimes I just make a new rpm with the latest release and my problem disappear so for the time I just do the modifications on my computer because it's for testing. Maybe it will cause some problems else where if we make it permanent in the distro, perhaps the problem is in some macros of the compiler, I don't know really why the headers are not correctly found...

    ReplyDelete