<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Biosystems Engineering Blog (Posts about foss)</title><link>https://kwk.systems/blog/</link><description></description><atom:link href="https://kwk.systems/blog/categories/foss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2024 &lt;a href="mailto:info@kwk.systems"&gt;Kurt Kremitzki&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Thu, 16 May 2024 22:41:32 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Getting Started with FreeCAD Development in Ubuntu 16.04</title><link>https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/</link><dc:creator>Kurt Kremitzki</dc:creator><description>&lt;p&gt;&lt;a class="reference external" href="http://www.freecadweb.org/"&gt;FreeCAD&lt;/a&gt; is a multi-platform (Windows, Mac, Linux) open source parametric 3D CAD modeler, and can read
and write many open file formats.&lt;/p&gt;
&lt;p&gt;An explanation of the many virtues of open source software can be found at &lt;a class="reference external" href="http://opensourceforamerica.org/learn-more/benefits-of-open-source-software/"&gt;Open Source for America&lt;/a&gt; and elsewhere. To quote OSFA,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Open Source model harnesses the power of distributed peer review and transparency to create high-quality, secure
and easily integrated software at an accelerated pace and lower cost.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commerical-grade CAD software, while incredibly useful, has several downsides including being locked behind 4 or 5 digit licensing costs,
and its use in amateur projects or the developing world is often facilitated by piracy. FreeCAD, on the other hand, is free as in beer
and free as in freedom, although it is currently under development. However, one of the benefits of the open source model is the ease
with which interested people can contribute to the project and make better tools for all mankind.&lt;/p&gt;
&lt;p&gt;While using FreeCAD, I noticed a few typos in the menus; although my first contribution to the project wasn't too significant, I
documented the process of getting a development environment set up on my Ubuntu 16.04 desktop so that others could follow the same
steps and begin contributing.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Pull down a copy of the code. (If you don't have a copy of git, run &lt;code class="docutils literal"&gt;sudo &lt;span class="pre"&gt;apt-get&lt;/span&gt; install git&lt;/code&gt;.)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_9e77b76550284b1c97fb75241a601ef0-1" name="rest_code_9e77b76550284b1c97fb75241a601ef0-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_9e77b76550284b1c97fb75241a601ef0-1"&gt;&lt;/a&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://github.com/FreeCAD/FreeCAD.git&lt;span class="w"&gt; &lt;/span&gt;freecad-code
&lt;a id="rest_code_9e77b76550284b1c97fb75241a601ef0-2" name="rest_code_9e77b76550284b1c97fb75241a601ef0-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_9e77b76550284b1c97fb75241a601ef0-2"&gt;&lt;/a&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;freecad-build
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="2"&gt;
&lt;li&gt;&lt;p&gt;Install all dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-1" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-1"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;build-essential&lt;span class="w"&gt; &lt;/span&gt;cmake&lt;span class="w"&gt; &lt;/span&gt;python&lt;span class="w"&gt; &lt;/span&gt;python-matplotlib&lt;span class="w"&gt; &lt;/span&gt;libtool&lt;span class="w"&gt; &lt;/span&gt;libcoin80-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-2" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libsoqt4-dev&lt;span class="w"&gt; &lt;/span&gt;libxerces-c-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-filesystem-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-regex-dev&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-3" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-3" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libboost-program-options-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-signals-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-thread-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-python-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-4" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-4" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libqt4-dev&lt;span class="w"&gt; &lt;/span&gt;libqt4-opengl-dev&lt;span class="w"&gt; &lt;/span&gt;qt4-dev-tools&lt;span class="w"&gt; &lt;/span&gt;python-dev&lt;span class="w"&gt; &lt;/span&gt;python-pyside&lt;span class="w"&gt; &lt;/span&gt;pyside-tools&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'liboce*-dev'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-5" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-5" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;oce-draw&lt;span class="w"&gt; &lt;/span&gt;libeigen3-dev&lt;span class="w"&gt; &lt;/span&gt;libqtwebkit-dev&lt;span class="w"&gt; &lt;/span&gt;libshiboken-dev&lt;span class="w"&gt; &lt;/span&gt;libpyside-dev&lt;span class="w"&gt; &lt;/span&gt;libode-dev&lt;span class="w"&gt; &lt;/span&gt;swig&lt;span class="w"&gt; &lt;/span&gt;libzipios++-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-6" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-6" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libfreetype6&lt;span class="w"&gt; &lt;/span&gt;libfreetype6-dev
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-7" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-7" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-8" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-8" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-8"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# Install optional packages&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-9" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-9" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-9"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libsimage-dev&lt;span class="w"&gt; &lt;/span&gt;checkinstall&lt;span class="w"&gt; &lt;/span&gt;python-pivy&lt;span class="w"&gt; &lt;/span&gt;python-qt4&lt;span class="w"&gt; &lt;/span&gt;doxygen&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-10" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-10" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libcoin80-doc&lt;span class="w"&gt; &lt;/span&gt;libspnav-dev
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="3"&gt;
&lt;li&gt;&lt;p&gt;Move into build folder, make and compile the software. Use the &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;-j&lt;/span&gt; $(nproc)&lt;/code&gt; flag to use all N of your CPU cores
when compiling; some recommend using N + 1 CPU cores, which can be done by instead running &lt;code class="docutils literal"&gt;make &lt;span class="pre"&gt;-j$((&lt;/span&gt; $(nproc) + 1 )) .&lt;/code&gt;.
Don't forget the period at the end of the &lt;code class="docutils literal"&gt;make&lt;/code&gt; command, which tells it to put the compiled software in the current
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;freecad-build&lt;/span&gt;&lt;/code&gt; directory; it's good to keep the source code and build directories separate.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-1" name="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-1"&gt;&lt;/a&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;freecad-build
&lt;a id="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-2" name="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-2"&gt;&lt;/a&gt;cmake&lt;span class="w"&gt; &lt;/span&gt;../freecad-code
&lt;a id="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-3" name="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-3" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-3"&gt;&lt;/a&gt;make&lt;span class="w"&gt; &lt;/span&gt;-j&lt;span class="k"&gt;$(&lt;/span&gt;nproc&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="4"&gt;
&lt;li&gt;&lt;p&gt;Fix Ubuntu 64-bit issue. If you are using a 64-bit version of Ubuntu (hopefully), you may run in to the following
error message, which occurs because the expected &lt;code class="docutils literal"&gt;libfreeimage.so&lt;/code&gt; file was moved into a subdirectory of &lt;code class="docutils literal"&gt;/usr/lib/&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-1" name="rest_code_7792f552646046f9b01df1029a5de13a-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-1"&gt;&lt;/a&gt;make&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;***&lt;span class="w"&gt; &lt;/span&gt;No&lt;span class="w"&gt; &lt;/span&gt;rule&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;target&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'/usr/lib/libfreeimage.so'&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;needed&lt;span class="w"&gt; &lt;/span&gt;by&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'lib/libSMDS.so'&lt;/span&gt;.&lt;span class="w"&gt;  &lt;/span&gt;Stop.
&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-2" name="rest_code_7792f552646046f9b01df1029a5de13a-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-3" name="rest_code_7792f552646046f9b01df1029a5de13a-3" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-3"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# Fix with this line.&lt;/span&gt;
&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-4" name="rest_code_7792f552646046f9b01df1029a5de13a-4" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-4"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;ln&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;/usr/lib/x86_64-linux-gnu/libfreeimage.so&lt;span class="w"&gt; &lt;/span&gt;/usr/lib
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once the build is complete, a runnable copy of the FreeCAD executable will be in the &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;freecad-build&lt;/span&gt;&lt;/code&gt; folder. Any changes
made to the source code can be tested after re-compiling the executable.&lt;/p&gt;
&lt;p&gt;Hopefully this post helps someone out there! Even if you are only contributing to the documentation as you learn FreeCAD,
your contribution is valuable and can help tons of people across the globe.&lt;/p&gt;</description><category>foss</category><category>freecad</category><category>linux</category><guid>https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/</guid><pubDate>Sun, 05 Jun 2016 11:17:51 GMT</pubDate></item></channel></rss>