https://wiki.freecad.org/api.php?action=feedcontributions&user=Sgrogan&feedformat=atomFreeCAD Documentation - User contributions [en]2024-03-28T20:10:08ZUser contributionsMediaWiki 1.40.1https://wiki.freecad.org/index.php?title=Download&diff=558268Download2019-12-08T13:38:21Z<p>Sgrogan: point the development link to 0.19_pre</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD is still in development, and has not reached version 1.0 status in our view. It might not be ready for production use, but many people already use it professionally. To find out if FreeCAD is appropriate for your project, please visit the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current stable version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.18 release of FreeCAD (16093) was published on 2019-03-12. The latest bug fix release '''0.18.4 (16146)''' was published on 2019-10-26. To find out what's new, see the [[Release notes 0.18|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums to verify the integrity of your download on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.4 0.18.4 release page].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
| align=center | [[Image:Windows.png]]<br />
<br />
Windows<br />
<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD-0.18.4.980bf90-WIN-x32-installer.exe 32-bit] |<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD-0.18.4.980bf90-WIN-x64-installer.exe 64-bit]<br />
|<br />
| align=center | [[Image:Mac.png]]<br />
<br />
Mac<br />
<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD_0.18-16146-OSX-x86_64-conda-Qt5-Py3.dmg Mac OS X] <small>64-bit</small><br />
|<br />
| align=center | [[Image:AppImage-logo.png]]<br />
<br />
Linux<br />
<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD_0.18-16146-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage AppImage] <small>64-bit</small><br />
|}<br />
<translate><br />
<br />
=== Notes for Windows users === <!--T:5--><br />
<br />
* The 32-bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
* A portable version (64-bit) that doesn't need installation is in the release page.<br />
<br />
=== Notes for Mac OS X users === <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
=== Notes for GNU/Linux users === <!--T:6--><br />
<br />
<!--T:51--><br />
Most distributions carry FreeCAD in their official repositories, however, if the distribution doesn't follow a rolling release model the version they provide might be outdated. Instead you can download the AppImage above, mark it as executable and launch it without installation.<br />
<br />
<!--T:54--><br />
Please see the [[Compile_on_Linux/Unix|Install on Unix]] page for more installation options, including daily packages for Ubuntu and derivatives.<br />
<br />
== Development versions == <!--T:4--><br />
<br />
FreeCAD's development is active.<br />
* For Linux users, check out the development [[AppImage|AppImage]].<br />
* For MacOS, Windows, and development source code, see the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.19_pre FreeCAD/releases] page.<br />
<br />
== Additional modules and macros == <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides many additional modules and macros. Since 0.17 they can be easily installed from within FreeCAD using the [[Addon Manager|Addon manager]] [[Image:AddonManager.svg|22px]].<br />
<br />
<!--T:40--><br />
{{Userdocnavi}}<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Macro_WorkFeatures&diff=557697Macro WorkFeatures2019-12-07T14:40:37Z<p>Sgrogan: fix broken https://github.com/FreeCAD/FreeCAD-addons/ link</p>
<hr />
<div><languages/><br />
<translate><br />
<!--T:1--><br />
{{Macro<br />
|Name=Macro WorkFeatures<br />
|Icon=WF_wf.png<br />
|Description=Tool utility to create Points, Axis, Planes...and other usefull functions.<br />
|Author=rentlau_64<br />
|Version=2019-05<br />
|Date=2019-05-01<br />
|FCVersion=All<br />
|Download=[https://www.freecadweb.org/wiki/images/9/9d/WF_wf.png ToolBar Icon]<br />
}}<br />
<br />
==Description== <!--T:2--><br />
Tool utility to create Points (mid points, center of circle, center of object(s)...), <br />
Axes (from 2 points, Normal of a plane...), <br />
Planes (from 3 points, from one axis and a point...)<br />
and many other useful features to facilitate the creation of your project. This utility is up next in the combo view with "Work Features" label.<br />
<br />
<br />
<!--T:3--><br />
[[File:WF.png|640px]]<br />
{{Caption|WorkFeatures}}<br />
<br />
==Uses== <!--T:4--><br />
'''Work Features'''<br />
<br />
<!--T:5--><br />
<center><br />
<gallery widths="200" heights="400"><br />
Image:Macro WorkFeatures 01.png|After activating Work Features, the tool moves to the left in the window Combo view.<br />
Image:Macro WorkFeatures 07.png|Each use and each Tag that corresponds to a function group is a group created in the name of Tag used. The Axis, Point and Planes origin are directly keyed to hidden.<br />
Image:Macro WorkFeatures 08.png|You can ENTERING AND USING common commands to make visible the created function.<br />Example key '''{{KEY|Space}}''' or select your object and click right of mouse and click "'''Hide selection'''" or "'''Show selection'''".<br />
</gallery><br />
</center><br />
<br />
<br />
<!--T:6--><br />
'''Origin Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 02.png|200px|left]]<br />
|<br />
*'''Origin Tab'''<br />
* {{KEY|Origin}} : Create at origin: a point and X,Y and Z axis and XZ,XY and YZ planes. The Axis, Point and Planes origin are directly keyed to hidden.<br />
|}<br />
<br />
<!--T:7--><br />
'''Points Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 03.png|200px|left]]<br />
|<br />
*'''Points Tab'''<br />
* {{KEY|Object(s) Center}} : Create a Point at center location of all selected Object(s).<br />
* {{KEY|Lines(s) Center}} : Create a Point at mid point location of each selected Line(s).<br />
* {{KEY|Line(s) Extrema}} : Create Points at start and end location of each selected Line(s).<br />
* {{KEY|Circle(s) Center}} : Create a Point at center location of each selected Circle(s) or Arc(s).<br />
* {{KEY|Point along Line}} : Create a Point on a line at some distance of the extremity point selected.<br />
* '''SpinBox''' : enter the displacement value<br />
* {{KEY|Face(s) Center}} : Create a Point at center location of each selected Face(s).<br />
* {{KEY|Point (Line,Face)}} : Create a point at the intersection of the Line and Plane selected.<br />
* {{KEY|Point (Line,Point)}} : Create a projection Point of a Point onto a Line and symetric point.<br />
* {{KEY|Point (Point,Face)}} : Create a projection Point of a Point onto a Face.<br />
* {{KEY|Object(s) Base Point}} : Create Base Point of all selected Object(s).<br />
|}<br />
<br />
<br />
<!--T:8--><br />
'''Axis Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 04.png|200px|left]]<br />
|<br />
*'''Axis Tab'''<br />
* {{KEY|Object(s) X, Y, Z Axes}} : Create 3 Axes at center location of all selected Object(s).<br />
* {{KEY|Two Points Axis}} : Create an Axis crossing 2 Points.<br />
* '''SpinBox''' : enter the displacement value<br />
* {{KEY|Cylinder(s) Axis}} : Create the Axis of a Cylinder.<br />
* {{KEY|Axis (Line,Line)}} : Create an Axis between 2 Axes.<br />
* {{KEY|Plane(s) Axes}} : Create 2 Perpendicular Axes at center location of a Plane.<br />
* {{KEY|Axis (Point,Axis)}} : Create an Axis parallel to an Axis and crossing a Point.<br />
* {{KEY|Axis (Axis,Point)}} : Create an Axis perpendicular to an Axis and crossing a Point.<br />
* '''SpinBox''' : enter the displacement value<br />
* {{KEY|Axis (Plane,Axis)}} : Create an Axis on a Plane by projection from another Axis.<br />
* {{KEY|Axis (Plane,Plane)}} : Create an Axis by intersect of 2 Planes.<br />
* {{KEY|Object(s) Base Axis}} : Create 3 Axes at Base location of all selected Object(s).<br />
|}<br />
<br />
<!--T:9--><br />
'''Plane Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 05.png|200px|left]]<br />
|<br />
*'''Plane Tab'''<br />
* {{KEY|Three Points Plane}} : Create a Plane crossing 3 Points.<br />
* {{KEY|Plane (Point, Axis)}} : Create a plane crossing a Line and a Point. The point MUST not belongs to the Line !<br />
* {{KEY|Plane (Point, _Axis)}} : Create a plane perpendicular to a Line and crossing a Point.<br />
* {{KEY|Plane (Point, Plane)}} : Create a plane crossing a Point and parallel to a Plane.<br />
* '''SpinBox''' : enter the displacement value<br />
* {{KEY|Plane (Plane, Axis)}} : Create a Plane crossing a Line and perpendicular to a Plane.<br />
* '''SpinBox''' : enter the displacement value<br />
* {{KEY|Object(s) Center Planes}} : Create 3 Planes (XY, XZ and YZ) at center location of all selected Object(s).<br />
|}<br />
<br />
<!--T:10--><br />
'''Objects Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 06.png|200px|left]]<br />
|<br />
*'''Objects Tab'''<br />
* {{KEY|Bounding Box(es)}} : Create bounding boxes around each of selected object(s).<br />
* {{KEY|Bounding Box}} : Create one bounding box around all of selected object(s).<br />
* {{KEY|Cylinder}} : First select an Axis and a Point. Define Diameter and Length if needed. Then Click the button... It will create a Cylinder aligned on the selected axis. with one of the extremities at point selected.<br />
* {{KEY|Cube}} : First select an Axis and a Point. Define Dimensions if needed. Then Click the button... It will create a Cube aligned on the selected axis. with one of the extremities at point selected.<br />
|}<br />
<br />
<!--T:17--><br />
'''Views Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 09.png|200px|left]]<br />
|<br />
*'''Views Tab'''<br />
* {{KEY|Align to ...}} : Set the current view perpendicular to the selected Face, or aligned to the selected Axis, or aligned on 2 Points. ReClick with same selection, will reverse the direction.<br />
|}<br />
<br />
<!--T:24--><br />
'''Modif. Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 10.png|200px|left]]<br />
|<br />
*'''Modif. Cutting Tab'''<br />
* {{KEY|Select Object}} : After selected your object and, First, one Object to cut and click 'Select Object' button,<br />
** The name of the object selected are displayed<br />
* {{KEY|Select Cut Line}} : Second, one cutting Line and click 'Select Cut Line' button,<br />
** The name of the line selected are displayed<br />
* {{KEY|Select Ref. Plane}} : Last, a reference Plane and click 'Select Ref. Plane' button!<br />
** The name of the plane selected are displayed<br />
* '''Angle''' : Angle for cut (Defaut : 0.0)<br />
* '''Thichness''' : Thichness the cut (Defaut : 0.0)<br />
* {{KEY|Reset}} : Reset the values<br />
* {{KEY|Apply}} : Apply the values<br />
|}<br />
<br />
<!--T:37--><br />
'''Check. Tab'''<br />
{|<br />
|[[File:Macro WorkFeatures 11.png|200px|left]]<br />
|<br />
*'''Check. Tab'''<br />
* {{KEY|are Parallel ?}} : Check if two faces or two Edges are Parallel:<br />
**Select the 2 faces/planes or 2 Edges/Lines and Click this button<br />
* {{KEY|are Perpendicular ?}} : Check if two faces or two Edges are Perpendicular:<br />
**Select the 2 faces/planes or 2 Edges/Lines and Click this button<br />
* {{KEY|are Coplanar ?}} : Check if two faces or two Edges are Coplanar:<br />
**Select the 2 faces/planes or 2 Edges/Lines and Click this button<br />
* {{KEY|Distance Clearance ?}} : Check for two Objects Clearance distance:<br />
**Quick measurements between parallel faces and similarly placed objects Select the 2 Objects and Click this button<br />
* {{KEY|Angle ?}} : Calculate angle from 2 objects:<br />
**Angle measurement between two Edges or two Planes<br />
**Select the 2 Edges and Click this button<br />
**or : Select the 2 Planes and Click this button<br />
**or : Select one Edge and one Plane and Click this button<br />
* {{KEY|Distance ?}} : Check for two Points distance:<br />
**Distances measurement and Delta values (on main Axes) between two Points<br />
**Select the 2 Points and Click this button<br />
* {{KEY|Length ?}} : Check for Line Length:<br />
**Length measurement and Delta values (on main Axes) for a Line<br />
**Select the Line and Click this button<br />
* {{KEY|Area ?}} : Check for surface Area:<br />
**Area measurement for a Plane or a set of Planes.<br />
**Select One or several Planes and Click this button<br />
* {{KEY|View}} : Detect the position of the camera. The returned value is the value provided by the function getCameraOrientation().<br />
|}<br />
<br />
==Script== <!--T:11--><br />
After downloading the file compressed here<br />
</translate><br />
<br />
ToolBar Icon [[Image:WF_wf.png]]<br />
<br />
'''[https://github.com/Rentlau/WorkFeature Download the latest version on GitHub]''' , <br />
<br />
<translate><br />
<!--T:16--><br />
you must unzip the zip and copy all the files in your macro directory.<br />
<br />
<!--T:23--><br />
'''PS:This macro is still in development please visit this page for commonly be sure to have the latest version.'''<br />
<br />
<!--T:33--><br />
<br /><br />
[[File:Macro Work Features GitHub 00.png|center|640px|Download in GitHub click the Download ZIP button]]<br />
{{clear}}<br />
<br />
<!--T:12--><br />
Install the macro [https://github.com/FreeCAD/FreeCAD-addons/blob/master/addons_installer.FCMacro addons_installer] for easy installation of WorkFeatures and other interesting macros<br />
<br />
<!--T:41--><br />
Here for [[How to install macros|How to install macros]] detailed<br />
<br />
==Examples== <!--T:13--><br />
<br />
===Cutting tools=== <!--T:38--><br />
<br />
<!--T:18--><br />
'''Setting of the Cutting tools:''' Select an object to cut, a cutting line and a reference Plane.<br />
Angle is an angle between the cutting Plane and the Ref. Plane.<br />
Thickness is the wide of the of the cutting Plane.<br />
<br />
<!--T:25--><br />
<center><br />
<gallery widths="400" heights="250"><br />
Image:CuttingSettings.jpg|Here we have selected a cylinder.<br />
Image:CuttingResult.jpg|The result will be : the cylinder is then cut in two parts!<br />
</gallery><br />
</center><br />
{{clear}}<br />
<center><br />
'''Example the practice'''<br />
<gallery widths="400" heights="250"><br />
Image:Macro Work Features Cutting 01.png|Select the '''Tab {{KEY|Plane}}'''<br />
Image:Macro Work Features Cutting 02.png|and click the {{KEY|Plane}} button<br /> (you can change the dimensions of the plane ('''Default: 10 x 10''')).<br />
</gallery><br />
</center><br />
{{clear}}<br />
<center><br />
<gallery widths="400" heights="250"><br />
Image:Macro Work Features Cutting 03.png|click you work object. The plane is created tangent of the object (here a cylinder)<br />
Image:Macro Work Features Cutting 04.png|click the Tab {{KEY|Modif}}, and <br />'''1 :''' click your object for cutting<br />'''2 :''' click the {{KEY|Select object}} button (here the cylinder and then name is displayed)<br />
</gallery><br />
</center><br />
{{clear}}<br />
<center><br />
<gallery widths="400" heights="250"><br />
Image:Macro Work Features Cutting 05.png|'''3 :''' click your line for cutting your cylinder<br />'''4 :''' click the {{KEY|Select Cut Line}} (then name is displayed)<br />
Image:Macro Work Features Cutting 06.png|'''5 :''' click the work plane<br />'''6 :''' click the {{KEY|Select Ref. Plane}} button (then name is displayed)<br />
</gallery><br />
</center><br />
{{clear}}<br />
<center><br />
<gallery widths="400" heights="250"><br />
Image:Macro Work Features Cutting 07.png| click the {{KEY|Apply}} button<br />
Image:Macro Work Features Cutting 08.png| The operation is completed and all operations are preserved.<br />
</gallery><br />
</center><br />
{{clear}}<br />
<br />
<!--T:26--><br />
<center><br />
<gallery widths="400" heights="250"><br />
Image:Macro Work Features Cutting 09.png| you can also give Angle and Thickness for your cut.<br />
</gallery><br />
</center><br />
{{clear}}<br />
<br />
===Concentric constraint between two non cylindrical parts=== <!--T:39--><br />
<br />
<!--T:40--><br />
<center><br />
<gallery widths="500" heights="500"><br />
Image:Concentric Constraint Between two non cylindrical parts.gif|How to Constraint Between two non cylindrical parts.<br />'''1 :''' The original object to modify.<br />'''2 :''' Objective center two square tubes.<br />'''3 :''' Select the first object and in the menu '''Axis 1/2''' click "Object(s)" X, Y, Z Axes.<br />'''4 :''' Same procedure for the second object.<br />'''5 :''' Click on button '''Draw style''' and onto "Wireframe",<br />'''6 :''' for clarify the view.<br />'''7 :''' Select the object to center and his axis created.<br />'''8 :''' Click the button '''Draft Move'''<br />'''9 :''' and select the first axis to move on the second axis.<br />'''10 :''' Restore normal view with on button '''Draw style''' and onto '''As is'''.<br />'''11 :''' Click the first object moved and correct the position with "Combo view > Data > Placement".<br />'''12 :''' Select the object created by WorkFeature (contener axis) and delete it.<br />'''13 :''' The object weshed.<br />'''14 :''' The result.<br />
</gallery><br />
</center><br />
{{clear}}<br />
<br />
</translate><br />
<translate><br />
===Rotation Object=== <!--T:42--><br />
</translate><br />
<br />
<center><br />
<gallery widths="500" heights="500"><br />
Image:WorkFeature_Rotation_Object.gif|Click the image for see the animation.<br /><br />
</gallery><br />
</center><br />
{{clear}}<br />
<translate><br />
<br />
==Links== <!--T:14--><br />
The forum discussion [http://forum.freecadweb.org/viewtopic.php?f=22&t=9056 MACRO:Work Feature 2014_12]<br />
<br />
== External workbenches == <!--T:46--><br />
<br />
<!--T:47--><br />
FreeCAD workbenches are easy to program in [[Python|Python]], there are therefore many people developing additional workbenches outside of the FreeCAD main developers.<br />
<br />
<!--T:48--><br />
The [[external workbenches|external workbenches]] page has some information and tutorials on some of them, and the [https://github.com/FreeCAD/FreeCAD-addons/ FreeCAD Addons] project aims at gathering them and making them easily installable from within FreeCAD.<br />
<br />
<!--T:49--><br />
New workbenches are in development, stay tuned!<br />
<br />
==Latest version== <!--T:15--><br />
<br />
<!--T:27--><br />
'''Icons :'''<br />
<br />
[[File:WF wf.png]] <br />
<br />
[[File:WF_centerObjectsPlanes.png]]<br />
<br />
<!--T:34--><br />
'''Sources :'''<br />
<br />
<!--T:44--><br />
On github : [https://github.com/Rentlau/WorkFeature-WB.git /github.com/Rentlau/WorkFeature-WB.git]<br />
<br />
<!--T:45--><br />
Date 2019-05-01 (YYYY-MM-DD)<br />
<br />
<!--T:50--><br />
20/01/2019<br />
<br />
<!--T:35--><br />
08/03/2015 : [http://github.com/Rentlau/WorkFeature.git WF_2015_03_08]<br />
- Circle cut added<br />
- Are Parallel, Are Perpendicular, Are Coplanar added<br />
<br />
<!--T:36--><br />
17/02/2015 : [https://github.com/Rentlau/WorkFeature.git WF_2015_02_17]<br />
- Circle and Ellipse Tab added<br />
- Cutting tab added<br />
<br />
<!--T:28--><br />
25/01/2015 : [http://forum.freecadweb.org/download/file.php?id=10937&sid=b770dec5362ae499adb4173547ef445f WF_2015_01_25.zip] add Object Cylinder Cube<br />
<br />
<!--T:29--><br />
18/01/2015 : [http://forum.freecadweb.org/download/file.php?id=10799 WF_2015_01_18.tar.gz] add plane and face to view<br />
<br />
<!--T:30--><br />
28/12/2014 : [http://forum.freecadweb.org/download/file.php?id=10347 WorkFeatures_2014_12_28.zip]<br />
<br />
<!--T:31--><br />
27/12/2014 : [http://forum.freecadweb.org/download/file.php?id=10325 WF_2014_12_27.zip]<br />
<br />
<!--T:43--><br />
[[Category:Addons]]<br />
[[Category:User Documentation]]<br />
</translate><br />
{{clear}}</div>Sgroganhttps://wiki.freecad.org/index.php?title=Installing_on_Windows&diff=532550Installing on Windows2019-11-03T13:00:20Z<p>Sgrogan: FreeCAD uses NSIS .exe installer not MS .msi installer</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:38--><br />
{{docnav<br />
|[[Feature list|Feature list]]<br />
|[[Install on Unix|Install on Unix]]<br />
}}<br />
<br />
<!--T:1--><br />
You can install FreeCAD on Windows by downloading one of the installers below:<br />
<br />
<!--T:37--><br />
{{DownloadWindowsStable}}<br />
<br />
<!--T:2--><br />
After downloading the .exe (NSIS Installer) file, double-click on it to start the installation process. <br />
<br />
<br />
<br />
<!--T:3--><br />
Below is more information about technical options. If it looks daunting, don't worry! Most Windows users will not need anything more than the above .exe to install FreeCAD and '''[[Getting started | Get started]]'''!<br />
<br />
<br />
=== Simple NSIS Installer Installation === <!--T:4--><br />
The easiest way to '''install FreeCAD on Windows''' is by using the downloadable installer bundle above. This page describes the usage and features of the ''NSIS Installer'' for more installation options.<br />
<br />
<!--T:5--><br />
If you would like to download a development version (which may be unstable), see the [[Download|Download]] page.<br />
<br />
=== Chocolatey === <!--T:40--><br />
However, it is highly recommended that you use a package manager such as Chocolatey to keep your software updated. You can installed Chocolatey following [https://chocolatey.org/install these instructions] and then open a PowerShell terminal as admin and run:<br />
<br />
</translate><br />
{{Code|code=<br />
choco install freecad<br />
}} <br />
<translate><br />
<br />
<!--T:41--><br />
every once in a while you can update your software with<br />
<br />
</translate><br />
{{Code|code=<br />
choco upgrade freecad<br />
}}<br />
<translate><br />
<br />
<!--T:42--><br />
to get the latest version available on Chocolatey repository. If there are any issues with the chocolatey package, you may contact maintainers on [https://chocolatey.org/packages/freecad this page]. <br />
<br />
<br />
=== Command Line Installation === <!--T:6--><br />
With the ''msiexec.exe'' command line utility, additional features such as non-interactive installation and administrative installation are available. See examples below.<br />
<br />
==== Non-interactive Installation ==== <!--T:7--><br />
With the command line<br />
<br />
</translate><br />
msiexec /i FreeCAD<version>.msi<br />
<translate><br />
<br />
<!--T:8--><br />
installation can be initiated programmatically. Additional parameters can be passed at the end of the command line, for example<br />
<br />
</translate><br />
{{Code|code=<br />
msiexec /i FreeCAD-2.5.msi TARGETDIR=R:\FreeCAD25<br />
}}<br />
<translate><br />
<br />
==== Limited user interface ==== <!--T:9--><br />
The amount of user control permitted by the installer can be controlled with /q options:<br />
<br />
<!--T:10--><br />
* /qn - No interface<br />
* /qb - Basic interface - display only a progress dialog with Cancel button<br />
* /qb! - Like /qb, but hide the Cancel button<br />
* /qr - Reduced interface - display all dialogs that do not require user interaction (skip all modal dialogs)<br />
* /qn+ - Like /qn, but display "Completed" dialog at the end<br />
* /qb+ - Like /qb, but display "Completed" dialog at the end <br />
<br />
==== Target directory ==== <!--T:11--><br />
The property TARGETDIR determines the root directory of the FreeCAD installation. For example, a different installation drive can be specified with<br />
<br />
</translate><br />
{{Code|code=<br />
TARGETDIR=R:\FreeCAD25<br />
}}<br />
<translate><br />
<br />
<!--T:12--><br />
The default TARGETDIR is [WindowsVolume\Programm Files\]FreeCAD<version>.<br />
<br />
==== Installation for All Users ==== <!--T:13--><br />
Adding<br />
<br />
</translate><br />
{{Code|code=<br />
ALLUSERS=1<br />
}}<br />
<translate><br />
<br />
<!--T:14--><br />
causes an installation usable by all users. By default, a non-interactive (/i) installation makes the package usable by the current user (the one performing the installation) only; an interactive installation presents a dialog which defaults to "all users" if the user performing the installation is sufficiently privileged.<br />
<br />
==== Feature Selection ==== <!--T:15--><br />
A number of properties allow selection of features to be installed, reinstalled, or removed. The set of features for the FreeCAD installer is<br />
<br />
<!--T:16--><br />
* DefaultFeature - install the software proper, plus the core libraries<br />
* Documentation - install the documentation<br />
* Source code - install the sources <br />
* ... ToDo<br />
<br />
<!--T:17--><br />
In addition, ALL specifies all features. All features depend on DefaultFeature, so installing any feature automatically installs the default feature as well. The following properties control features to be installed or removed<br />
<br />
<!--T:18--><br />
* ADDLOCAL - list of features to be installed on the local machine<br />
* REMOVE - list of features to be removed from the local machine<br />
* ADDDEFAULT - list of features added in their default configuration (which is local for all FreeCAD features)<br />
* REINSTALL - list of features to be reinstalled/repaired<br />
* ADVERTISE - list of features for which to perform an advertise installation <br />
<br />
<!--T:19--><br />
There are a few additional properties available; see the MSDN documentation for details.<br />
<br />
<!--T:20--><br />
With these options, adding<br />
<br />
</translate><br />
{{Code|code=<br />
ADDLOCAL=Extensions<br />
}}<br />
<translate><br />
<br />
<!--T:21--><br />
installs the interpreter itself and registers the extensions, but does not install anything else.<br />
<br />
=== Uninstallation === <!--T:22--><br />
With<br />
<br />
</translate><br />
{{Code|code=<br />
msiexec /x FreeCAD<version>.msi<br />
}}<br />
<translate><br />
<br />
<!--T:23--><br />
FreeCAD can be uninstalled. It is not necessary to have the MSI file available for uninstallation; alternatively, the package or product code can also be specified. You can find the product code by looking at the properties of the Uninstall shortcut that FreeCAD installs in the start menu.<br />
<br />
=== Administrative installation === <!--T:24--><br />
With<br />
<br />
</translate><br />
{{Code|code=<br />
msiexec /a FreeCAD<version>.msi<br />
}}<br />
<translate><br />
<br />
<!--T:25--><br />
an "administrative" (network) installation can be initiated. The files get unpacked into the target directory (which should be a network directory), but no other modification is made to the local system. In addition, another (smaller) msi file is generated in the target directory, which clients can then use to perform a local installation (future versions may also offer to keep some features on the network drive altogether).<br />
<br />
<!--T:26--><br />
Currently, there is no user interface for administrative installations, so the target directory must be passed on the command line.<br />
<br />
<!--T:27--><br />
There is no specific uninstall procedure for an administrative install - simply delete the target directory if no client uses it anymore.<br />
<br />
=== Advertisement === <!--T:28--><br />
With<br />
<br />
</translate><br />
{{Code|code=<br />
msiexec /jm FreeCAD<version>.msi<br />
}}<br />
<translate><br />
<br />
<!--T:29--><br />
it would be possible, in principle, to "advertise" FreeCAD to a machine (with /ju to a user). This would cause the icons to appear in the start menu and the extensions to become registered, without the software actually being installed. The first usage of a feature would cause that feature to be installed.<br />
<br />
<!--T:30--><br />
The FreeCAD installer currently only supports advertisement of start menu entries, but no advertisement of shortcuts.<br />
<br />
=== Automatic Installation on a Group of Machines === <!--T:31--><br />
With Windows Group Policy, it is possible to automatically install FreeCAD on a group of machines. To do so, perform the following steps:<br />
#Log on to the domain controller<br />
#Copy the MSI file into a folder that is shared with access granted to all target machines.<br />
#Open the MMC snapin "Active Directory users and computers"<br />
#Navigate to the group of computers that need FreeCAD<br />
#Open Properties<br />
#Open Group Policies<br />
#Add a new policy, and edit it<br />
#In Computer Configuration/Software Installation, choose New/Package<br />
#Select the MSI file through the network path<br />
#Optionally, select that you want FreeCAD to be de-installed if the computer leaves the scope of the policy. <br />
<br />
<!--T:32--><br />
Group policy propagation typically takes some time - to reliably deploy the package, all machines should be rebooted.<br />
<br />
=== Installation on Linux using Crossover Office === <!--T:33--><br />
<br />
<!--T:34--><br />
You can install the windows version of FreeCAD on a Linux system using ''CXOffice 5.0.1''. Run ''msiexec'' from the CXOffice command line. Assuming the install package is in the "software" directory on drive "Y:":<br />
<br />
</translate><br />
{{Code|code=<br />
msiexec /i Y:\\software\\FreeCAD<version>.msi<br />
}}<br />
<translate><br />
<br />
<!--T:39--><br />
FreeCAD is running, but it has been reported that the OpenGL display does not work, like with other programs running under [[wikipedia:Wine (software)|Wine]] i.e. Google [[wikipedia:SketchUp|SketchUp]].<br />
<br />
<!--T:35--><br />
{{docnav<br />
|[[Feature list|Feature list]]<br />
|[[Install on Unix|Install on Unix]]<br />
}}<br />
<br />
<!--T:36--><br />
[[Category:User Documentation]]<br />
[[Category:Administration]]<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=532515Download2019-11-03T12:39:33Z<p>Sgrogan: update to 0.18.4(16146) point release</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD is still in development, and has not reached version 1.0 status in our view. It might not be ready for production use, but many people already use it professionally. To find out if FreeCAD is appropriate for your project, please visit the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current stable version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.18 release of FreeCAD (0.18.16093) was published on 2019-03-12. The latest bug fix release '''0.18.4 (0.18.16146)''' was published on 2019-10-26. To find out what's new, see the [[Release notes 0.18|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums to verify integrity of your download on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.4 0.18.4 release page].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
| align=center | [[Image:Windows.png]]<br />
<br />
Windows<br />
<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD-0.18.4.980bf90-WIN-x32-installer.exe 32-bit] |<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD-0.18.4.980bf90-WIN-x64-installer.exe 64-bit]<br />
|<br />
| align=center | [[Image:Mac.png]]<br />
<br />
Mac<br />
<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD_0.18-16146-OSX-x86_64-conda-Qt5-Py3.dmg Mac OS X] <small>64-bit</small><br />
|<br />
| align=center | [[Image:AppImage-logo.png]]<br />
<br />
Linux<br />
<br />
[https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD_0.18-16146-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage AppImage] <small>64-bit</small><br />
|}<br />
<translate><br />
<br />
=== Notes for Windows users === <!--T:5--><br />
<br />
* The 32-bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
* A portable version (64-bit) that doesn't need installation is in the release page.<br />
<br />
=== Notes for Mac OS X users === <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
=== Notes for GNU/Linux users === <!--T:6--><br />
<br />
<!--T:51--><br />
Most distributions carry FreeCAD in their official repositories, however, if the distribution doesn't follow a rolling release model the version they provide might be outdated. Instead you can download the AppImage above, mark it as executable and launch it without installation.<br />
<br />
<!--T:54--><br />
Please see the [[Install on Unix|Install on Unix]] page for more installation options, including daily packages for Ubuntu and derivatives.<br />
<br />
== Development versions == <!--T:4--><br />
<br />
FreeCAD's development is active.<br />
* For Linux users, check out the development [[AppImage|AppImage]].<br />
* For MacOS, Windows, and development source code, see the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD/releases] page.<br />
<br />
== Additional modules and macros == <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides many additional modules and macros. Since 0.17 they can be easily installed from within FreeCAD using the [[Addon Manager|Addon manager]].<br />
<br />
<!--T:40--><br />
{{Userdocnavi}}<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=496333Download2019-07-23T22:16:26Z<p>Sgrogan: Update to 0.18.3</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.18 release of FreeCAD (0.18.16093) was published on 2019-03-12. A bug fix release has been published since then, the latest bug fix release '''0.18.3 (0.18.16131)''' was published on 2019-07-7. To find out what's new, see the [[Release notes 0.18|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums (to verify integrity of your download) and Windows portable versions on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.3 0.18.3 Release page on GitHub].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.3/FreeCAD-0.18.16131.3129ae4-WIN-x32-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.3/FreeCAD-0.18.16131.3129ae4-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.3/FreeCAD_0.18-16131-OSX-x86_64-conda-Qt5-Py3.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.3/FreeCAD_0.18-16131-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives.<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.19 development release? <br />
For Linux users, check out the 0.19 development [[AppImage]].<br />
For MacOS, Windows and source code, see the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[Addon Manager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=OpenCamLib&diff=480599OpenCamLib2019-06-06T21:45:51Z<p>Sgrogan: /* Windows */</p>
<hr />
<div><br />
OpenCamLib (OCL) is an open source library aiming to provide computer aided manufacturing (CAM) algorithms. FreeCAD uses OCL in the experimental [[Path_Surface|3D surface]] path operations and other experimental features. <br />
<br />
<br />
==Installing==<br />
<br />
=== Windows ===<br />
# Obtain the Python version of OpenCamLib (OCL).<br />
#* Build from [https://github.com/aewallin/opencamlib source] using the Python version used by your FreeCAD version. Peter Lama's [https://github.com/peterlama/opencamlib fork of the same] source has project files for a MSVC build.<br />
#* Download the Python 2.7 x86/x64 [https://github.com/sgrogan/opencamlib/releases binary] by sgrogan on GitHub.<br />
#* Download the Python 3.6 x64 [https://github.com/sgrogan/opencamlib/releases binary] by sgrogan on GitHub.<br />
# Navigate to your OCL build ''or'' binary folder<br />
# Copy the '''ocl.pyd''' library file<br />
# Proceed with one of the following four(4) options:<br />
#* Navigate to your '''FreeCAD\lib''' folder, and paste the '''ocl.pyd''' file there. {{ColoredText||red|(''This is the preferred option.'')}}<br />
#* Navigate to your '''FreeCAD\bin''' folder, and paste the '''ocl.pyd''' file there.<br />
#* Navigate to your '''FreeCAD\Mod''' folder. Create a new folder, '''OCL'''. Enter the '''OCL''' folder and paste the '''ocl.pyd''' file.<br />
#* Navigate to your '''%USERPROFILE%\AppData\Roaming\FreeCAD''' folder. Create a new folder, '''Mod'''. Enter the '''Mod''' folder. Create a new '''OCL''' folder. Enter the '''OCL''' folder and paste the '''ocl.pyd''' file. {{ColoredText||red|(''This is the least preferred option.'')}}<br />
# Restart FreeCAD<br />
# Verify proper installation<br />
## Click '''View''' → '''Panels''' → '''Python console'''.<br />
## Type "'''import ocl'''" into the Python console and press the '''enter''' key.<br />
## If no error appears, you have correctly installed OCL<br />
##* If you receive an error:<br />
##** Check the placement and name of the '''ocl.pyd''' file as instructed above<br />
##** Verify the correct architecture type of the OCL library you installed - x86 or x64<br />
##** Verify the Python version used to build the OCL library is the same as that of your FreeCAD software - 2.7 or 3.6 currently<br />
<br />
=== Linux ===<br />
<br />
The repository is [https://github.com/aewallin/opencamlib here] and contains basic installation instructions.<br />
<br />
Before beginning installation, or during the intallation process, you will probably find you need to install some additional packages:<br />
<br />
For example: <br />
<br />
sudo apt install cmake<br />
sudo apt install libboost-program-options-dev<br />
sudo apt-get install doxygen<br />
sudo apt-get install texlive-full<br />
<br />
=== Mac ===<br />
(No entry)<br />
<br />
<br />
== More help ==<br />
In case you run into difficulties, you may find additional help at these forum posts:<br />
<br />
* [https://forum.freecadweb.org/viewtopic.php?t=19205 Windows]<br />
* [https://forum.freecadweb.org/viewtopic.php?t=18017 Linux]<br />
<br />
== Acknowledgments ==<br />
<br />
Thank you to [http://www.anderswallin.net/about/ Dr. Anders Wallin] for providing OCL to the public.</div>Sgroganhttps://wiki.freecad.org/index.php?title=OpenCamLib&diff=480598OpenCamLib2019-06-06T21:44:07Z<p>Sgrogan: /* Windows */</p>
<hr />
<div><br />
OpenCamLib (OCL) is an open source library aiming to provide computer aided manufacturing (CAM) algorithms. FreeCAD uses OCL in the experimental [[Path_Surface|3D surface]] path operations and other experimental features. <br />
<br />
<br />
==Installing==<br />
<br />
=== Windows ===<br />
# Obtain the Python version of OpenCamLib (OCL).<br />
#* Build from [https://github.com/aewallin/opencamlib source] using the Python version used by your FreeCAD version. Peter Lama's [https://github.com/peterlama/opencamlib fork of the same] source has project files for a MSVC build.<br />
#* Download the Python 2.7 [https://github.com/sgrogan/opencamlib/releases binary] by sgrogan on GitHub.<br />
#* Download the Python 3.6 [https://github.com/sgrogan/opencamlib/releases binary] by sgrogan on GitHub.<br />
# Navigate to your OCL build ''or'' binary folder<br />
# Copy the '''ocl.pyd''' library file<br />
# Proceed with one of the following four(4) options:<br />
#* Navigate to your '''FreeCAD\lib''' folder, and paste the '''ocl.pyd''' file there. {{ColoredText||red|(''This is the preferred option.'')}}<br />
#* Navigate to your '''FreeCAD\bin''' folder, and paste the '''ocl.pyd''' file there.<br />
#* Navigate to your '''FreeCAD\Mod''' folder. Create a new folder, '''OCL'''. Enter the '''OCL''' folder and paste the '''ocl.pyd''' file.<br />
#* Navigate to your '''%USERPROFILE%\AppData\Roaming\FreeCAD''' folder. Create a new folder, '''Mod'''. Enter the '''Mod''' folder. Create a new '''OCL''' folder. Enter the '''OCL''' folder and paste the '''ocl.pyd''' file. {{ColoredText||red|(''This is the least preferred option.'')}}<br />
# Restart FreeCAD<br />
# Verify proper installation<br />
## Click '''View''' → '''Panels''' → '''Python console'''.<br />
## Type "'''import ocl'''" into the Python console and press the '''enter''' key.<br />
## If no error appears, you have correctly installed OCL<br />
##* If you receive an error:<br />
##** Check the placement and name of the '''ocl.pyd''' file as instructed above<br />
##** Verify the correct architecture type of the OCL library you installed - x86 or x64<br />
##** Verify the Python version used to build the OCL library is the same as that of your FreeCAD software - 2.7 or 3.6 currently<br />
<br />
=== Linux ===<br />
<br />
The repository is [https://github.com/aewallin/opencamlib here] and contains basic installation instructions.<br />
<br />
Before beginning installation, or during the intallation process, you will probably find you need to install some additional packages:<br />
<br />
For example: <br />
<br />
sudo apt install cmake<br />
sudo apt install libboost-program-options-dev<br />
sudo apt-get install doxygen<br />
sudo apt-get install texlive-full<br />
<br />
=== Mac ===<br />
(No entry)<br />
<br />
<br />
== More help ==<br />
In case you run into difficulties, you may find additional help at these forum posts:<br />
<br />
* [https://forum.freecadweb.org/viewtopic.php?t=19205 Windows]<br />
* [https://forum.freecadweb.org/viewtopic.php?t=18017 Linux]<br />
<br />
== Acknowledgments ==<br />
<br />
Thank you to [http://www.anderswallin.net/about/ Dr. Anders Wallin] for providing OCL to the public.</div>Sgroganhttps://wiki.freecad.org/index.php?title=OpenCamLib&diff=480597OpenCamLib2019-06-06T21:43:38Z<p>Sgrogan: /* Windows */</p>
<hr />
<div><br />
OpenCamLib (OCL) is an open source library aiming to provide computer aided manufacturing (CAM) algorithms. FreeCAD uses OCL in the experimental [[Path_Surface|3D surface]] path operations and other experimental features. <br />
<br />
<br />
==Installing==<br />
<br />
=== Windows ===<br />
# Obtain the Python version of OpenCamLib (OCL).<br />
#* Build from [https://github.com/aewallin/opencamlib source] using the Python version used by your FreeCAD version. Peter Lama's [https://github.com/peterlama/opencamlib fork of the same] source has project files for a MSVC build.<br />
#* Download the Python 2.7 [https://github.com/sgrogan/opencamlib/releases binary] by SGrogan on GitHub.<br />
#* Download the Python 3.6 [https://github.com/sgrogan/opencamlib/releases binary] by SGrogan on GitHub.<br />
# Navigate to your OCL build ''or'' binary folder<br />
# Copy the '''ocl.pyd''' library file<br />
# Proceed with one of the following four(4) options:<br />
#* Navigate to your '''FreeCAD\lib''' folder, and paste the '''ocl.pyd''' file there. {{ColoredText||red|(''This is the preferred option.'')}}<br />
#* Navigate to your '''FreeCAD\bin''' folder, and paste the '''ocl.pyd''' file there.<br />
#* Navigate to your '''FreeCAD\Mod''' folder. Create a new folder, '''OCL'''. Enter the '''OCL''' folder and paste the '''ocl.pyd''' file.<br />
#* Navigate to your '''%USERPROFILE%\AppData\Roaming\FreeCAD''' folder. Create a new folder, '''Mod'''. Enter the '''Mod''' folder. Create a new '''OCL''' folder. Enter the '''OCL''' folder and paste the '''ocl.pyd''' file. {{ColoredText||red|(''This is the least preferred option.'')}}<br />
# Restart FreeCAD<br />
# Verify proper installation<br />
## Click '''View''' → '''Panels''' → '''Python console'''.<br />
## Type "'''import ocl'''" into the Python console and press the '''enter''' key.<br />
## If no error appears, you have correctly installed OCL<br />
##* If you receive an error:<br />
##** Check the placement and name of the '''ocl.pyd''' file as instructed above<br />
##** Verify the correct architecture type of the OCL library you installed - x86 or x64<br />
##** Verify the Python version used to build the OCL library is the same as that of your FreeCAD software - 2.7 or 3.6 currently<br />
<br />
=== Linux ===<br />
<br />
The repository is [https://github.com/aewallin/opencamlib here] and contains basic installation instructions.<br />
<br />
Before beginning installation, or during the intallation process, you will probably find you need to install some additional packages:<br />
<br />
For example: <br />
<br />
sudo apt install cmake<br />
sudo apt install libboost-program-options-dev<br />
sudo apt-get install doxygen<br />
sudo apt-get install texlive-full<br />
<br />
=== Mac ===<br />
(No entry)<br />
<br />
<br />
== More help ==<br />
In case you run into difficulties, you may find additional help at these forum posts:<br />
<br />
* [https://forum.freecadweb.org/viewtopic.php?t=19205 Windows]<br />
* [https://forum.freecadweb.org/viewtopic.php?t=18017 Linux]<br />
<br />
== Acknowledgments ==<br />
<br />
Thank you to [http://www.anderswallin.net/about/ Dr. Anders Wallin] for providing OCL to the public.</div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=465962Download2019-04-23T11:19:00Z<p>Sgrogan: </p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.18 release of FreeCAD (0.18.16093) was published on 2019-03-12. A bug fix release has been published since then, the latest bug fix release '''0.18.1 (0.18.16110)''' was published on 2019-04-4. To find out what's new, see the [[Release notes 0.18|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums (to verify integrity of your download) and Windows portable versions on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.1 0.18.1 Release page on GitHub].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD-0.18.16110.f7dccfa-WIN-x32-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD-0.18.16110.f7dccfa-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD_0.18-16110-OSX-x86_64-conda-Qt5-Py3.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD_0.18-16110-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives.<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.19 development release? <br />
For Linux users, check out the 0.19 development [[AppImage]].<br />
For MacOS, Windows and source code, see the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[Addon Manager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=463761Download2019-04-18T20:24:32Z<p>Sgrogan: Update links for 0.18.1 / AppImage not available yet</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.18 release of FreeCAD (0.18.16093) was published on 2019-03-12. A bug fix release has been published since then, the latest bug fix release '''0.18.1 (0.18.16110)''' was published on 2019-04-4. To find out what's new, see the [[Release notes 0.18|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums (to verify integrity of your download) and Windows portable versions on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.1 0.18.1 Release page on GitHub].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD-0.18.16110.f7dccfa-WIN-x32-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD-0.18.16110.f7dccfa-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.18.1/FreeCAD_0.18-16110-OSX-x86_64-conda-Qt5-Py3.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13541.9948ee4.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives.<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.19 development release? <br />
For Linux users, check out the 0.19 development [[AppImage]].<br />
For MacOS, Windows and source code, see the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[Addon Manager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=322121Download2018-09-13T00:43:03Z<p>Sgrogan: Update Win x64 link</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published on 2018-04-06. Many bug fix releases were published since then, the latest bug fix release '''0.17.13541''' was published on 2018-08-16. It might not be available to all operating systems at this time. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums (to verify integrity of your download) and Windows portable versions on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.17 0.17 Release page on GitHub]. (Older portable builds have been pruned. Availability will return in the future)<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13541.9948ee4-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13541.9948ee4-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13541.9948ee4.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=318875Download2018-09-03T23:45:08Z<p>Sgrogan: </p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published on 2018-04-06. Many bug fix releases were published since then, the latest bug fix release '''0.17.13541''' was published on 2018-08-16. It might not be available to all operating systems at this time. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums (to verify integrity of your download) and Windows portable versions on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.17 0.17 Release page on GitHub]. (Older portable builds have been pruned. Availability will return in the future)<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13541.9948ee4-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13541.9948ee4.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=318874Download2018-09-03T23:41:16Z<p>Sgrogan: Uppdate AppImage link to latest backport release</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published on 2018-04-06. Many bug fix releases were published since then, the latest bug fix release '''0.17.13541''' was published on 2018-08-16. It might not be available to all operating systems at this time. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
<!--T:53--><br />
You will find SHA256 checksums (to verify integrity of your download) and Windows portable versions on the [https://github.com/FreeCAD/FreeCAD/releases/tag/0.17 0.17 Release page on GitHub].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13541.9948ee4-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13541.9948ee4.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=291147Download2018-07-28T17:12:38Z<p>Sgrogan: Update win x32 link</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13528''' was published 2018-07-13. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13528.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=291146Download2018-07-28T15:54:50Z<p>Sgrogan: fix win links</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13522''' was published 2018-05-08. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13528.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=291035Download2018-07-27T00:08:03Z<p>Sgrogan: Updatw Win x64 link</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13522''' was published 2018-05-08. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
5c3f|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13528.5c3f7bf-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13528.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=291002Download2018-07-26T22:15:32Z<p>Sgrogan: Update AppImage link</p>
<hr />
<div>__NOTOC__<br />
<languages/><br />
<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13522''' was published 2018-05-08. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13528.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=283349Download2018-05-12T19:03:05Z<p>Sgrogan: Update Win x64 installer link</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13522''' was published 2018-05-08. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13522.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=282812Download2018-05-10T20:49:16Z<p>Sgrogan: update win x86 link</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13522''' was published 2018-05-08. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13522.3bb5ff4-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13522.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=282465Download2018-05-09T21:16:01Z<p>Sgrogan: Update AppImage link</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13519''' was published 2018-04-23. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-13522.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=277502Download2018-04-24T21:43:56Z<p>Sgrogan: update bugfix release version</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13519''' was published 2018-04-23. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17.13509.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=277451Download2018-04-24T01:11:36Z<p>Sgrogan: pdate links to 0.17.13519 on winn and osx</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The first 0.17 release of FreeCAD (0.17.13509) was published 2018-04-06. The bug fix release '''0.17.13515''' was published 2018-04-18. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13519.1a8b868-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13519.1a8b868-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17.13509.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=275624Download2018-04-19T00:25:10Z<p>Sgrogan: Update win installer links</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The current stable release of FreeCAD is '''0.17.13509''' published 2018-04-06. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13515.e17b3409-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13515.e17b340-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13509.0258808-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17.13509.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=272375Download2018-04-09T12:34:01Z<p>Sgrogan: Update supported Windows Versions</p>
<hr />
<div>__NOTOC__<br />
<div id="itsfree" style="text-align:left;color:black;background:#f6f6f6;margin:1em 7em;padding:0.5em 2em;border:2px solid #a7d7f9;"><br />
<translate><br />
<!--T:1--><br />
Please note that FreeCAD has still not reached a version 1.0 status in our view, and might not be ready for production use. Nevertheless multitudes of users use it. To find out if FreeCAD is appropriate for your project, please check out the [https://forum.freecadweb.org FreeCAD forum].<br />
</translate></div><translate><br />
<br />
== Current Stable Version == <!--T:2--><br />
<br />
<!--T:3--><br />
The current stable release of FreeCAD is '''0.17.13509''' published 2018-04-06. To find out what's new, see the [[Release notes 0.17|release notes]].<br />
<br />
</translate><br />
{| align="center" cellpadding="20" style="font-size:120%"<br />
|[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13509.0258808-WIN-x86-installer.exe Windows] <small>32 bits</small><br/>[[Image:Windows.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD-0.17.13509.0258808-WIN-x64-installer.exe Windows] <small>64 bits</small> || || [[Image:Mac.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17-13509.0258808-OSX-x86_64-Qt5.dmg Mac] <small>64-bit</small> || || [[Image:AppImage-logo.png]] [https://github.com/FreeCAD/FreeCAD/releases/download/0.17/FreeCAD_0.17.13509.glibc2.17-x86_64.AppImage AppImage (Linux)] <small>64bit</small><br />
|}<br />
<translate><br />
<br />
==== Notes for Windows users ==== <!--T:5--><br />
<br />
* The 32-Bit installer (x86) supports the following versions of Windows: 7/8/10.<br />
* The 64-Bit installer (x64) supports the following versions of Windows: 7/8/10.<br />
<br />
==== Notes for Mac OS X users ==== <!--T:9--><br />
<br />
Mac OS X 10.11 ''El Capitan'' is the minimum supported version.<br />
<br />
==== Notes for GNU/Linux users ==== <!--T:6--><br />
<br />
<!--T:51--><br />
FreeCAD can be installed from most Linux distributions official repositories, but the version they provide might be quite dated and be missing many features. Instead you can download the linked AppImage above, mark it as executable and launch it without installation. Please see the [[Install on Unix]] page for more installation options, including how to get up-to-date packages for Ubuntu and derivatives .<br />
<br />
=== Development Versions === <!--T:4--><br />
<br />
FreeCAD's development is always active! Do you want to check out the 0.18 development release? Get it on the [https://github.com/FreeCAD/FreeCAD/releases FreeCAD releases] page.<br />
<br />
=== Additional Modules and Macros === <!--T:44--><br />
<br />
<!--T:52--><br />
The FreeCAD community provides a wealth of additional modules and macros. They can now easily be installed directly from within FreeCAD using the [[AddonManager|Addon manager]].<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=257235FreeCAD Configuration Management Project2018-03-03T14:11:38Z<p>Sgrogan: /* Outline */</p>
<hr />
<div>This page is describes a potential 2018 Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Linux, OSX, Windows), each Distro/OS have several distribution methods available (package managers, Libpacks, pip, Conda, AppImages, installers, etc). This makes for a particularly challenging configuration management environment.<br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.<br />
<br />
==Expected Outcome==<br />
# A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons) <br />
# A reduction in manual effort when releasing new versions of FreeCAD<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform, cross-dependency software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuild, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256755FreeCAD Configuration Management Project2018-03-02T01:07:52Z<p>Sgrogan: /* Outline */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Linux, OSX, Windows), each Distro/OS have several distribution methods available (package managers, pip, Conda, AppImages, installers, etc). This makes for a particularly challenging configuration management environment.<br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.<br />
<br />
==Expected Outcome==<br />
# A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons) <br />
# A reduction in manual effort when releasing new versions of FreeCAD<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform, cross-dependency software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuild, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256754FreeCAD Configuration Management Project2018-03-02T00:54:05Z<p>Sgrogan: /* Future Possibilities */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.<br />
<br />
==Expected Outcome==<br />
# A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons) <br />
# A reduction in manual effort when releasing new versions of FreeCAD<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform, cross-dependency software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuild, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256753FreeCAD Configuration Management Project2018-03-02T00:52:30Z<p>Sgrogan: /* Skills */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.<br />
<br />
==Expected Outcome==<br />
# A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons) <br />
# A reduction in manual effort when releasing new versions of FreeCAD<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuild, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256752FreeCAD Configuration Management Project2018-03-02T00:50:16Z<p>Sgrogan: /* Expected Outcome */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.<br />
<br />
==Expected Outcome==<br />
# A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons) <br />
# A reduction in manual effort when releasing new versions of FreeCAD<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuils, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256751FreeCAD Configuration Management Project2018-03-02T00:46:08Z<p>Sgrogan: /* Details */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.<br />
<br />
==Expected Outcome==<br />
# A reduction in manual effort when releasing new versions of FreeCAD.<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuils, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256750FreeCAD Configuration Management Project2018-03-02T00:44:08Z<p>Sgrogan: /* Skills */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required.<br />
<br />
==Expected Outcome==<br />
# A reduction in manual effort when releasing new versions of FreeCAD.<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)<br />
** build managers (cMake, make, VS, MSBuils, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256749FreeCAD Configuration Management Project2018-03-02T00:40:04Z<p>Sgrogan: /* Skills */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required.<br />
<br />
==Expected Outcome==<br />
# A reduction in manual effort when releasing new versions of FreeCAD.<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder, conda)<br />
** build managers (cMake, make, VS, MSBuils, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256748FreeCAD Configuration Management Project2018-03-02T00:39:42Z<p>Sgrogan: /* Skills */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required.<br />
<br />
==Expected Outcome==<br />
# A reduction in manual effort when releasing new versions of FreeCAD.<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder,conda)<br />
** build managers (cMake, make, VS, MSBuils, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_Configuration_Management_Project&diff=256747FreeCAD Configuration Management Project2018-03-02T00:34:07Z<p>Sgrogan: /* Skills */</p>
<hr />
<div>This page is describes a potential Google Summer of Code project regarding configuration management for the FreeCAD CAE application. <br />
<br />
==Outline==<br />
FreeCAD relies on a large number of software packages and is available on most major platforms (Windows, OSX, Linux), many versions of those platforms and several distribution methods (package managers, AppImages, build-your-own, installers, etc). This makes for a particularly challenging configuration management. <br />
<br />
==Details==<br />
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.<br />
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required.<br />
<br />
==Expected Outcome==<br />
# A reduction in manual effort when releasing new versions of FreeCAD.<br />
<br />
==Future Possibilities==<br />
This work will provide experience in the packaging and distribution of multi-platform software.<br />
<br />
==Project Properties==<br />
===Skills===<br />
*Familiarity with<br />
** package managers (Launchpad, pbuilder, gitbuilder)<br />
** build managers (cMake, make, VS, MSBuils, Nmake)<br />
** graph theory (Dependency graph)<br />
<br />
===Difficulty===<br />
Medium<br />
<br />
===Additional Information===<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Sgroganhttps://wiki.freecad.org/index.php?title=Arch_CutPlane&diff=235462Arch CutPlane2017-08-14T21:43:24Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
{{GuiCommand|Name=Arch CutPlane|Workbenches=[[Arch Module|Arch]]|MenuLocation=Arch → Cut Plane|SeeAlso=[[Arch Remove|Arch Remove]]}}<br />
<br />
==Description== <!--T:10--> <br />
<br />
<!--T:2--><br />
The Cut Plane tool allows you to cut an Arch object according to a plan:<br />
* You can cut an Arch object with the selected face, normal or opposite of the face plan.<br />
* This add a substraction component CutVolume to the Arch object<br />
<br />
<!--T:11--><br />
[[Image:Arch CutPlane example.jpg|640px]]<br />
<br />
<!--T:3--><br />
In the above image, two Arch Structure are cut with respective plane.<br />
<br />
==How to use== <!--T:4--><br />
<br />
<!--T:5--><br />
# Select the object to be cut, then the face (the face must be the last one you selected, and must be selected in the 3D-View)<br />
# Press the {{KEY|[[Image:Arch_CutPlane.svg|16px]] '''Cut Plane'''}} button<br />
# Choose if the object is cut '''behind''' the normale face or '''front''' of the normal face<br />
# Click the Ok button<br />
<br />
==Scripting== <!--T:6--><br />
<br />
<!--T:7--><br />
The CutPlane tool can by used in [[macros]] and from the python console by using the following function:<br />
</translate><br />
{{Code|code=<br />
cutComponentwithPlane (archObject,face,faceSide) <br />
}}<br />
<translate><br />
<!--T:8--><br />
* archObject is the object to cut<br />
* face is the face of an object that come the plan from <br />
* faceSide is the side of the face to cut. 0 = Behind, 1 = Front<br />
</translate><br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Glossary&diff=232069Glossary2017-06-02T22:55:11Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This page is a glossary of common FreeCAD terms and definitions. <br />
<br />
<!--T:29--><br />
Jump to letter: {{CompactTOC|center=yes}}<br />
<br />
==A== <!--T:2--><br />
{{gloss}}<br />
{{term|term=Arc}}<br />
{{defn|defn=A portion or segment of a circle.}}<br />
{{term|term=Arch|content=[[Arch_Module|Arch]]}}<br />
{{defn|defn=An abbreviation for the Architectural [[#Workbench|workbench]] which is used primarily for modelling buildings and structures. Closely related to the [[#Draft|Draft]] Workbench.}}<br />
{{term|term=Assembly}}<br />
{{defn|no=1|defn=A set of [[#Part|parts]] that have defined positions in relation to each other.}}<br />
{{defn|no=2|defn=A [[#Workbench|workbench]] which aims to facilitate the creation of assemblies. It is currently in development and not yet part of FreeCAD.}}<br />
{{term|term=Axis}}<br />
{{defn|defn=An imaginary line through the origin of the workspace. There are 3 normal axes. They have the classic names of X, Y and Z. X is side to side. Y is up and down. Z is in and out of the page/screen.}}<br />
{{glossend}}<br />
<br />
==B== <!--T:17--><br />
{{gloss}}<br />
{{term|term=Backtrace}}<br />
{{defn|defn=Output from a debugging program that displays the series of instructions FreeCAD followed before a problem occurred.}}<br />
{{term|term=Bezier Curve}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/B%C3%A9zier_curve Bezier Curve]}}<br />
{{term|term=Blueprint}}<br />
{{defn|defn=Old term used for [[#Drawing|drawing]], and coined for its original [http://en.wikipedia.org/wiki/Blueprint reproduction process].}}<br />
{{term|term=Boolean Logic}}<br />
{{defn|defn=A method of data manipulation by using of the operands: And, Or, Not.}}<br />
{{term|term=Boolean Operation}}<br />
{{defn|defn=A method of manipulating objects by using Boolean Logic. In FreeCAD, the Boolean Operations are: Union ([[#Fuse|Fuse]]), Difference ([[#Cut|Cut]]), Intersection, and Section.}}<br />
{{term|term=Boolean OPerations check}}<br />
{{defn|defn=See [[#BOPcheck|BOPcheck]].}}<br />
{{term|term=BOPcheck}}<br />
{{defn|defn=A setting that allows the Check Geometry tools in the Part WB and OpenSCAD WB to also check geometry made from [[#Boolean Logic|Boolean logic]]. The default setting is "false" (or off) but the user can enable it to provide more accuracy when running a Check Geometry, but this is at the expense of longer Check Geometry processing times. The setting is enabled by navigating to Tools > Edit Parameters > Preferences folder > Mod folder > Part folder > Check geometry folder, then double-clicking "false" in the right pane, changing the value to "true", clicking the "OK" button, clicking the "Save to disk" button, then clicking the "Close" button. A corresponding screen grab and description of how to enable BOPCheck is [http://forum.freecadweb.org/viewtopic.php?t=8031#p65914 in this forum post].}}<br />
{{term|term=brep}}<br />
{{defn|defn=Native file format for [[#Open CASCADE|Open CASCADE]] and shared by a few applications. FreeCAD can save in *.brep format.}}<br />
{{term|term=B-rep}}<br />
{{defn|defn=Stands for [http://en.wikipedia.org/wiki/B-rep boundary representation], which is one of two types of 3D models that FreeCAD supports (the other being [[#Mesh|mesh]]).}}<br />
{{term|term=BSpline}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/Spline_%28mathematics%29 BSpline]}}<br />
{{glossend}}<br />
<br />
==C== <!--T:3--><br />
{{gloss}}<br />
{{term|Callout}}<br />
{{defn|defn=String of text connected to a line pointing to an object in a [[#Drawing|drawing]].}}<br />
{{term|Chamfer}}<br />
{{defn|defn=The cutting off of an edge, at an angle, to get rid of its sharpness; a beveled edge.}}<br />
{{term|1=Clipping Plane}}<br />
{{defn|1=The clipping plane is used to cut away at the model in the 3D view. It is just a visual aid and does not actually cut the model.}}<br />
{{term|term=Clone}}<br />
{{defn|defn=A copy of an object whereby the copy remains parametric. When the original object is changed the Clone(s) also change to show modifications made to the original object.}}<br />
{{term|term=Coin}}<br />
{{defn|defn=Also called Coin3D. Third-party software library used for 3D representation by FreeCAD.}}<br />
{{term|term=COLLADA}}<br />
{{defn|defn=An interchange file format for [[#Mesh|mesh]] models. File extension is *.dae.}}<br />
{{term|term=Command|content=[https://www.freecadweb.org/wiki/index.php?title=Command Command]}}<br />
{{defn|defn=An action invoked from the [[#GUI|Gui]] when you press a toolbar button or type a keyboard shortcut or type into the python console. }}<br />
{{term|term=Compound}}<br />
{{defn|defn=Groups objects together without fusing them like a [[#Boolean Operation|boolean union]] would.}}<br />
{{term|1=Constraint}}<br />
{{defn|1=A restriction on the geometric relationship between primitives in a [[#Sketch|Sketch]]. If a constraint has a numerical value, it is referred to as Datum (e.g., a distance constraint has a numerical value - the length of an imaginary line connecting the two points). A constraint that has no numerical value is sometimes referred to as Geometric Constraint.}}<br />
{{term|term=Constructive Solid Geometry|content=[http://en.wikipedia.org/wiki/Constructive_solid_geometry Constructive Solid Geometry]}}<br />
{{defn|defn=A solid modeling method for creating shapes by using [[#Boolean Operation|boolean operations]] on [[#Primitive|primitives]].}}<br />
{{term|term=Coordinate}}<br />
{{defn|defn=A number which defines the position of an object in space in reference to a [http://en.wikipedia.org/wiki/Cartesian_coordinate_system coordinate system].}}<br />
{{term|term=Coplanar}}<br />
{{defn|defn=Existing on the same plane.}}<br />
{{term|term=CSG}}<br />
{{defn|defn=Short for [[#Constructive Solid Geometry|Constructive Solid Geometry]].}}<br />
{{term|term=Cut}}<br />
{{defn|defn=Applying a [[#Boolean Operation|boolean difference]] between shapes.}}<br />
{{glossend}}<br />
<br />
==D== <!--T:4--><br />
{{gloss}}<br />
{{term|term=DAG}}<br />
{{defn|defn=See [[#Directed Acyclic Graph|Directed Acyclic Graph.]]}} <br />
{{term|term=Degrees Of Freedom}} (abbreviated as "DOF")<br />
{{defn|defn=The number of ways geometry in a [[#Sketch|Sketch]] may vary. For example, if we have a Sketch consisting of only one point, and the point has no [[#Constraint|Constraints]] applied to it, the point has two DOF because it is free to move both vertically and horizontally. Similarly, a Sketch consisting of only a single unconstrained circle has three DOF because the circle can move vertically and horizontally and, additionally, the radius is not defined. It is good practice to constrain a Sketch until it has no DOF remaining, in which case it is said to be [[#Fully Constrained|Fully Constrained]].}}<br />
{{term|term=Dependency Graph}}<br />
{{defn|defn=A third-party graphing tool used to show how objects in a FreeCAD model use or are related to one another. For more information, refer to the [[Std_DependencyGraph|Dependency Graph Wiki page]]|.}}<br />
{{term|term=Difference}}<br />
{{defn|no=1|defn=The result of, or remainder of, a subtraction.}}<br />
{{defn|no=2|defn=A [[#Boolean operation|Boolean Operation]] in the Part Workbench which is used to subtract one geometry from another; it results in a [[#Cut|Cut]].}}<br />
{{term|term=Directed Acyclic Graph}} (abbreviated as "DAG")<br />
{{defn|defn=A type of [[#Dependency Graph|Dependency Graph]] where the relationship of objects flows in a generally linear direction from start to end with no circular dependencies. When following a DAG there is no flow from one object A to any other objects and then back to that same object A again. In FreeCAD, a graph of the model must always be a DAG.}}<br />
{{term|term=Draft}}<br />
{{defn|no=1|defn=A [[Draft_Module|FreeCAD Workbench]] used primarily for 2 dimensional work.}}<br />
{{defn|no=2|defn=A relief angle on a mold to allow removal of the finished product. See [[PartDesign Draft]].}}<br />
{{term|term=Drawing}}<br />
{{defn|no=1|defn=A [[Drawing_Module|FreeCAD Workbench]] used to generate 2D representations of a model, also called drawings.}}<br />
{{defn|no=2|defn=Describes a representation of geometry through the use of two-dimensional views. Also called plan.}}<br />
{{glossend}}<br />
<br />
==E== <!--T:18--><br />
{{gloss}}<br />
{{term|term=Edge}}<br />
{{defn|no=1|defn=A segment joining two [[#Vertex|vertices]]. This segment can be a straight line or a curve.}}<br />
{{defn|no=2|defn=The joining line between two faces. It can be curved or straight.}}<br />
{{term|term=Element}}<br />
{{defn|An item of Sketcher geometry such as a point, a line segment, an arc, a circle, etc.}}<br />
{{term|1=Extrude}}<br />
{{defn|1=A general term for extending a 2D object into 3D along 1 direction. See also [[#Pad|Pad]].}}<br />
{{glossend}}<br />
<br />
==F== <!--T:19--><br />
{{gloss}}<br />
{{term|1=Face}}<br />
{{defn|1=A 2 dimensional topological construct. For example, a cube has 6 Faces.}}<br />
{{term|term=Facet}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|term=FC}}<br />
{{defn|defn=Short for FreeCAD.}}<br />
{{term|term=FCStd}}<br />
{{defn|defn=FreeCAD native file format. File extension *.fcstd, *.FCStd}}<br />
{{term|1=Feature}}<br />
{{defn|1=A step in a 3d part's evolution in the [[PartDesign_Workbench|Part Design Workbench]] workflow. Examples are [[#Pad|Pad]], [[#Pocket|Pocket]], [[#Groove|Groove]], [[#Fillet|Fillet]], etc. As we create a model in the Part Design Workbench, each feature takes the shape of the last one and adds or removes something. Hence a "Pocket" feature is not only the pocketed hole itself, but the whole part with the pocket feature.}}<br />
{{term|term=FEM}}<br />
{{defn|defn=Finite Element Method, a [[FEM_Module|workbench]] used to solve engineering and mathematical physics problems associated with parts, assemblies and structures. }}<br />
{{term|term=Fillet}}<br />
{{defn|defn=A rounded relief or cut at an edge added for a finished appearance and to break sharp edges. See [[Part Fillet]] and [[PartDesign Fillet]].}}<br />
{{term|term=Fork}}<br />
{{defn|defn=See [[#Forked Model|Forked Model]].}}<br />
{{term|term=Forked Model}}<br />
{{defn|defn=A modeling method, usually accidental and incorrect in FreeCAD, that creates two or more versions of a model from a previous item. (Not to be confused with intentional operations like Array, Clone, PolarPattern, etc.)}}<br />
{{term|term=Frenet}}<br />
{{defn|defn=When Sweeping a profile along a 3D path, the Frenet parameter controls the orientation of the profile as it travels along the path. If Frenet is true, the profiles are oriented using the Frenet Frame (tangent,binormal,normal) of the path. If Frenet is false the profile's rotation is not restricted. [http://en.wikipedia.org/wiki/Frenet_Frame]}}<br />
{{term|term=Freetype|content=[http://www.freetype.org FreeType]}}<br />
{{defn|defn=A freely available software library used to extract information from font definition files.}}<br />
{{term|term=Frustum|content=[http://en.wikipedia.org/wiki/Frustum Frustum]}}<br />
{{defn|defn=The portion of a solid that lies between two parallel planes cutting it. Used in computer graphics to describe the three-dimensional region which is visible on the screen, the [http://en.wikipedia.org/wiki/Viewing_frustum "viewing frustum"]}}<br />
{{term|term=Fully Constrained}}<br />
{{defn|defn=In [[#Sketcher|Sketcher]], when a [[#Sketch|Sketch]] has no [[#Degrees Of Freedom|Degrees Of Freedom]], the Sketch is said to be "fully constrained" by the applied [[#Constraint|Constraints]].}}<br />
{{term|term=Fuse}}<br />
{{defn|defn=Term commonly used in FreeCAD to refer to a [[#Boolean Operation|boolean union]] of shapes.}}<br />
{{glossend}}<br />
<br />
==G== <!--T:5--><br />
{{gloss}}<br />
{{term|term=GDB or gdb}}<br />
{{defn|defn=[https://www.gnu.org/software/gdb/ '''G'''NU Project '''D'''e'''B'''ugger], a debugging program used on Unix and other 'nix operating systems in order to get a [[#Backtrace|backtrace]]. "gdb" (without the quotation marks) is also the first part of the command used to start the GDB program itself. An example of how to use GDB with FreeCAD is in [http://forum.freecadweb.org/viewtopic.php?t=7052#p56918 this forum post]}}<br />
{{term|term=Geometric modeling kernel}}<br />
{{defn|defn=Also called CAD kernel. A set of complex software libraries responsible for the creation of 3D shapes. All operations on objects (extrude, boolean operations, chamfer, fillet) rely on the geometric modeling kernel.}}<br />
{{term|term=Git}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/Distributed_revision_control Distributed revision control system] used by FreeCAD to host and manage its code base.}}<br />
{{term|term=Group}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|term=GUI}}<br />
{{defn|defn='''G'''raphical '''U'''ser '''I'''nterface. Allows users to interact with FreeCAD through graphical icons and the mouse pointer.}}<br />
{{glossend}}<br />
<br />
==H== <!--T:20--><br />
{{gloss}}<br />
{{term|term=Half_Space|content=[http://en.wikipedia.org/wiki/Half-space_%28geometry%29 Half Space]}}<br />
{{defn|defn=When a plane completely divides a 3D Euclidian space, the plane forms two half spaces.}}<br />
{{glossend}}<br />
<br />
==I== <!--T:6--><br />
{{gloss}}<br />
{{term|term=IGES}}<br />
{{defn|defn=A file format for the exchange of product data models. Files extensions are *.iges, *.igs. See also [[#STEP|STEP]].}}<br />
{{term|term=Intersection|content=[http://en.wikipedia.org/wiki/Intersection Intersection]}}<br />
{{defn|defn=That portion of two or more geometric entities that is common to all. For example, the intersection of two lines is a point.}}<br />
{{glossend}}<br />
<br />
==J== <!--T:7--><br />
{{gloss}}<br />
{{term|term=JT}}<br />
{{defn|defn=A proprietary 3D data format developed by Siemens PLM Software. FreeCAD has no support for JT at this time.}}<br />
{{glossend}}<br />
<br />
==K== <!--T:8--><br />
{{gloss}}<br />
{{term|term=KML}}<br />
{{defn|defn=Keyhole Markup Language - an XML-based geospatial 3D data definition file used by Google Earth. FreeCAD has no support for KML at this time.}}<br />
{{glossend}}<br />
<br />
==L== <!--T:9--><br />
{{gloss}}<br />
{{term|term=Line}}<br />
{{defn|defn=A straight path between two [[#Point|points]].}}<br />
{{term|term=Lock}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|term=Loft|content=[http://en.wikipedia.org/wiki/Loft_%283D%29 Loft]}}<br />
{{defn|defn=OA topological form created by linking consequetive profiles with a surface. Similar to the process used to make fabric covered aeroplanes or boats. Also the FreeCAD function for creating such a form.}}<br />
{{glossend}}<br />
<br />
==M== <!--T:10--><br />
{{gloss}}<br />
{{term|term=Macro}}<br />
{{defn|defn=A saved sequence of FreeCAD instructions, often written by end users.}}<br />
{{term|term=Manifold}}<br />
{{defn|defn=Said of a [[#Shape|shape]] that forms a perfectly enclosed volume. A familiar synonym that gives a good description is "watertight". To generate a solid, a [[#Shell|shell]] must be manifold.}}<br />
{{term|term=Mantis}}<br />
{{defn|defn=[[#Tracker|Bug tracking system]] used by the FreeCAD project.}}<br />
{{term|term=Mesh}}<br />
{{defn|defn=Type of object that can be imported or created by FreeCAD. See [http://en.wikipedia.org/wiki/Polygon_mesh Polygon mesh] for more details.}}<br />
{{term|term=Model}}<br />
{{defn|defn=Also called 3D model. Computer representation of a three-dimensional [[#Part|part]] or [[#Assembly|assembly]].}}<br />
{{term|term=MultiTransform|content=[[PartDesign_MultiTransform|MultiTransform]]}}<br />
{{defn|defn=<To be added.>}}<br />
{{glossend}}<br />
<br />
==N== <!--T:11--><br />
{{gloss}}<br />
{{term|term=Name}}<br />
{{defn|defn=An unique identifer for a FreeCAD document object. Once assigned by the program, the Name can not be easily changed. Contrast with [[#Label|Label]].}}<br />
{{term|term=Null Shape}}<br />
{{defn|defn=A [[#Shape|Shape]] property that has not been initialized by a program/macro. Usually an error condition.}}<br />
{{glossend}}<br />
<br />
==O== <!--T:12--><br />
{{gloss}}<br />
{{term|term=OCC}}<br />
{{defn|defn=Acronym for [[#Open CASCADE|Open CASCADE]]. Prior to being open sourced, it used to be named CAS.CADE (abbreviated from Computer Aided Software for Computer Aided Design and Engineering).}}<br />
{{term|term=OCE}}<br />
{{defn|defn='''O'''pen CASCADE '''C'''ommunity '''E'''dition. It provides patches, improvements and experiments contributed by users over the official [[#Open CASCADE|Open CASCADE]] library. FreeCAD is known to work on either OCC or OCE.}}<br />
{{term|term=Open CASCADE|content=[http://www.opencascade.org Open CASCADE]}}<br />
{{defn|The [[#Geometric modeling kernel|geometric modeling kernel]] (software library) underlying FreeCAD. Also called [[#OCC|OCC]] or OCCT (for Open CASCADE Technology). See also [[#OCE|OCE]].}}<br />
{{term|OpenSCAD|content=[http://www.openscad.org/ OpenSCAD]}}<br />
{{defn|defn=Name of a script-only based CAD program as well as a workbench in FreeCAD. The OpenSCAD workbench provides an interface for import/export of *.scad and *.csg models, as well as a some utility tools.}}<br />
{{term|term=Origin}}<br />
{{defn|defn=The center of the coordinate system. Everything goes out from here in either the positive or negative directions. As is our view of the universe with Earth being the “origin”.}}<br />
{{term|Orthographic}}<br />
{{defn|defn=See [http://en.wikipedia.org/wiki/Orthographic_projection Orthographic projection] and [http://en.wikipedia.org/wiki/Multiview_orthographic_projection Multiview orthographic projection].}}<br />
{{glossend}}<br />
<br />
==P== <!--T:21--><br />
{{gloss}}<br />
{{term|1=Pad}}<br />
{{defn|1=An extension of a [[#Sketch|Sketch]] in a direction perpendicular to the plane of the Sketch. See also [[#Extrude|Extrude]].}}<br />
{{term|Part}}<br />
{{defn|no=1|A [[Part_Workbench|FreeCAD Workbench]] primarily used for a [http://en.wikipedia.org/wiki/Constructive_solid_geometry Constructive Solid Geometry] workflow.}}<br />
{{defn|no=2|A unibody solid. The lowest level component in an assembly.}}<br />
{{term|Perspective}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/Graphical_projection#Perspective projection Perspective projection]}}<br />
{{term|term=Pivy|content=[http://pypi.python.org/pypi/Pivy Pivy]}}<br />
{{defn|defn=A software library that allows Python to use Coin.}}<br />
{{term|term=Placement}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|term=Planar}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|Plane}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|Plot}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|1=Pocket}}<br />
{{defn|1=A [[#Feature|Feature]] that removes material from a solid based on a [[#Sketch|Sketch]].}}<br />
{{term|1=Point}}<br />
{{defn|1=An item used to reference a single area in the 3D workspace. A “point” is dimensionless. It has a dimension on the screen, usually represented by a “dot” only so we can see where it is. See also [[#Vertex|Vertex]].}}<br />
{{term|Polygon mesh}}<br />
{{defn|defn=See [http://en.wikipedia.org/wiki/Polygonal_mesh]}}<br />
{{term|Polyline}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|POV-Ray}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/POV-Ray POV-Ray]}}<br />
{{term|PPA}}<br />
{{defn|defn=An acronym that stands for '''P'''ersonal '''P'''ackage '''A'''rchive. It's a type of software repository exclusive to the Ubuntu Linux operating system. The FreeCAD project offers the latest release as well as development versions through two PPA repositories. Updates are managed by the host system's update manager.}}<br />
{{term|Primitive}}<br />
{{defn|defn=A basic shape used in the construction of models. Some 2D primitives are: point, line, polygon, circle, ellipse, spiral, helix. 3D primitives are: box, cylinder, cone, torus, sphere, ellipsoid, prism.}}<br />
{{term|term=PySide|content=[http://www.pyside.org PySide]}}<br />
{{defn|defn=A freely available software library that allows Python to use QT.}}<br />
{{term|term=Python|content=[http://www.python.org Python]}}<br />
{{defn|defn=A programming language used in the development of FreeCAD as well as in user-written [[#Macro|macros]] or scripts.}}<br />
{{glossend}}<br />
<br />
==Q== <!--T:13--><br />
{{gloss}}<br />
{{term|term=Qt|content=[http://qt-project.org Qt]}}<br />
{{defn|1=A cross-platform application and user interface framework. Also Qt4.}}<br />
{{glossend}}<br />
<br />
==R== <!--T:22--><br />
{{gloss}}<br />
{{term|Raytracing}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/Ray_tracing_%28graphics%29 Ray tracing]}}<br />
{{term|Revolve}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|Robot}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/Industrial_robot Industrial robot]}}<br />
{{term|Rotate}}<br />
{{defn|defn=<To be added.>}}<br />
{{glossend}}<br />
<br />
==S== <!--T:14--><br />
{{gloss}}<br />
{{term|Section}}<br />
{{defn|defn=[http://en.wikipedia.org/wiki/Cross_section_%28geometry%29 Cross section (geometry)]}}<br />
{{term|Self Intersection}}<br />
{{defn|defn=A condition where a curve crosses over itself (ex.'8','&'). This confuses geometric kernel algorithms and generally produces an error condition.}}<br />
{{term|Shape}}<br />
{{defn|defn=Generic term used in FreeCAD to describe most elements (except for [[#Mesh|meshes]]).}}<br />
{{term|Shell}}<br />
{{defn|defn=Shape made of two or more contiguous [[#Face|faces]]. A [[#Manifold|manifold]] (enclosed) shell can be converted into a solid.}}<br />
{{term|1=Sketch}}<br />
{{defn|1=A constrained 2D depiction of an object fixed to a plane or a [[#Face|Face]]. In FreeCAD a Sketch is always a 2-dimensional object somewhere in the 3D space.}}<br />
{{term|Sketcher|content=[[Sketcher_Module|Sketcher]]}}<br />
{{defn|A [[#Workbench|workbench]] used to create 2D geometry by use of [[#Constraint|constraints]].}}<br />
{{term|Sketcher Solver}}<br />
{{defn|defn=The internal FreeCAD mechanism that calculates interdependencies and effects of adding, deleting, and modifying geometry and associated constraints in each Sketch. Sketcher Solver also calculates the arrangement of all geometry in each Sketch so it can be displayed correctly.}}<br />
{{term|Smooth Line}}<br />
{{defn|defn=In a Drawing, a line indicating a change between tangent surfaces, as in the transition from a flat surface to a fillet. Also "tangent edge". See [http://www.freecadweb.org/wiki/index.php?title=Drawing_View#Modify_an_existing_view Drawing View]}}<br />
{{term|Solver}}<br />
{{defn|defn=See [[#Sketcher Solver|Sketcher Solver]].}}<br />
{{term|1=Stable}}<br />
{{defn|1=A nickname for the last general release version of the FreeCAD software. This is typically the version available from sources other than the FreeCAD project. Compare with [[#Unstable|Unstable]].}}<br />
{{term|STL}}<br />
{{defn|''STereoLithography'', also known as ''Standard Tessellation Language.'' A [[#Mesh|mesh]] file format defining only the surface of a 3D object. File extensions is *.stl}}<br />
{{term|term=STEP}}<br />
{{defn|defn=An ISO standard (ISO 10303) for the exchange of 3D data and product manufacturing information. It replaces [[#IGES|IGES]]. File extensions are *.step, *.stp.}}<br />
{{term|SVG}}<br />
{{defn|'''S'''calable '''V'''ector '''G'''raphics. A vector graphics file format.}}<br />
{{term|term=Sweep}}<br />
{{defn|defn=A 3D shape generated from at least one 2D cross-section that traces along a trajectory (path). Commonly used to define the tool as well as the created shape. See [http://en.wikipedia.org/wiki/Solid_modeling#Sweeping Solid modeling]}}<br />
{{glossend}}<br />
<br />
==T== <!--T:15--><br />
{{gloss}}<br />
{{term|term=Task panel}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|term=Thickness}}<br />
{{defn|no=1|defn=A measure of how thick a shape is.}}<br />
{{defn|no=2|A [[Part Workbench]] tool to hollow out a solid and leave a defined uniform thickness.}}<br />
{{term|Toggle}}<br />
{{defn|defn=A setting that can be changed between two options, for example between True or False or between Off and On.}}<br />
{{term|Topological Naming}}<br />
{{defn|A scheme whereby an edge or face, once created, is assigned a permanent name. Internally, FreeCAD identifies edges and faces on a solid by numbering them such as: Edge1, Edge2, Face1, Face2, etc. The problem is that these IDs are somewhat randomly applied, and they will change after something is done to the model that changes the amount of edges and faces. For example, if the model is revised an item linked to a Face2 could later erroneously become linked to a different face (which was renamed to become the new Face2), causing the user unwanted results. As of the FreeCAD 0.16 release Topological Naming has not yet been implemented, and so if an object is modified such that the number of edges or faces changes, the names of the edges or faces of that object might change too.}}<br />
{{term|Torus}}<br />
{{defn|A primitive shape.}}<br />
{{term|term=Tracker}}<br />
{{defn|defn=Short for bug tracker, the online software application used to keep track of reported bugs or feature requests. See also [[#Mantis|Mantis]].}}<br />
{{glossend}}<br />
<br />
==U== <!--T:23--><br />
{{gloss}}<br />
{{term|Union}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|1=Unstable}}<br />
{{defn|1=A nickname for a very recent version of the FreeCAD software. This version will contain many changes recently implemented by the developers. It does not typically fail or produce wrong results, but it has not completed testing.}}<br />
{{term|Upgrade}}<br />
{{defn|defn=<To be added.>}}<br />
{{glossend}}<br />
<br />
==V== <!--T:24--><br />
{{gloss}}<br />
{{term|term=Vector}}<br />
{{defn|defn=A magnitude with a direction. Often represented graphically as an arrow in 2 or 3 dimensions. For example, "fifty paces north", "9.8 m/s^2 down", and "(3,5,6) units in the x, y, z, direction, respectively" are all vectors. In FreeCAD, they are most often denoted as ordered pairs (x, y) or ordered triples (x, y, z).}}<br />
{{term|term=Vertex}}<br />
{{defn|defn=A lone [[#Point|point]] in space, or the corner of a shape where [[#Edge|edges]] meet.}}<br />
{{glossend}}<br />
<br />
==W== <!--T:25--><br />
{{gloss}}<br />
{{term|term=WB}}<br />
{{defn|defn=Short for [[#Workbenches|workbench]]}}<br />
{{term|term=Wire}}<br />
{{defn|defn=<To be added.>}}<br />
{{term|term=Workbench}}<br />
{{defn|defn=Also called module, the [[#Workbenches|workbench]] groups a set of tools dedicated for a specific task.}}<br />
{{glossend}}<br />
<br />
==X== <!--T:16--><br />
{{gloss}}<br />
{{term|X}}<br />
{{defn|Commonly refers to the X [[#Axis|axis]].}}<br />
{{glossend}}<br />
<br />
==Y== <!--T:26--><br />
{{gloss}}<br />
{{term|Y}}<br />
{{defn|Commonly refers to the Y [[#Axis|axis]].}}<br />
{{glossend}}<br />
<br />
==Z== <!--T:27--><br />
{{gloss}}<br />
{{term|term=Z}}<br />
{{defn|Commonly refers to the Z [[#Axis|axis]].}}<br />
{{glossend}}<br />
<br />
<br />
<!--T:28--><br />
{{clear}}<br />
[[Category:User Documentation]]<br />
[[Category:Wiki]]<br />
</translate><br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Extra_python_modules&diff=224975Extra python modules2017-03-14T11:55:45Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This page lists several additional python modules or other pieces of software that can be downloaded freely from the internet, and add functionality to your FreeCAD installation.<br />
<br />
== PySide (previously PyQt4) == <!--T:2--><br />
* homepage (PySide): [http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide]<br />
* license: LGPL <br />
* optional, but needed by several modules: Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet<br />
<br />
<!--T:3--><br />
PySide (previously PyQt) is required by several modules of FreeCAD to access FreeCAD's Qt interface. It is already bundled in the windows verison of FreeCAD, and is usually installed automatically by FreeCAD on Linux, when installing from official repositories. If those modules (Draft, Arch, etc) are enabled after FreeCAD is installed, it means PySide (previously PyQt) is already there, and you don't need to do anything more.<br />
<br />
<!--T:4--><br />
'''Note:''' FreeCAD progressively moved away from PyQt after version 0.13, in favour of [http://qt-project.org/wiki/PySide PySide], which does exactly the same job but has a license (LGPL) more compatible with FreeCAD.<br />
<br />
=== Installation === <!--T:5--><br />
<br />
==== Linux ==== <!--T:6--><br />
The simplest way to install PySide is through your distribution's package manager. On Debian/Ubuntu systems, the package name is generally ''python-PySide'', while on RPM-based systems it is named ''pyside''. The necessary dependencies (Qt and SIP) will be taken care of automatically.<br />
<br />
==== Windows ==== <!--T:7--><br />
The program can be downloaded from http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads . You'll need to install the Qt and SIP libraries before installing PySide (to be documented).<br />
<br />
==== MacOSX ==== <!--T:8--><br />
PyQt on Mac can be installed via homebrew or port. See [[CompileOnMac#Install_Dependencies]] for more information. <br />
<br />
=== Usage === <!--T:9--><br />
Once it is installed, you can check that everything is working by typing in FreeCAD python console:<br />
</translate><br />
{{Code|code=<br />
import PySide<br />
}}<br />
<translate><br />
<!--T:10--><br />
To access the FreeCAD interface, type :<br />
</translate><br />
{{Code|code=<br />
from PySide import QtCore,QtGui<br />
FreeCADWindow = FreeCADGui.getMainWindow()<br />
}}<br />
<translate><br />
<!--T:11--><br />
Now you can start to explore the interface with the dir() command. You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget)<br />
}}<br />
<translate><br />
<!--T:12--><br />
Working with Unicode :<br />
</translate><br />
{{Code|code=<br />
text = text.encode('utf-8')<br />
}}<br />
<translate><br />
<!--T:13--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Read a txt file", path, "*.txt")<br />
}}<br />
<translate><br />
<!--T:14--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Save a file txt", path, "*.txt")<br />
}}<br />
<translate><br />
===Example of transition from PyQt4 and PySide=== <!--T:15--><br />
<br />
<!--T:16--><br />
PS: these examples of errors were found in the transition PyQt4 to PySide and these corrections were made, other solutions are certainly available with the examples above<br />
</translate><br />
{{Code|code=<br />
try:<br />
import PyQt4 # PyQt4<br />
from PyQt4 import QtGui ,QtCore # PyQt4<br />
from PyQt4.QtGui import QComboBox # PyQt4<br />
from PyQt4.QtGui import QMessageBox # PyQt4<br />
from PyQt4.QtGui import QTableWidget, QApplication # PyQt4<br />
from PyQt4.QtGui import * # PyQt4<br />
from PyQt4.QtCore import * # PyQt4<br />
except Exception:<br />
import PySide # PySide<br />
from PySide import QtGui ,QtCore # PySide<br />
from PySide.QtGui import QComboBox # PySide<br />
from PySide.QtGui import QMessageBox # PySide<br />
from PySide.QtGui import QTableWidget, QApplication # PySide<br />
from PySide.QtGui import * # PySide<br />
from PySide.QtCore import * # PySide<br />
}}<br />
<translate><br />
<!--T:17--><br />
To access the FreeCAD interface, type :<br />
You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
myNewFreeCADWidget = QtGui.QDockWidget() # create a new dockwidget<br />
myNewFreeCADWidget.ui = Ui_MainWindow() # myWidget_Ui() # load the Ui script<br />
myNewFreeCADWidget.ui.setupUi(myNewFreeCADWidget) # setup the ui<br />
try:<br />
app = QtGui.qApp # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw = app.activeWindow() # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
except Exception:<br />
FCmw = FreeCADGui.getMainWindow() # PySide # the active qt window, = the freecad window since we are inside it <br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
}}<br />
<translate><br />
<!--T:18--><br />
Working with Unicode : <br />
</translate><br />
{{Code|code=<br />
try:<br />
text = unicode(text, 'ISO-8859-1').encode('UTF-8') # PyQt4<br />
except Exception:<br />
text = text.encode('utf-8') # PySide<br />
}}<br />
<translate><br />
<!--T:19--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
OpenName = ""<br />
try:<br />
OpenName = QFileDialog.getOpenFileName(None,QString.fromLocal8Bit("Lire un fichier FCInfo ou txt"),path,"*.FCInfo *.txt") # PyQt4<br />
except Exception:<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Lire un fichier FCInfo ou txt", path, "*.FCInfo *.txt")#PySide<br />
}}<br />
<translate><br />
<!--T:20--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
SaveName = ""<br />
try:<br />
SaveName = QFileDialog.getSaveFileName(None,QString.fromLocal8Bit("Sauver un fichier FCInfo"),path,"*.FCInfo") # PyQt4<br />
except Exception:<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Sauver un fichier FCInfo", path, "*.FCInfo")# PySide<br />
}}<br />
<translate><br />
<!--T:21--><br />
The MessageBox:<br />
</translate><br />
{{Code|code=<br />
def errorDialog(msg):<br />
diag = QtGui.QMessageBox(QtGui.QMessageBox.Critical,u"Error Message",msg )<br />
try:<br />
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before<br />
except Exception: <br />
diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint)# PySide # this function sets the window before<br />
# diag.setWindowModality(QtCore.Qt.ApplicationModal) # function has been disabled to promote "WindowStaysOnTopHint"<br />
diag.exec_()<br />
}}<br />
<translate><br />
<!--T:22--><br />
Working with setProperty (PyQt4) and setValue (PySide)<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setProperty("value", 10.0) # PyQt4<br />
}}<br />
<translate><br />
<!--T:23--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setValue(10.0) # PySide<br />
}}<br />
<translate><br />
<!--T:24--><br />
Working with setToolTip<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4<br />
}}<br />
<translate><br />
<!--T:25--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide <br />
}}<br />
<translate><br />
<!--T:26--><br />
or :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(u"Coordinate placement Axis Y.")# PySide<br />
}}<br />
<translate><br />
=== Additional documentation === <!--T:27--><br />
Some pyQt4 tutorials (including how to build interfaces with Qt Designer to use with python):<br />
* http://pyqt.sourceforge.net/Docs/PyQt4/classes.html - the PyQt4 API Reference on sourceforge<br />
* http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ - a simple introduction<br />
* http://www.zetcode.com/tutorials/pyqt4/ - very complete in-depth tutorial<br />
<br />
== Pivy == <!--T:28--><br />
* homepage: [https://bitbucket.org/Coin3D/coin/wiki/Home https://bitbucket.org/Coin3D/coin/wiki/Home]<br />
* license: BSD<br />
* optional, but needed by several modules of FreeCAD: Draft, Arch<br />
<br />
<!--T:29--><br />
Pivy is a needed by several modules to access the 3D view of FreeCAD. On windows, Pivy is already bundled inside the FreeCAD installer, and on Linux it is usually automatically installed when you install FreeCAD from an official repository. On MacOSX, unfortunately, you will need to compile pivy yourself.<br />
<br />
=== Installation === <!--T:30--><br />
<br />
==== Prerequisites ==== <!--T:31--><br />
I believe before compiling Pivy you will want to have Coin and SoQt installed.<br />
<br />
<!--T:32--><br />
I found for building on Mac it was sufficient to install the [http://www.coin3d.org/lib/plonesoftwarecenter_view Coin3 binary package]. Attempting to install coin from MacPorts was problematic: tried to add a lot of X Windows packages and ultimately crashed with a script error.<br />
<br />
<!--T:33--><br />
For Fedora I found an RPM with Coin3.<br />
<br />
<!--T:34--><br />
SoQt compiled from [http://www.coin3d.org/lib/soqt/releases/1.5.0 source] fine on Mac and Linux.<br />
<br />
==== Debian & Ubuntu ==== <!--T:35--><br />
Starting with Debian Squeeze and Ubuntu Lucid, pivy will be available directly from the official repositories, saving us a lot of hassle. In the meantime, you can either download one of the packages we made (for debian and ubuntu karmic) availables on the [[Download]] pages, or compile it yourself.<br />
<br />
<!--T:36--><br />
The best way to compile pivy easily is to grab the debian source package for pivy and make a package with debuild. It is the same source code from the official pivy site, but the debian people made several bug-fixing additions. It also compiles fine on ubuntu karmic: http://packages.debian.org/squeeze/python-pivy download the .orig.gz and the .diff.gz file, then unzip both, then apply the .diff to the source: go to the unzipped pivy source folder, and apply the .diff patch:<br />
</translate><br />
{{Code|code=<br />
patch -p1 < ../pivy_0.5.0~svn765-2.diff<br />
}}<br />
<translate><br />
<!--T:37--><br />
then<br />
</translate><br />
{{Code|code=<br />
debuild<br />
}}<br />
<translate><br />
<!--T:38--><br />
to have pivy properly built into an official installable package. Then, just install the package with gdebi.<br />
<br />
==== Other linux distributions ==== <!--T:39--><br />
First get the latest sources from the [http://pivy.coin3d.org/mercurial/ project's repository]:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:40--><br />
As of March 2012, the latest version is Pivy-0.5.<br />
<br />
<!--T:41--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. Pivy-0.5 reports that it has only been tested with SWIG 1.3.31, 1.3.33, 1.3.35, and 1.3.40. So you can download a source tarball for one of these old versions from [http://www.swig.org http://www.swig.org]. Then unpack it and from a command line do (as root):<br />
</translate><br />
{{Code|code=<br />
./configure<br />
make<br />
make install (or checkinstall if you use it)<br />
}}<br />
<translate><br />
<!--T:42--><br />
It takes just a few seconds to build. <br />
<br />
<!--T:43--><br />
Alternatively, you can try building with a more recent SWIG. As of March 2012, a typical repository version is 2.0.4. Pivy has a minor compile problem with SWIG 2.0.4 on Mac OS (see below) but seems to build fine on Fedora Core 15.<br />
<br />
<!--T:44--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate><br />
<!--T:45--><br />
which creates the source files. Note that build can produce thousands of warnings, but hopefully there will be no errors.<br />
<br />
<!--T:46--><br />
This is probably obsolete, but you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
<br />
<!--T:47--><br />
After that, install by issuing (as root):<br />
</translate><br />
{{Code|code=<br />
python setup.py install (or checkinstall python setup.py install)<br />
}}<br />
<translate><br />
<!--T:48--><br />
That's it, pivy is installed.<br />
<br />
==== Mac OS ==== <!--T:49--><br />
These instructions may not be complete. Something close to this worked for OS 10.7 as of March 2012. I use MacPorts for repositories, but other options should also work.<br />
<br />
<!--T:50--><br />
As for linux, get the latest source:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:51--><br />
If you don't have hg, you can get it from MacPorts:<br />
</translate><br />
{{Code|code=<br />
port install mercurial<br />
}}<br />
<translate><br />
<!--T:52--><br />
Then, as above you need SWIG. It should be a matter of:<br />
</translate><br />
{{Code|code=<br />
port install swig<br />
}}<br />
<translate><br />
<!--T:53--><br />
I found I needed also:<br />
</translate><br />
{{Code|code=<br />
port install swig-python<br />
}}<br />
<translate><br />
<!--T:54--><br />
As of March 2012, MacPorts SWIG is version 2.0.4. As noted above for linux, you might be better off downloading an older version. SWIG 2.0.4 seems to have a bug that stops Pivy building. See first message in this digest: https://sourceforge.net/mailarchive/message.php?msg_id=28114815<br />
<br />
<!--T:55--><br />
This can be corrected by editing the 2 source locations to add dereferences: *arg4, *arg5 in place of arg4, arg5. Now Pivy should build:<br />
</translate><br />
{{Code|code=<br />
python setup.py build<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
==== Windows ==== <!--T:56--><br />
Assuming you are using Visual Studio 2005 or later you should open a command prompt with 'Visual Studio 2005 Command prompt' from the Tools menu.<br />
If the Python interpreter is not yet in the system path do<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_python_2.5;%PATH%<br />
}}<br />
<translate><br />
<!--T:57--><br />
To get pivy working you should get the latest sources from the project's repository:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy <br />
}}<br />
<translate><br />
<!--T:58--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. It is recommended to use version 1.3.25 of SWIG, not the latest version, because at the moment pivy will only function correctly with 1.3.25. Download the binaries for 1.3.25 from [http://www.swig.org http://www.swig.org]. Then unpack it and from the command line add it to the system path<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_swig_1.3.25;%PATH%<br />
}}<br />
<translate><br />
<!--T:59--><br />
and set COINDIR to the appropriate path<br />
</translate><br />
{{Code|code=<br />
set COINDIR=path_to_coin<br />
}}<br />
<translate><br />
<!--T:60--><br />
On Windows the pivy config file expects SoWin instead of SoQt as default. I didn't find an obvious way to build with SoQt, so I modified the file setup.py directly.<br />
In line 200 just remove the part 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') (do not remove the closing parenthesis).<br />
<br />
<!--T:61--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate> <br />
<!--T:62--><br />
which creates the source files. You may run into a compiler error several header files couldn't be found. In this case adjust the INCLUDE variable<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_coin_include_dir<br />
}}<br />
<translate><br />
<!--T:63--><br />
and if the SoQt headers are not in the same place as the Coin headers also<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_soqt_include_dir<br />
}}<br />
<translate><br />
<!--T:64--><br />
and finally the Qt headers<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt<br />
}}<br />
<translate><br />
<!--T:65--><br />
If you are using the Express Edition of Visual Studio you may get a python keyerror exception.<br />
In this case you have to modify a few things in msvccompiler.py located in your python installation.<br />
<br />
<!--T:66--><br />
Go to line 122 and replace the line<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:67--><br />
with<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VCExpress\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:68--><br />
Then retry again.<br />
If you get a second error like <br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio 2003;...<br />
}}<br />
<translate><br />
<!--T:69--><br />
you must also replace line 128<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")<br />
}}<br />
<translate><br />
<!--T:70--><br />
with<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")<br />
}}<br />
<translate><br />
<!--T:71--><br />
Retry once again. If you get again an error like<br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio version 8.0, and extensions need to be built with the same version of the compiler, but it isn't installed.<br />
}}<br />
<translate><br />
<!--T:72--><br />
then you should check the environment variables DISTUTILS_USE_SDK and MSSDK with<br />
</translate><br />
{{Code|code=<br />
echo %DISTUTILS_USE_SDK%<br />
echo %MSSDK%<br />
}}<br />
<translate><br />
<!--T:73--><br />
If not yet set then just set it e.g. to 1<br />
</translate><br />
{{Code|code=<br />
set DISTUTILS_USE_SDK=1<br />
set MSSDK=1<br />
}}<br />
<translate><br />
<!--T:74--><br />
Now, you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
After that copy the generated pivy directory to a place where the python interpreter in FreeCAD can find it.<br />
<br />
=== Usage === <!--T:75--><br />
To check if Pivy is correctly installed:<br />
</translate><br />
{{Code|code=<br />
import pivy<br />
}}<br />
<translate><br />
<!--T:76--><br />
To have Pivy access the FreeCAD scenegraph do the following: <br />
</translate><br />
{{Code|code=<br />
from pivy import coin<br />
App.newDocument() # Open a document and a view <br />
view = Gui.ActiveDocument.ActiveView <br />
FCSceneGraph = view.getSceneGraph() # returns a pivy Python object that holds a SoSeparator, the main "container" of the Coin scenegraph<br />
FCSceneGraph.addChild(coin.SoCube()) # add a box to scene <br />
}}<br />
<translate><br />
<!--T:77--><br />
You can now explore the FCSceneGraph with the dir() command.<br />
<br />
=== Additonal Documentation === <!--T:78--><br />
Unfortunately documentation about pivy is still almost inexistant on the net. But you might find Coin documentation useful, since pivy simply translate Coin functions, nodes and methods in python, everything keeps the same name and properties, keeping in mind the difference of syntax between C and python:<br />
<br />
<!--T:79--><br />
* https://bitbucket.org/Coin3D/coin/wiki/Documentation - Coin3D API Reference<br />
* http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - The "bible" of Inventor scene description language.<br />
<br />
<!--T:80--><br />
You can also look at the Draft.py file in the FreeCAD Mod/Draft folder, since it makes big use of pivy.<br />
<br />
== pyCollada == <!--T:81--><br />
* homepage: http://pycollada.github.com<br />
* license: BSD<br />
* optional, needed to enable import and export of Collada (.DAE) files<br />
<br />
<!--T:82--><br />
pyCollada is a python library that allow programs to read and write [http://en.wikipedia.org/wiki/COLLADA Collada (*.DAE)] files. When pyCollada is installed on your system, FreeCAD will be able to handle importing and exporting in the Collada file format.<br />
<br />
=== Installation === <!--T:83--><br />
Pycollada is usually not yet available in linux distributions repositories, but since it is made only of python files, it doesn't require compilation, and is easy to install. You have 2 ways, or directly from the official pycollada git repository, or with the easy_install tool.<br />
<br />
==== Linux ==== <!--T:84--><br />
In either case, you'll need the following packages already installed on your system:<br />
</translate><br />
{{Code|code=<br />
python-lxml <br />
python-numpy<br />
python-dateutil<br />
}}<br />
<translate><br />
===== From the git repository ===== <!--T:85--><br />
</translate><br />
{{Code|code=<br />
git clone git://github.com/pycollada/pycollada.git pycollada<br />
cd pycollada<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
===== With easy_install ===== <!--T:86--><br />
Assuming you have a complete python installation already, the easy_install utility should be present already:<br />
</translate><br />
{{Code|code=<br />
easy_install pycollada<br />
}}<br />
<translate><br />
<!--T:87--><br />
You can check if pycollada was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import collada<br />
}}<br />
<translate><br />
<!--T:88--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:89--><br />
<br />
<!--T:90--><br />
On Windows since 0.15 pycollada is included in both the FreeCAD release and developer builds so no additional steps are necessary.<br />
<br />
==== Mac OS ==== <!--T:92--><br />
<br />
<!--T:93--><br />
If you are using the Homebrew build of FreeCAD you can install pycollada into your system Python using pip.<br />
<br />
<!--T:94--><br />
If you need to install pip:<br />
</translate><br />
{{Code|code=<br />
$ sudo easy_install pip<br />
}}<br />
<translate><br />
<!--T:95--><br />
Install pycollada:<br />
</translate><br />
{{Code|code=<br />
$ sudo pip install pycollada<br />
}}<br />
<translate><br />
<!--T:96--><br />
If you are using a binary version of FreeCAD, you can tell pip to install pycollada into the site-packages inside FreeCAD.app:<br />
</translate><br />
{{Code|code=<br />
$ pip install --target="/Applications/FreeCAD.app/Contents/lib/python2.7/site-packages" pycollada<br />
}}<br />
or after downloading the pycollada code<br />
{{Code|code=<br />
$ export PYTHONPATH=/Applications/FreeCAD\ 0.16.6706.app/Contents/lib/python2.7/site-packages:$PYTHONPATH<br />
$ python setup.py install --prefix=/Applications/FreeCAD\ 0.16.6706.app/Contents<br />
}}<br />
<translate><br />
<br />
== IfcOpenShell == <!--T:97--><br />
<br />
<!--T:98--><br />
* homepage: http://www.ifcopenshell.org<br />
* license: LGPL<br />
* optional, needed to extend import abilities of IFC files<br />
<br />
<!--T:99--><br />
IFCOpenShell is a library currently in development, that allows to import (and soon export) [http://en.wikipedia.org/wiki/Industry_Foundation_Classes Industry foundation Classes (*.IFC)] files. IFC is an extension to the STEP format, and is becoming the standard in [http://en.wikipedia.org/wiki/Building_information_modeling BIM] workflows. When ifcopenshell is correctly installed on your system, the FreeCAD [[Arch Module]] will detect it and use it to import IFC files, instead of its built-in rudimentary importer. Since ifcopenshell is based on OpenCasCade, like FreeCAD, the quality of the import is very high, producing high-quality solid geometry.<br />
<br />
=== Installation === <!--T:100--><br />
Since ifcopenshell is pretty new, you'll likely need to compile it yourself.<br />
<br />
==== Linux ==== <!--T:101--><br />
You will need a couple of development packages installed on your system in order to compile ifcopenshell:<br />
</translate><br />
{{Code|code=<br />
liboce-*-dev<br />
python-dev<br />
swig<br />
}}<br />
<translate><br />
<!--T:102--><br />
but since FreeCAD requires all of them too, if you can compile FreeCAD, you won't need any extra dependency to compile IfcOpenShell.<br />
<br />
<!--T:103--><br />
Grab the latest source code from here:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.code.sf.net/p/ifcopenshell/svn/trunk ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:120--><br />
or<br />
</translate><br />
{{Code|code=<br />
svn co https://ifcopenshell.svn.sourceforge.net/svnroot/ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:104--><br />
The build process is very easy:<br />
</translate><br />
{{Code|code=<br />
mkdir ifcopenshell-build<br />
cd ifcopenshell-build<br />
cmake ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:105--><br />
or, if you are using oce instead of opencascade:<br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake <br />
}}<br />
<translate><br />
<!--T:106--><br />
Since ifcopenshell is made primarily for Blender, it uses python3 by default. To use it inside FreeCAD, you need to compile it against the same version of python that is used by FreeCAD. So you might need to force the python version with additional cmake parameters (adjust the python version to yours): <br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:107--><br />
Then:<br />
</translate><br />
{{Code|code=<br />
make<br />
sudo make install<br />
}}<br />
<translate><br />
<!--T:108--><br />
You can check that ifcopenshell was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import IfcImport<br />
}}<br />
<translate><br />
<!--T:109--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:110--><br />
<br />
<!--T:111--><br />
''Copied from the IfcOpenShell README file''<br />
<br />
<!--T:112--><br />
Users are advised to use the Visual Studio .sln file in the win/ folder. For Windows users a prebuilt Open CASCADE version is available from the http://opencascade.org website. Download and install this version and provide the paths to the Open CASCADE header and library files to MS Visual Studio C++.<br />
<br />
<!--T:113--><br />
For building the IfcPython wrapper, SWIG needs to be installed. Please download the latest swigwin version from http://www.swig.org/download.html . After extracting the .zip file, please add the extracted folder to the PATH environment variable. Python needs to be installed, please provide the include and library paths to Visual Studio.<br />
<br />
===Links=== <!--T:121--><br />
Tutorial [[Import/Export_IFC_-_compiling_IfcOpenShell|Import/Export IFC - compiling IfcOpenShell]]<br />
<br />
== Teigha Converter == <!--T:114--><br />
<br />
<!--T:115--><br />
* homepage: http://www.opendesign.com/guestfiles/Teigha_File_Converter<br />
* license: freeware<br />
* optional, used to enable import and export of DWG files<br />
<br />
<!--T:116--><br />
The Teigha Converter is a small freely available utility that allows to convert between several versions of DWG and DXF files. FreeCAD can use it to offer DWG import and export, by converting DWG files to the DXF format under the hood,then using its standard DXF importer to import the file contents. The restrictions of the [[Draft_DXF|DXF importer]] apply.<br />
<br />
=== Installation === <!--T:117--><br />
On all platforms, only by installing the appropriate package from http://www.opendesign.com/guestfiles/Teigha_File_Converter . After installation, if the utility is not found automatically by FreeCAD, you might need to set the path to the converter executable manually, Change workbench to "Draft", than in the menu Edit -> Preferences -> Import/Export -> DWG and fill "Path to Teigha File Converter" appropriately. <br />
<br />
<!--T:118--><br />
{{docnav|Localisation|Source documentation}}<br />
<br />
<!--T:119--><br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_and_DWG_Import&diff=224950FreeCAD and DWG Import2017-03-14T11:19:32Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
== Why Can't I Import DWG Files into FreeCAD? == <!--T:1--><br />
The DWG format is a closed source binary file format that is not directly supported by FreeCAD. It requires an external 3rd party file converter to first convert then import the conversion into FreeCAD for use.<br />
<br />
== What Do I Need To Be Able To Import DWG Files? == <!--T:2--><br />
<br />
===Teigha Converter=== <!--T:3--><br />
* homepage: https://www.opendesign.com/guestfiles/teigha_file_converter<br />
* license: freeware<br />
* optional, used to enable import and export of DWG files<br />
<br />
<!--T:4--><br />
The Teigha Converter is a small freely available utility that allows to convert between several versions of DWG and DXF files. FreeCAD can use it to offer DWG import and export, by converting DWG files to the DXF format under the hood,then using its standard DXF importer to import the file contents. The restrictions of the [[Draft_DXF|DXF importer]] apply.<br />
<br />
====Installation==== <!--T:5--><br />
On all platforms, only by installing the appropriate package from https://www.opendesign.com/guestfiles/teigha_file_converter . After installation, if the utility is not found automatically by FreeCAD, you might need to set the path to the converter executable manually. Change workbench to "Draft", than in the menu Edit -> Preferences -> Import/Export -> DWG and fill "Path to Teigha File Converter" appropriately. <br />
<br />
<!--T:18--><br />
For more detailed instruction see [http://www.freecadweb.org/wiki/index.php?title=Dxf_Importer_Install#Third_step: this tutorial].<br />
<br />
====Usage==== <!--T:14--><br />
The program may be used with the command line interface or the graphical interface.<br />
Be sure to convert the dwg-files to an ASCII-Format.<br />
<br />
<!--T:15--><br />
Command Line Format is:<br />
# Quoted Input Folder<br />
# Quoted Output Folder<br />
# Output_version {"ACAD9","ACAD10","ACAD12", "ACAD13","ACAD14", "ACAD2000","ACAD2004", "ACAD2007","ACAD2010"}<br />
# Output File type {"DWG","DXF","DXB"}<br />
# Recurse Input Folder {"0","1"}<br />
# Audit each file {"0","1"}<br />
# [optional] Input file filter (default:"*.DWG;*.DXF")<br />
<br />
<!--T:16--><br />
'''Example for Linux'''<br /><br />
TeighaFileConverter "/home/dwg-data" "/home/dxf-data" "ACAD2010" "DXF" "0" "1" "test.dwg"<br />
The second number (audit) needs to be 1 otherwise it fails <br />
<br />
<!--T:17--><br />
'''Example for Windows'''<br /><br />
"C:\Program Files\ODA\Teigha File Converter 3.08.2\TeighaFileConverter.exe" "Path-To-Input-Directory" "Path-To-Output-Directory" "ACAD2010" "DXF" "0" "1" "Name-Of-A-Test-File.dwg"<br />
<br />
== What Are The Alternatives? == <!--T:6--><br />
<br />
===DraftSight=== <!--T:7--><br />
There is a free commercial program called Draft Sight (http://www.3ds.com/products-services/draftsight/overview/) that can import most DWG files and can save and export in formats that are friendly to FreeCAD.<br />
Draftsight runs on<br />
* Windows 32 bit<br />
* Windows 64 bit<br />
* Mac OS X<br />
* Linux Fedora<br />
* Linux Ubuntu<br />
A free registration is required for activation of the program.<br />
<br />
===DoubleCAD XT=== <!--T:13--><br />
There is also DoubleCAD XT (http://www.doublecad.com/DoubleCAD/DoubleCAD-XT-v5) .<br />
The program is free for personal and commercial use.<br />
It requires a free sign-up to receive an activation code via E-Mail.<br />
This Program is windows-only.<br />
<br />
===Export Your AutoCAD files in Friendly Format=== <!--T:8--><br />
Exporting your AutoCAD files in a more FreeCAD friendly format, like DXF R12 or R14, SVG, and if version supports it, IGES. All are better alternatives to the DWG format when using FreeCAD. <br />
<br />
<!--T:9--><br />
It is important to know that, contrarily to popular belief, there is no difference between the contents of a file saved in DWG or DXF formats, provided it is the same version (ex. DWG 2014 vs. DXF 2014). Both formats are maintained by Autodesk, and they both support exactly the same features. The difference is that DWG is closed (machine-encoded) while DXF is open.<br />
<br />
==What Can I Do To Help? == <!--T:10--><br />
<br />
===Promote the use of alternative formats=== <!--T:11--><br />
Simply put, stop accepting work done in DWG format. In practice, this is often easier said than done. Still, it would not be bad practice for users and supporters of FreeCAD to avoid and reject the DWG format whenever possible.<br />
<br />
<br />
<!--T:12--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=FreeCAD_and_DWG_Import&diff=224949FreeCAD and DWG Import2017-03-14T11:18:55Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
== Why Can't I Import DWG Files into FreeCAD? == <!--T:1--><br />
The DWG format is a closed source binary file format that is not directly supported by FreeCAD. It requires an external 3rd party file converter to first convert then import the conversion into FreeCAD for use.<br />
<br />
== What Do I Need To Be Able To Import DWG Files? == <!--T:2--><br />
<br />
===Teigha Converter=== <!--T:3--><br />
* homepage: http://www.opendesign.com/guestfiles/TeighaFileConverter<br />
* license: freeware<br />
* optional, used to enable import and export of DWG files<br />
<br />
<!--T:4--><br />
The Teigha Converter is a small freely available utility that allows to convert between several versions of DWG and DXF files. FreeCAD can use it to offer DWG import and export, by converting DWG files to the DXF format under the hood,then using its standard DXF importer to import the file contents. The restrictions of the [[Draft_DXF|DXF importer]] apply.<br />
<br />
====Installation==== <!--T:5--><br />
On all platforms, only by installing the appropriate package from https://www.opendesign.com/guestfiles/teigha_file_converter . After installation, if the utility is not found automatically by FreeCAD, you might need to set the path to the converter executable manually. Change workbench to "Draft", than in the menu Edit -> Preferences -> Import/Export -> DWG and fill "Path to Teigha File Converter" appropriately. <br />
<br />
<!--T:18--><br />
For more detailed instruction see [http://www.freecadweb.org/wiki/index.php?title=Dxf_Importer_Install#Third_step: this tutorial].<br />
<br />
====Usage==== <!--T:14--><br />
The program may be used with the command line interface or the graphical interface.<br />
Be sure to convert the dwg-files to an ASCII-Format.<br />
<br />
<!--T:15--><br />
Command Line Format is:<br />
# Quoted Input Folder<br />
# Quoted Output Folder<br />
# Output_version {"ACAD9","ACAD10","ACAD12", "ACAD13","ACAD14", "ACAD2000","ACAD2004", "ACAD2007","ACAD2010"}<br />
# Output File type {"DWG","DXF","DXB"}<br />
# Recurse Input Folder {"0","1"}<br />
# Audit each file {"0","1"}<br />
# [optional] Input file filter (default:"*.DWG;*.DXF")<br />
<br />
<!--T:16--><br />
'''Example for Linux'''<br /><br />
TeighaFileConverter "/home/dwg-data" "/home/dxf-data" "ACAD2010" "DXF" "0" "1" "test.dwg"<br />
The second number (audit) needs to be 1 otherwise it fails <br />
<br />
<!--T:17--><br />
'''Example for Windows'''<br /><br />
"C:\Program Files\ODA\Teigha File Converter 3.08.2\TeighaFileConverter.exe" "Path-To-Input-Directory" "Path-To-Output-Directory" "ACAD2010" "DXF" "0" "1" "Name-Of-A-Test-File.dwg"<br />
<br />
== What Are The Alternatives? == <!--T:6--><br />
<br />
===DraftSight=== <!--T:7--><br />
There is a free commercial program called Draft Sight (http://www.3ds.com/products-services/draftsight/overview/) that can import most DWG files and can save and export in formats that are friendly to FreeCAD.<br />
Draftsight runs on<br />
* Windows 32 bit<br />
* Windows 64 bit<br />
* Mac OS X<br />
* Linux Fedora<br />
* Linux Ubuntu<br />
A free registration is required for activation of the program.<br />
<br />
===DoubleCAD XT=== <!--T:13--><br />
There is also DoubleCAD XT (http://www.doublecad.com/DoubleCAD/DoubleCAD-XT-v5) .<br />
The program is free for personal and commercial use.<br />
It requires a free sign-up to receive an activation code via E-Mail.<br />
This Program is windows-only.<br />
<br />
===Export Your AutoCAD files in Friendly Format=== <!--T:8--><br />
Exporting your AutoCAD files in a more FreeCAD friendly format, like DXF R12 or R14, SVG, and if version supports it, IGES. All are better alternatives to the DWG format when using FreeCAD. <br />
<br />
<!--T:9--><br />
It is important to know that, contrarily to popular belief, there is no difference between the contents of a file saved in DWG or DXF formats, provided it is the same version (ex. DWG 2014 vs. DXF 2014). Both formats are maintained by Autodesk, and they both support exactly the same features. The difference is that DWG is closed (machine-encoded) while DXF is open.<br />
<br />
==What Can I Do To Help? == <!--T:10--><br />
<br />
===Promote the use of alternative formats=== <!--T:11--><br />
Simply put, stop accepting work done in DWG format. In practice, this is often easier said than done. Still, it would not be bad practice for users and supporters of FreeCAD to avoid and reject the DWG format whenever possible.<br />
<br />
<br />
<!--T:12--><br />
[[Category:User Documentation]]<br />
<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Extra_python_modules&diff=215489Extra python modules2016-12-19T22:39:18Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This page lists several additional python modules or other pieces of software that can be downloaded freely from the internet, and add functionality to your FreeCAD installation.<br />
<br />
== PySide (previously PyQt4) == <!--T:2--><br />
* homepage (PySide): [http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide]<br />
* license: LGPL <br />
* optional, but needed by several modules: Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet<br />
<br />
<!--T:3--><br />
PySide (previously PyQt) is required by several modules of FreeCAD to access FreeCAD's Qt interface. It is already bundled in the windows verison of FreeCAD, and is usually installed automatically by FreeCAD on Linux, when installing from official repositories. If those modules (Draft, Arch, etc) are enabled after FreeCAD is installed, it means PySide (previously PyQt) is already there, and you don't need to do anything more.<br />
<br />
<!--T:4--><br />
'''Note:''' FreeCAD progressively moved away from PyQt after version 0.13, in favour of [http://qt-project.org/wiki/PySide PySide], which does exactly the same job but has a license (LGPL) more compatible with FreeCAD.<br />
<br />
=== Installation === <!--T:5--><br />
<br />
==== Linux ==== <!--T:6--><br />
The simplest way to install PySide is through your distribution's package manager. On Debian/Ubuntu systems, the package name is generally ''python-PySide'', while on RPM-based systems it is named ''pyside''. The necessary dependencies (Qt and SIP) will be taken care of automatically.<br />
<br />
==== Windows ==== <!--T:7--><br />
The program can be downloaded from http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads . You'll need to install the Qt and SIP libraries before installing PySide (to be documented).<br />
<br />
==== MacOSX ==== <!--T:8--><br />
PyQt on Mac can be installed via homebrew or port. See [[CompileOnMac#Install_Dependencies]] for more information. <br />
<br />
=== Usage === <!--T:9--><br />
Once it is installed, you can check that everything is working by typing in FreeCAD python console:<br />
</translate><br />
{{Code|code=<br />
import PySide<br />
}}<br />
<translate><br />
<!--T:10--><br />
To access the FreeCAD interface, type :<br />
</translate><br />
{{Code|code=<br />
from PySide import QtCore,QtGui<br />
FreeCADWindow = FreeCADGui.getMainWindow()<br />
}}<br />
<translate><br />
<!--T:11--><br />
Now you can start to explore the interface with the dir() command. You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget)<br />
}}<br />
<translate><br />
<!--T:12--><br />
Working with Unicode :<br />
</translate><br />
{{Code|code=<br />
text = text.encode('utf-8')<br />
}}<br />
<translate><br />
<!--T:13--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Read a txt file", path, "*.txt")<br />
}}<br />
<translate><br />
<!--T:14--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Save a file txt", path, "*.txt")<br />
}}<br />
<translate><br />
===Example of transition from PyQt4 and PySide=== <!--T:15--><br />
<br />
<!--T:16--><br />
PS: these examples of errors were found in the transition PyQt4 to PySide and these corrections were made, other solutions are certainly available with the examples above<br />
</translate><br />
{{Code|code=<br />
try:<br />
import PyQt4 # PyQt4<br />
from PyQt4 import QtGui ,QtCore # PyQt4<br />
from PyQt4.QtGui import QComboBox # PyQt4<br />
from PyQt4.QtGui import QMessageBox # PyQt4<br />
from PyQt4.QtGui import QTableWidget, QApplication # PyQt4<br />
from PyQt4.QtGui import * # PyQt4<br />
from PyQt4.QtCore import * # PyQt4<br />
except Exception:<br />
import PySide # PySide<br />
from PySide import QtGui ,QtCore # PySide<br />
from PySide.QtGui import QComboBox # PySide<br />
from PySide.QtGui import QMessageBox # PySide<br />
from PySide.QtGui import QTableWidget, QApplication # PySide<br />
from PySide.QtGui import * # PySide<br />
from PySide.QtCore import * # PySide<br />
}}<br />
<translate><br />
<!--T:17--><br />
To access the FreeCAD interface, type :<br />
You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
myNewFreeCADWidget = QtGui.QDockWidget() # create a new dockwidget<br />
myNewFreeCADWidget.ui = Ui_MainWindow() # myWidget_Ui() # load the Ui script<br />
myNewFreeCADWidget.ui.setupUi(myNewFreeCADWidget) # setup the ui<br />
try:<br />
app = QtGui.qApp # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw = app.activeWindow() # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
except Exception:<br />
FCmw = FreeCADGui.getMainWindow() # PySide # the active qt window, = the freecad window since we are inside it <br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
}}<br />
<translate><br />
<!--T:18--><br />
Working with Unicode : <br />
</translate><br />
{{Code|code=<br />
try:<br />
text = unicode(text, 'ISO-8859-1').encode('UTF-8') # PyQt4<br />
except Exception:<br />
text = text.encode('utf-8') # PySide<br />
}}<br />
<translate><br />
<!--T:19--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
OpenName = ""<br />
try:<br />
OpenName = QFileDialog.getOpenFileName(None,QString.fromLocal8Bit("Lire un fichier FCInfo ou txt"),path,"*.FCInfo *.txt") # PyQt4<br />
except Exception:<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Lire un fichier FCInfo ou txt", path, "*.FCInfo *.txt")#PySide<br />
}}<br />
<translate><br />
<!--T:20--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
SaveName = ""<br />
try:<br />
SaveName = QFileDialog.getSaveFileName(None,QString.fromLocal8Bit("Sauver un fichier FCInfo"),path,"*.FCInfo") # PyQt4<br />
except Exception:<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Sauver un fichier FCInfo", path, "*.FCInfo")# PySide<br />
}}<br />
<translate><br />
<!--T:21--><br />
The MessageBox:<br />
</translate><br />
{{Code|code=<br />
def errorDialog(msg):<br />
diag = QtGui.QMessageBox(QtGui.QMessageBox.Critical,u"Error Message",msg )<br />
try:<br />
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before<br />
except Exception: <br />
diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint)# PySide # this function sets the window before<br />
# diag.setWindowModality(QtCore.Qt.ApplicationModal) # function has been disabled to promote "WindowStaysOnTopHint"<br />
diag.exec_()<br />
}}<br />
<translate><br />
<!--T:22--><br />
Working with setProperty (PyQt4) and setValue (PySide)<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setProperty("value", 10.0) # PyQt4<br />
}}<br />
<translate><br />
<!--T:23--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setValue(10.0) # PySide<br />
}}<br />
<translate><br />
<!--T:24--><br />
Working with setToolTip<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4<br />
}}<br />
<translate><br />
<!--T:25--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide <br />
}}<br />
<translate><br />
<!--T:26--><br />
or :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(u"Coordinate placement Axis Y.")# PySide<br />
}}<br />
<translate><br />
=== Additional documentation === <!--T:27--><br />
Some pyQt4 tutorials (including how to build interfaces with Qt Designer to use with python):<br />
* http://pyqt.sourceforge.net/Docs/PyQt4/classes.html - the PyQt4 API Reference on sourceforge<br />
* http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ - a simple introduction<br />
* http://www.zetcode.com/tutorials/pyqt4/ - very complete in-depth tutorial<br />
<br />
== Pivy == <!--T:28--><br />
* homepage: [https://bitbucket.org/Coin3D/coin/wiki/Home https://bitbucket.org/Coin3D/coin/wiki/Home]<br />
* license: BSD<br />
* optional, but needed by several modules of FreeCAD: Draft, Arch<br />
<br />
<!--T:29--><br />
Pivy is a needed by several modules to access the 3D view of FreeCAD. On windows, Pivy is already bundled inside the FreeCAD installer, and on Linux it is usually automatically installed when you install FreeCAD from an official repository. On MacOSX, unfortunately, you will need to compile pivy yourself.<br />
<br />
=== Installation === <!--T:30--><br />
<br />
==== Prerequisites ==== <!--T:31--><br />
I believe before compiling Pivy you will want to have Coin and SoQt installed.<br />
<br />
<!--T:32--><br />
I found for building on Mac it was sufficient to install the [http://www.coin3d.org/lib/plonesoftwarecenter_view Coin3 binary package]. Attempting to install coin from MacPorts was problematic: tried to add a lot of X Windows packages and ultimately crashed with a script error.<br />
<br />
<!--T:33--><br />
For Fedora I found an RPM with Coin3.<br />
<br />
<!--T:34--><br />
SoQt compiled from [http://www.coin3d.org/lib/soqt/releases/1.5.0 source] fine on Mac and Linux.<br />
<br />
==== Debian & Ubuntu ==== <!--T:35--><br />
Starting with Debian Squeeze and Ubuntu Lucid, pivy will be available directly from the official repositories, saving us a lot of hassle. In the meantime, you can either download one of the packages we made (for debian and ubuntu karmic) availables on the [[Download]] pages, or compile it yourself.<br />
<br />
<!--T:36--><br />
The best way to compile pivy easily is to grab the debian source package for pivy and make a package with debuild. It is the same source code from the official pivy site, but the debian people made several bug-fixing additions. It also compiles fine on ubuntu karmic: http://packages.debian.org/squeeze/python-pivy download the .orig.gz and the .diff.gz file, then unzip both, then apply the .diff to the source: go to the unzipped pivy source folder, and apply the .diff patch:<br />
</translate><br />
{{Code|code=<br />
patch -p1 < ../pivy_0.5.0~svn765-2.diff<br />
}}<br />
<translate><br />
<!--T:37--><br />
then<br />
</translate><br />
{{Code|code=<br />
debuild<br />
}}<br />
<translate><br />
<!--T:38--><br />
to have pivy properly built into an official installable package. Then, just install the package with gdebi.<br />
<br />
==== Other linux distributions ==== <!--T:39--><br />
First get the latest sources from the [http://pivy.coin3d.org/mercurial/ project's repository]:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:40--><br />
As of March 2012, the latest version is Pivy-0.5.<br />
<br />
<!--T:41--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. Pivy-0.5 reports that it has only been tested with SWIG 1.3.31, 1.3.33, 1.3.35, and 1.3.40. So you can download a source tarball for one of these old versions from [http://www.swig.org http://www.swig.org]. Then unpack it and from a command line do (as root):<br />
</translate><br />
{{Code|code=<br />
./configure<br />
make<br />
make install (or checkinstall if you use it)<br />
}}<br />
<translate><br />
<!--T:42--><br />
It takes just a few seconds to build. <br />
<br />
<!--T:43--><br />
Alternatively, you can try building with a more recent SWIG. As of March 2012, a typical repository version is 2.0.4. Pivy has a minor compile problem with SWIG 2.0.4 on Mac OS (see below) but seems to build fine on Fedora Core 15.<br />
<br />
<!--T:44--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate><br />
<!--T:45--><br />
which creates the source files. Note that build can produce thousands of warnings, but hopefully there will be no errors.<br />
<br />
<!--T:46--><br />
This is probably obsolete, but you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
<br />
<!--T:47--><br />
After that, install by issuing (as root):<br />
</translate><br />
{{Code|code=<br />
python setup.py install (or checkinstall python setup.py install)<br />
}}<br />
<translate><br />
<!--T:48--><br />
That's it, pivy is installed.<br />
<br />
==== Mac OS ==== <!--T:49--><br />
These instructions may not be complete. Something close to this worked for OS 10.7 as of March 2012. I use MacPorts for repositories, but other options should also work.<br />
<br />
<!--T:50--><br />
As for linux, get the latest source:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:51--><br />
If you don't have hg, you can get it from MacPorts:<br />
</translate><br />
{{Code|code=<br />
port install mercurial<br />
}}<br />
<translate><br />
<!--T:52--><br />
Then, as above you need SWIG. It should be a matter of:<br />
</translate><br />
{{Code|code=<br />
port install swig<br />
}}<br />
<translate><br />
<!--T:53--><br />
I found I needed also:<br />
</translate><br />
{{Code|code=<br />
port install swig-python<br />
}}<br />
<translate><br />
<!--T:54--><br />
As of March 2012, MacPorts SWIG is version 2.0.4. As noted above for linux, you might be better off downloading an older version. SWIG 2.0.4 seems to have a bug that stops Pivy building. See first message in this digest: https://sourceforge.net/mailarchive/message.php?msg_id=28114815<br />
<br />
<!--T:55--><br />
This can be corrected by editing the 2 source locations to add dereferences: *arg4, *arg5 in place of arg4, arg5. Now Pivy should build:<br />
</translate><br />
{{Code|code=<br />
python setup.py build<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
==== Windows ==== <!--T:56--><br />
Assuming you are using Visual Studio 2005 or later you should open a command prompt with 'Visual Studio 2005 Command prompt' from the Tools menu.<br />
If the Python interpreter is not yet in the system path do<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_python_2.5;%PATH%<br />
}}<br />
<translate><br />
<!--T:57--><br />
To get pivy working you should get the latest sources from the project's repository:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy <br />
}}<br />
<translate><br />
<!--T:58--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. It is recommended to use version 1.3.25 of SWIG, not the latest version, because at the moment pivy will only function correctly with 1.3.25. Download the binaries for 1.3.25 from [http://www.swig.org http://www.swig.org]. Then unpack it and from the command line add it to the system path<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_swig_1.3.25;%PATH%<br />
}}<br />
<translate><br />
<!--T:59--><br />
and set COINDIR to the appropriate path<br />
</translate><br />
{{Code|code=<br />
set COINDIR=path_to_coin<br />
}}<br />
<translate><br />
<!--T:60--><br />
On Windows the pivy config file expects SoWin instead of SoQt as default. I didn't find an obvious way to build with SoQt, so I modified the file setup.py directly.<br />
In line 200 just remove the part 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') (do not remove the closing parenthesis).<br />
<br />
<!--T:61--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate> <br />
<!--T:62--><br />
which creates the source files. You may run into a compiler error several header files couldn't be found. In this case adjust the INCLUDE variable<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_coin_include_dir<br />
}}<br />
<translate><br />
<!--T:63--><br />
and if the SoQt headers are not in the same place as the Coin headers also<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_soqt_include_dir<br />
}}<br />
<translate><br />
<!--T:64--><br />
and finally the Qt headers<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt<br />
}}<br />
<translate><br />
<!--T:65--><br />
If you are using the Express Edition of Visual Studio you may get a python keyerror exception.<br />
In this case you have to modify a few things in msvccompiler.py located in your python installation.<br />
<br />
<!--T:66--><br />
Go to line 122 and replace the line<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:67--><br />
with<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VCExpress\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:68--><br />
Then retry again.<br />
If you get a second error like <br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio 2003;...<br />
}}<br />
<translate><br />
<!--T:69--><br />
you must also replace line 128<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")<br />
}}<br />
<translate><br />
<!--T:70--><br />
with<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")<br />
}}<br />
<translate><br />
<!--T:71--><br />
Retry once again. If you get again an error like<br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio version 8.0, and extensions need to be built with the same version of the compiler, but it isn't installed.<br />
}}<br />
<translate><br />
<!--T:72--><br />
then you should check the environment variables DISTUTILS_USE_SDK and MSSDK with<br />
</translate><br />
{{Code|code=<br />
echo %DISTUTILS_USE_SDK%<br />
echo %MSSDK%<br />
}}<br />
<translate><br />
<!--T:73--><br />
If not yet set then just set it e.g. to 1<br />
</translate><br />
{{Code|code=<br />
set DISTUTILS_USE_SDK=1<br />
set MSSDK=1<br />
}}<br />
<translate><br />
<!--T:74--><br />
Now, you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
After that copy the generated pivy directory to a place where the python interpreter in FreeCAD can find it.<br />
<br />
=== Usage === <!--T:75--><br />
To check if Pivy is correctly installed:<br />
</translate><br />
{{Code|code=<br />
import pivy<br />
}}<br />
<translate><br />
<!--T:76--><br />
To have Pivy access the FreeCAD scenegraph do the following: <br />
</translate><br />
{{Code|code=<br />
from pivy import coin<br />
App.newDocument() # Open a document and a view <br />
view = Gui.ActiveDocument.ActiveView <br />
FCSceneGraph = view.getSceneGraph() # returns a pivy Python object that holds a SoSeparator, the main "container" of the Coin scenegraph<br />
FCSceneGraph.addChild(coin.SoCube()) # add a box to scene <br />
}}<br />
<translate><br />
<!--T:77--><br />
You can now explore the FCSceneGraph with the dir() command.<br />
<br />
=== Additonal Documentation === <!--T:78--><br />
Unfortunately documentation about pivy is still almost inexistant on the net. But you might find Coin documentation useful, since pivy simply translate Coin functions, nodes and methods in python, everything keeps the same name and properties, keeping in mind the difference of syntax between C and python:<br />
<br />
<!--T:79--><br />
* https://bitbucket.org/Coin3D/coin/wiki/Documentation - Coin3D API Reference<br />
* http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - The "bible" of Inventor scene description language.<br />
<br />
<!--T:80--><br />
You can also look at the Draft.py file in the FreeCAD Mod/Draft folder, since it makes big use of pivy.<br />
<br />
== pyCollada == <!--T:81--><br />
* homepage: http://pycollada.github.com<br />
* license: BSD<br />
* optional, needed to enable import and export of Collada (.DAE) files<br />
<br />
<!--T:82--><br />
pyCollada is a python library that allow programs to read and write [http://en.wikipedia.org/wiki/COLLADA Collada (*.DAE)] files. When pyCollada is installed on your system, FreeCAD will be able to handle importing and exporting in the Collada file format.<br />
<br />
=== Installation === <!--T:83--><br />
Pycollada is usually not yet available in linux distributions repositories, but since it is made only of python files, it doesn't require compilation, and is easy to install. You have 2 ways, or directly from the official pycollada git repository, or with the easy_install tool.<br />
<br />
==== Linux ==== <!--T:84--><br />
In either case, you'll need the following packages already installed on your system:<br />
</translate><br />
{{Code|code=<br />
python-lxml <br />
python-numpy<br />
python-dateutil<br />
}}<br />
<translate><br />
===== From the git repository ===== <!--T:85--><br />
</translate><br />
{{Code|code=<br />
git clone git://github.com/pycollada/pycollada.git pycollada<br />
cd pycollada<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
===== With easy_install ===== <!--T:86--><br />
Assuming you have a complete python installation already, the easy_install utility should be present already:<br />
</translate><br />
{{Code|code=<br />
easy_install pycollada<br />
}}<br />
<translate><br />
<!--T:87--><br />
You can check if pycollada was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import collada<br />
}}<br />
<translate><br />
<!--T:88--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:89--><br />
<br />
<!--T:90--><br />
On Windows since 0.15 pycollada is included in both the FreeCAD release and developer builds so no additional steps are necessary.<br />
<br />
==== Mac OS ==== <!--T:92--><br />
<br />
<!--T:93--><br />
If you are using the Homebrew build of FreeCAD you can install pycollada into your system Python using pip.<br />
<br />
<!--T:94--><br />
If you need to install pip:<br />
</translate><br />
{{Code|code=<br />
$ sudo easy_install pip<br />
}}<br />
<translate><br />
<!--T:95--><br />
Install pycollada:<br />
</translate><br />
{{Code|code=<br />
$ sudo pip install pycollada<br />
}}<br />
<translate><br />
<!--T:96--><br />
If you are using a binary version of FreeCAD, you can tell pip to install pycollada into the site-packages inside FreeCAD.app:<br />
</translate><br />
{{Code|code=<br />
$ pip install --target="/Applications/FreeCAD.app/Contents/lib/python2.7/site-packages" pycollada<br />
}}<br />
or after downloading the pycollada code<br />
{{Code|code=<br />
$ export PYTHONPATH=/Applications/FreeCAD\ 0.16.6706.app/Contents/lib/python2.7/site-packages:$PYTHONPATH<br />
$ python setup.py install --prefix=/Applications/FreeCAD\ 0.16.6706.app/Contents<br />
}}<br />
<translate><br />
<br />
== IfcOpenShell == <!--T:97--><br />
<br />
<!--T:98--><br />
* homepage: http://www.ifcopenshell.org<br />
* license: LGPL<br />
* optional, needed to extend import abilities of IFC files<br />
<br />
<!--T:99--><br />
IFCOpenShell is a library currently in development, that allows to import (and soon export) [http://en.wikipedia.org/wiki/Industry_Foundation_Classes Industry foundation Classes (*.IFC)] files. IFC is an extension to the STEP format, and is becoming the standard in [http://en.wikipedia.org/wiki/Building_information_modeling BIM] workflows. When ifcopenshell is correctly installed on your system, the FreeCAD [[Arch Module]] will detect it and use it to import IFC files, instead of its built-in rudimentary importer. Since ifcopenshell is based on OpenCasCade, like FreeCAD, the quality of the import is very high, producing high-quality solid geometry.<br />
<br />
=== Installation === <!--T:100--><br />
Since ifcopenshell is pretty new, you'll likely need to compile it yourself.<br />
<br />
==== Linux ==== <!--T:101--><br />
You will need a couple of development packages installed on your system in order to compile ifcopenshell:<br />
</translate><br />
{{Code|code=<br />
liboce-*-dev<br />
python-dev<br />
swig<br />
}}<br />
<translate><br />
<!--T:102--><br />
but since FreeCAD requires all of them too, if you can compile FreeCAD, you won't need any extra dependency to compile IfcOpenShell.<br />
<br />
<!--T:103--><br />
Grab the latest source code from here:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.code.sf.net/p/ifcopenshell/svn/trunk ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:120--><br />
or<br />
</translate><br />
{{Code|code=<br />
svn co https://ifcopenshell.svn.sourceforge.net/svnroot/ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:104--><br />
The build process is very easy:<br />
</translate><br />
{{Code|code=<br />
mkdir ifcopenshell-build<br />
cd ifcopenshell-build<br />
cmake ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:105--><br />
or, if you are using oce instead of opencascade:<br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake <br />
}}<br />
<translate><br />
<!--T:106--><br />
Since ifcopenshell is made primarily for Blender, it uses python3 by default. To use it inside FreeCAD, you need to compile it against the same version of python that is used by FreeCAD. So you might need to force the python version with additional cmake parameters (adjust the python version to yours): <br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:107--><br />
Then:<br />
</translate><br />
{{Code|code=<br />
make<br />
sudo make install<br />
}}<br />
<translate><br />
<!--T:108--><br />
You can check that ifcopenshell was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import IfcImport<br />
}}<br />
<translate><br />
<!--T:109--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:110--><br />
<br />
<!--T:111--><br />
''Copied from the IfcOpenShell README file''<br />
<br />
<!--T:112--><br />
Users are advised to use the Visual Studio .sln file in the win/ folder. For Windows users a prebuilt Open CASCADE version is available from the http://opencascade.org website. Download and install this version and provide the paths to the Open CASCADE header and library files to MS Visual Studio C++.<br />
<br />
<!--T:113--><br />
For building the IfcPython wrapper, SWIG needs to be installed. Please download the latest swigwin version from http://www.swig.org/download.html . After extracting the .zip file, please add the extracted folder to the PATH environment variable. Python needs to be installed, please provide the include and library paths to Visual Studio.<br />
<br />
===Links=== <!--T:121--><br />
Tutorial [[Import/Export_IFC_-_compiling_IfcOpenShell|Import/Export IFC - compiling IfcOpenShell]]<br />
<br />
== Teigha Converter == <!--T:114--><br />
<br />
<!--T:115--><br />
* homepage: http://www.opendesign.com/guestfiles/TeighaFileConverter<br />
* license: freeware<br />
* optional, used to enable import and export of DWG files<br />
<br />
<!--T:116--><br />
The Teigha Converter is a small freely available utility that allows to convert between several versions of DWG and DXF files. FreeCAD can use it to offer DWG import and export, by converting DWG files to the DXF format under the hood,then using its standard DXF importer to import the file contents. The restrictions of the [[Draft_DXF|DXF importer]] apply.<br />
<br />
=== Installation === <!--T:117--><br />
On all platforms, only by installing the appropriate package from http://www.opendesign.com/guestfiles/TeighaFileConverter . After installation, if the utility is not found automatically by FreeCAD, you might need to set the path to the converter executable manually, in the menu Edit -> Preferences -> Draft -> Import/Export options.<br />
<br />
<!--T:118--><br />
{{docnav|Localisation|Source documentation}}<br />
<br />
<!--T:119--><br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Extra_python_modules&diff=215488Extra python modules2016-12-19T22:37:26Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This page lists several additional python modules or other pieces of software that can be downloaded freely from the internet, and add functionality to your FreeCAD installation.<br />
<br />
== PySide (previously PyQt4) == <!--T:2--><br />
* homepage (PySide): [http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide]<br />
* license: LGPL <br />
* optional, but needed by several modules: Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet<br />
<br />
<!--T:3--><br />
PySide (previously PyQt) is required by several modules of FreeCAD to access FreeCAD's Qt interface. It is already bundled in the windows verison of FreeCAD, and is usually installed automatically by FreeCAD on Linux, when installing from official repositories. If those modules (Draft, Arch, etc) are enabled after FreeCAD is installed, it means PySide (previously PyQt) is already there, and you don't need to do anything more.<br />
<br />
<!--T:4--><br />
'''Note:''' FreeCAD progressively moved away from PyQt after version 0.13, in favour of [http://qt-project.org/wiki/PySide PySide], which does exactly the same job but has a license (LGPL) more compatible with FreeCAD.<br />
<br />
=== Installation === <!--T:5--><br />
<br />
==== Linux ==== <!--T:6--><br />
The simplest way to install PySide is through your distribution's package manager. On Debian/Ubuntu systems, the package name is generally ''python-PySide'', while on RPM-based systems it is named ''pyside''. The necessary dependencies (Qt and SIP) will be taken care of automatically.<br />
<br />
==== Windows ==== <!--T:7--><br />
The program can be downloaded from http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads . You'll need to install the Qt and SIP libraries before installing PySide (to be documented).<br />
<br />
==== MacOSX ==== <!--T:8--><br />
PyQt on Mac can be installed via homebrew or port. See [[CompileOnMac#Install_Dependencies]] for more information. <br />
<br />
=== Usage === <!--T:9--><br />
Once it is installed, you can check that everything is working by typing in FreeCAD python console:<br />
</translate><br />
{{Code|code=<br />
import PySide<br />
}}<br />
<translate><br />
<!--T:10--><br />
To access the FreeCAD interface, type :<br />
</translate><br />
{{Code|code=<br />
from PySide import QtCore,QtGui<br />
FreeCADWindow = FreeCADGui.getMainWindow()<br />
}}<br />
<translate><br />
<!--T:11--><br />
Now you can start to explore the interface with the dir() command. You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget)<br />
}}<br />
<translate><br />
<!--T:12--><br />
Working with Unicode :<br />
</translate><br />
{{Code|code=<br />
text = text.encode('utf-8')<br />
}}<br />
<translate><br />
<!--T:13--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Read a txt file", path, "*.txt")<br />
}}<br />
<translate><br />
<!--T:14--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Save a file txt", path, "*.txt")<br />
}}<br />
<translate><br />
===Example of transition from PyQt4 and PySide=== <!--T:15--><br />
<br />
<!--T:16--><br />
PS: these examples of errors were found in the transition PyQt4 to PySide and these corrections were made, other solutions are certainly available with the examples above<br />
</translate><br />
{{Code|code=<br />
try:<br />
import PyQt4 # PyQt4<br />
from PyQt4 import QtGui ,QtCore # PyQt4<br />
from PyQt4.QtGui import QComboBox # PyQt4<br />
from PyQt4.QtGui import QMessageBox # PyQt4<br />
from PyQt4.QtGui import QTableWidget, QApplication # PyQt4<br />
from PyQt4.QtGui import * # PyQt4<br />
from PyQt4.QtCore import * # PyQt4<br />
except Exception:<br />
import PySide # PySide<br />
from PySide import QtGui ,QtCore # PySide<br />
from PySide.QtGui import QComboBox # PySide<br />
from PySide.QtGui import QMessageBox # PySide<br />
from PySide.QtGui import QTableWidget, QApplication # PySide<br />
from PySide.QtGui import * # PySide<br />
from PySide.QtCore import * # PySide<br />
}}<br />
<translate><br />
<!--T:17--><br />
To access the FreeCAD interface, type :<br />
You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
myNewFreeCADWidget = QtGui.QDockWidget() # create a new dockwidget<br />
myNewFreeCADWidget.ui = Ui_MainWindow() # myWidget_Ui() # load the Ui script<br />
myNewFreeCADWidget.ui.setupUi(myNewFreeCADWidget) # setup the ui<br />
try:<br />
app = QtGui.qApp # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw = app.activeWindow() # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
except Exception:<br />
FCmw = FreeCADGui.getMainWindow() # PySide # the active qt window, = the freecad window since we are inside it <br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
}}<br />
<translate><br />
<!--T:18--><br />
Working with Unicode : <br />
</translate><br />
{{Code|code=<br />
try:<br />
text = unicode(text, 'ISO-8859-1').encode('UTF-8') # PyQt4<br />
except Exception:<br />
text = text.encode('utf-8') # PySide<br />
}}<br />
<translate><br />
<!--T:19--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
OpenName = ""<br />
try:<br />
OpenName = QFileDialog.getOpenFileName(None,QString.fromLocal8Bit("Lire un fichier FCInfo ou txt"),path,"*.FCInfo *.txt") # PyQt4<br />
except Exception:<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Lire un fichier FCInfo ou txt", path, "*.FCInfo *.txt")#PySide<br />
}}<br />
<translate><br />
<!--T:20--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
SaveName = ""<br />
try:<br />
SaveName = QFileDialog.getSaveFileName(None,QString.fromLocal8Bit("Sauver un fichier FCInfo"),path,"*.FCInfo") # PyQt4<br />
except Exception:<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Sauver un fichier FCInfo", path, "*.FCInfo")# PySide<br />
}}<br />
<translate><br />
<!--T:21--><br />
The MessageBox:<br />
</translate><br />
{{Code|code=<br />
def errorDialog(msg):<br />
diag = QtGui.QMessageBox(QtGui.QMessageBox.Critical,u"Error Message",msg )<br />
try:<br />
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before<br />
except Exception: <br />
diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint)# PySide # this function sets the window before<br />
# diag.setWindowModality(QtCore.Qt.ApplicationModal) # function has been disabled to promote "WindowStaysOnTopHint"<br />
diag.exec_()<br />
}}<br />
<translate><br />
<!--T:22--><br />
Working with setProperty (PyQt4) and setValue (PySide)<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setProperty("value", 10.0) # PyQt4<br />
}}<br />
<translate><br />
<!--T:23--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setValue(10.0) # PySide<br />
}}<br />
<translate><br />
<!--T:24--><br />
Working with setToolTip<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4<br />
}}<br />
<translate><br />
<!--T:25--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide <br />
}}<br />
<translate><br />
<!--T:26--><br />
or :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(u"Coordinate placement Axis Y.")# PySide<br />
}}<br />
<translate><br />
=== Additional documentation === <!--T:27--><br />
Some pyQt4 tutorials (including how to build interfaces with Qt Designer to use with python):<br />
* http://pyqt.sourceforge.net/Docs/PyQt4/classes.html - the PyQt4 API Reference on sourceforge<br />
* http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ - a simple introduction<br />
* http://www.zetcode.com/tutorials/pyqt4/ - very complete in-depth tutorial<br />
<br />
== Pivy == <!--T:28--><br />
* homepage: [https://bitbucket.org/Coin3D/coin/wiki/Home https://bitbucket.org/Coin3D/coin/wiki/Home]<br />
* license: BSD<br />
* optional, but needed by several modules of FreeCAD: Draft, Arch<br />
<br />
<!--T:29--><br />
Pivy is a needed by several modules to access the 3D view of FreeCAD. On windows, Pivy is already bundled inside the FreeCAD installer, and on Linux it is usually automatically installed when you install FreeCAD from an official repository. On MacOSX, unfortunately, you will need to compile pivy yourself.<br />
<br />
=== Installation === <!--T:30--><br />
<br />
==== Prerequisites ==== <!--T:31--><br />
I believe before compiling Pivy you will want to have Coin and SoQt installed.<br />
<br />
<!--T:32--><br />
I found for building on Mac it was sufficient to install the [http://www.coin3d.org/lib/plonesoftwarecenter_view Coin3 binary package]. Attempting to install coin from MacPorts was problematic: tried to add a lot of X Windows packages and ultimately crashed with a script error.<br />
<br />
<!--T:33--><br />
For Fedora I found an RPM with Coin3.<br />
<br />
<!--T:34--><br />
SoQt compiled from [http://www.coin3d.org/lib/soqt/releases/1.5.0 source] fine on Mac and Linux.<br />
<br />
==== Debian & Ubuntu ==== <!--T:35--><br />
Starting with Debian Squeeze and Ubuntu Lucid, pivy will be available directly from the official repositories, saving us a lot of hassle. In the meantime, you can either download one of the packages we made (for debian and ubuntu karmic) availables on the [[Download]] pages, or compile it yourself.<br />
<br />
<!--T:36--><br />
The best way to compile pivy easily is to grab the debian source package for pivy and make a package with debuild. It is the same source code from the official pivy site, but the debian people made several bug-fixing additions. It also compiles fine on ubuntu karmic: http://packages.debian.org/squeeze/python-pivy download the .orig.gz and the .diff.gz file, then unzip both, then apply the .diff to the source: go to the unzipped pivy source folder, and apply the .diff patch:<br />
</translate><br />
{{Code|code=<br />
patch -p1 < ../pivy_0.5.0~svn765-2.diff<br />
}}<br />
<translate><br />
<!--T:37--><br />
then<br />
</translate><br />
{{Code|code=<br />
debuild<br />
}}<br />
<translate><br />
<!--T:38--><br />
to have pivy properly built into an official installable package. Then, just install the package with gdebi.<br />
<br />
==== Other linux distributions ==== <!--T:39--><br />
First get the latest sources from the [http://pivy.coin3d.org/mercurial/ project's repository]:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:40--><br />
As of March 2012, the latest version is Pivy-0.5.<br />
<br />
<!--T:41--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. Pivy-0.5 reports that it has only been tested with SWIG 1.3.31, 1.3.33, 1.3.35, and 1.3.40. So you can download a source tarball for one of these old versions from [http://www.swig.org http://www.swig.org]. Then unpack it and from a command line do (as root):<br />
</translate><br />
{{Code|code=<br />
./configure<br />
make<br />
make install (or checkinstall if you use it)<br />
}}<br />
<translate><br />
<!--T:42--><br />
It takes just a few seconds to build. <br />
<br />
<!--T:43--><br />
Alternatively, you can try building with a more recent SWIG. As of March 2012, a typical repository version is 2.0.4. Pivy has a minor compile problem with SWIG 2.0.4 on Mac OS (see below) but seems to build fine on Fedora Core 15.<br />
<br />
<!--T:44--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate><br />
<!--T:45--><br />
which creates the source files. Note that build can produce thousands of warnings, but hopefully there will be no errors.<br />
<br />
<!--T:46--><br />
This is probably obsolete, but you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
<br />
<!--T:47--><br />
After that, install by issuing (as root):<br />
</translate><br />
{{Code|code=<br />
python setup.py install (or checkinstall python setup.py install)<br />
}}<br />
<translate><br />
<!--T:48--><br />
That's it, pivy is installed.<br />
<br />
==== Mac OS ==== <!--T:49--><br />
These instructions may not be complete. Something close to this worked for OS 10.7 as of March 2012. I use MacPorts for repositories, but other options should also work.<br />
<br />
<!--T:50--><br />
As for linux, get the latest source:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:51--><br />
If you don't have hg, you can get it from MacPorts:<br />
</translate><br />
{{Code|code=<br />
port install mercurial<br />
}}<br />
<translate><br />
<!--T:52--><br />
Then, as above you need SWIG. It should be a matter of:<br />
</translate><br />
{{Code|code=<br />
port install swig<br />
}}<br />
<translate><br />
<!--T:53--><br />
I found I needed also:<br />
</translate><br />
{{Code|code=<br />
port install swig-python<br />
}}<br />
<translate><br />
<!--T:54--><br />
As of March 2012, MacPorts SWIG is version 2.0.4. As noted above for linux, you might be better off downloading an older version. SWIG 2.0.4 seems to have a bug that stops Pivy building. See first message in this digest: https://sourceforge.net/mailarchive/message.php?msg_id=28114815<br />
<br />
<!--T:55--><br />
This can be corrected by editing the 2 source locations to add dereferences: *arg4, *arg5 in place of arg4, arg5. Now Pivy should build:<br />
</translate><br />
{{Code|code=<br />
python setup.py build<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
==== Windows ==== <!--T:56--><br />
Assuming you are using Visual Studio 2005 or later you should open a command prompt with 'Visual Studio 2005 Command prompt' from the Tools menu.<br />
If the Python interpreter is not yet in the system path do<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_python_2.5;%PATH%<br />
}}<br />
<translate><br />
<!--T:57--><br />
To get pivy working you should get the latest sources from the project's repository:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy <br />
}}<br />
<translate><br />
<!--T:58--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. It is recommended to use version 1.3.25 of SWIG, not the latest version, because at the moment pivy will only function correctly with 1.3.25. Download the binaries for 1.3.25 from [http://www.swig.org http://www.swig.org]. Then unpack it and from the command line add it to the system path<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_swig_1.3.25;%PATH%<br />
}}<br />
<translate><br />
<!--T:59--><br />
and set COINDIR to the appropriate path<br />
</translate><br />
{{Code|code=<br />
set COINDIR=path_to_coin<br />
}}<br />
<translate><br />
<!--T:60--><br />
On Windows the pivy config file expects SoWin instead of SoQt as default. I didn't find an obvious way to build with SoQt, so I modified the file setup.py directly.<br />
In line 200 just remove the part 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') (do not remove the closing parenthesis).<br />
<br />
<!--T:61--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate> <br />
<!--T:62--><br />
which creates the source files. You may run into a compiler error several header files couldn't be found. In this case adjust the INCLUDE variable<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_coin_include_dir<br />
}}<br />
<translate><br />
<!--T:63--><br />
and if the SoQt headers are not in the same place as the Coin headers also<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_soqt_include_dir<br />
}}<br />
<translate><br />
<!--T:64--><br />
and finally the Qt headers<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt<br />
}}<br />
<translate><br />
<!--T:65--><br />
If you are using the Express Edition of Visual Studio you may get a python keyerror exception.<br />
In this case you have to modify a few things in msvccompiler.py located in your python installation.<br />
<br />
<!--T:66--><br />
Go to line 122 and replace the line<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:67--><br />
with<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VCExpress\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:68--><br />
Then retry again.<br />
If you get a second error like <br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio 2003;...<br />
}}<br />
<translate><br />
<!--T:69--><br />
you must also replace line 128<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")<br />
}}<br />
<translate><br />
<!--T:70--><br />
with<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")<br />
}}<br />
<translate><br />
<!--T:71--><br />
Retry once again. If you get again an error like<br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio version 8.0, and extensions need to be built with the same version of the compiler, but it isn't installed.<br />
}}<br />
<translate><br />
<!--T:72--><br />
then you should check the environment variables DISTUTILS_USE_SDK and MSSDK with<br />
</translate><br />
{{Code|code=<br />
echo %DISTUTILS_USE_SDK%<br />
echo %MSSDK%<br />
}}<br />
<translate><br />
<!--T:73--><br />
If not yet set then just set it e.g. to 1<br />
</translate><br />
{{Code|code=<br />
set DISTUTILS_USE_SDK=1<br />
set MSSDK=1<br />
}}<br />
<translate><br />
<!--T:74--><br />
Now, you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
After that copy the generated pivy directory to a place where the python interpreter in FreeCAD can find it.<br />
<br />
=== Usage === <!--T:75--><br />
To check if Pivy is correctly installed:<br />
</translate><br />
{{Code|code=<br />
import pivy<br />
}}<br />
<translate><br />
<!--T:76--><br />
To have Pivy access the FreeCAD scenegraph do the following: <br />
</translate><br />
{{Code|code=<br />
from pivy import coin<br />
App.newDocument() # Open a document and a view <br />
view = Gui.ActiveDocument.ActiveView <br />
FCSceneGraph = view.getSceneGraph() # returns a pivy Python object that holds a SoSeparator, the main "container" of the Coin scenegraph<br />
FCSceneGraph.addChild(coin.SoCube()) # add a box to scene <br />
}}<br />
<translate><br />
<!--T:77--><br />
You can now explore the FCSceneGraph with the dir() command.<br />
<br />
=== Additonal Documentation === <!--T:78--><br />
Unfortunately documentation about pivy is still almost inexistant on the net. But you might find Coin documentation useful, since pivy simply translate Coin functions, nodes and methods in python, everything keeps the same name and properties, keeping in mind the difference of syntax between C and python:<br />
<br />
<!--T:79--><br />
* https://bitbucket.org/Coin3D/coin/wiki/Documentation - Coin3D API Reference<br />
* http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - The "bible" of Inventor scene description language.<br />
<br />
<!--T:80--><br />
You can also look at the Draft.py file in the FreeCAD Mod/Draft folder, since it makes big use of pivy.<br />
<br />
== pyCollada == <!--T:81--><br />
* homepage: http://pycollada.github.com<br />
* license: BSD<br />
* optional, needed to enable import and export of Collada (.DAE) files<br />
<br />
<!--T:82--><br />
pyCollada is a python library that allow programs to read and write [http://en.wikipedia.org/wiki/COLLADA Collada (*.DAE)] files. When pyCollada is installed on your system, FreeCAD will be able to handle importing and exporting in the Collada file format.<br />
<br />
=== Installation === <!--T:83--><br />
Pycollada is usually not yet available in linux distributions repositories, but since it is made only of python files, it doesn't require compilation, and is easy to install. You have 2 ways, or directly from the official pycollada git repository, or with the easy_install tool.<br />
<br />
==== Linux ==== <!--T:84--><br />
In either case, you'll need the following packages already installed on your system:<br />
</translate><br />
{{Code|code=<br />
python-lxml <br />
python-numpy<br />
python-dateutil<br />
}}<br />
<translate><br />
===== From the git repository ===== <!--T:85--><br />
</translate><br />
{{Code|code=<br />
git clone git://github.com/pycollada/pycollada.git pycollada<br />
cd pycollada<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
===== With easy_install ===== <!--T:86--><br />
Assuming you have a complete python installation already, the easy_install utility should be present already:<br />
</translate><br />
{{Code|code=<br />
easy_install pycollada<br />
}}<br />
<translate><br />
<!--T:87--><br />
You can check if pycollada was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import collada<br />
}}<br />
<translate><br />
<!--T:88--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:89--><br />
<br />
<!--T:90--><br />
On Windows since 0.15 pycollada is included in both the FreeCAD release and developer builds so no additional steps are necessary.<br />
<br />
==== Mac OS ==== <!--T:92--><br />
<br />
<!--T:93--><br />
If you are using the Homebrew build of FreeCAD you can install pycollada into your system Python using pip.<br />
<br />
<!--T:94--><br />
If you need to install pip:<br />
</translate><br />
{{Code|code=<br />
$ sudo easy_install pip<br />
}}<br />
<translate><br />
<!--T:95--><br />
Install pycollada:<br />
</translate><br />
{{Code|code=<br />
$ sudo pip install pycollada<br />
}}<br />
<translate><br />
<!--T:96--><br />
If you are using a binary version of FreeCAD, you can tell pip to install pycollada into the site-packages inside FreeCAD.app:<br />
</translate><br />
{{Code|code=<br />
$ pip install --target="/Applications/FreeCAD.app/Contents/lib/python2.7/site-packages" pycollada<br />
}}<br />
or after downloading the pycollada code<br />
{{Code|code=<br />
$ export PYTHONPATH=/Applications/FreeCAD\ 0.16.6705.app/Contents/lib/python2.7/site-packages:$PYTHONPATH<br />
$ python setup.py install --prefix=/Applications/FreeCAD\ 0.16.6705.app/Contents<br />
}}<br />
<translate><br />
<br />
== IfcOpenShell == <!--T:97--><br />
<br />
<!--T:98--><br />
* homepage: http://www.ifcopenshell.org<br />
* license: LGPL<br />
* optional, needed to extend import abilities of IFC files<br />
<br />
<!--T:99--><br />
IFCOpenShell is a library currently in development, that allows to import (and soon export) [http://en.wikipedia.org/wiki/Industry_Foundation_Classes Industry foundation Classes (*.IFC)] files. IFC is an extension to the STEP format, and is becoming the standard in [http://en.wikipedia.org/wiki/Building_information_modeling BIM] workflows. When ifcopenshell is correctly installed on your system, the FreeCAD [[Arch Module]] will detect it and use it to import IFC files, instead of its built-in rudimentary importer. Since ifcopenshell is based on OpenCasCade, like FreeCAD, the quality of the import is very high, producing high-quality solid geometry.<br />
<br />
=== Installation === <!--T:100--><br />
Since ifcopenshell is pretty new, you'll likely need to compile it yourself.<br />
<br />
==== Linux ==== <!--T:101--><br />
You will need a couple of development packages installed on your system in order to compile ifcopenshell:<br />
</translate><br />
{{Code|code=<br />
liboce-*-dev<br />
python-dev<br />
swig<br />
}}<br />
<translate><br />
<!--T:102--><br />
but since FreeCAD requires all of them too, if you can compile FreeCAD, you won't need any extra dependency to compile IfcOpenShell.<br />
<br />
<!--T:103--><br />
Grab the latest source code from here:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.code.sf.net/p/ifcopenshell/svn/trunk ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:120--><br />
or<br />
</translate><br />
{{Code|code=<br />
svn co https://ifcopenshell.svn.sourceforge.net/svnroot/ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:104--><br />
The build process is very easy:<br />
</translate><br />
{{Code|code=<br />
mkdir ifcopenshell-build<br />
cd ifcopenshell-build<br />
cmake ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:105--><br />
or, if you are using oce instead of opencascade:<br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake <br />
}}<br />
<translate><br />
<!--T:106--><br />
Since ifcopenshell is made primarily for Blender, it uses python3 by default. To use it inside FreeCAD, you need to compile it against the same version of python that is used by FreeCAD. So you might need to force the python version with additional cmake parameters (adjust the python version to yours): <br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:107--><br />
Then:<br />
</translate><br />
{{Code|code=<br />
make<br />
sudo make install<br />
}}<br />
<translate><br />
<!--T:108--><br />
You can check that ifcopenshell was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import IfcImport<br />
}}<br />
<translate><br />
<!--T:109--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:110--><br />
<br />
<!--T:111--><br />
''Copied from the IfcOpenShell README file''<br />
<br />
<!--T:112--><br />
Users are advised to use the Visual Studio .sln file in the win/ folder. For Windows users a prebuilt Open CASCADE version is available from the http://opencascade.org website. Download and install this version and provide the paths to the Open CASCADE header and library files to MS Visual Studio C++.<br />
<br />
<!--T:113--><br />
For building the IfcPython wrapper, SWIG needs to be installed. Please download the latest swigwin version from http://www.swig.org/download.html . After extracting the .zip file, please add the extracted folder to the PATH environment variable. Python needs to be installed, please provide the include and library paths to Visual Studio.<br />
<br />
===Links=== <!--T:121--><br />
Tutorial [[Import/Export_IFC_-_compiling_IfcOpenShell|Import/Export IFC - compiling IfcOpenShell]]<br />
<br />
== Teigha Converter == <!--T:114--><br />
<br />
<!--T:115--><br />
* homepage: http://www.opendesign.com/guestfiles/TeighaFileConverter<br />
* license: freeware<br />
* optional, used to enable import and export of DWG files<br />
<br />
<!--T:116--><br />
The Teigha Converter is a small freely available utility that allows to convert between several versions of DWG and DXF files. FreeCAD can use it to offer DWG import and export, by converting DWG files to the DXF format under the hood,then using its standard DXF importer to import the file contents. The restrictions of the [[Draft_DXF|DXF importer]] apply.<br />
<br />
=== Installation === <!--T:117--><br />
On all platforms, only by installing the appropriate package from http://www.opendesign.com/guestfiles/TeighaFileConverter . After installation, if the utility is not found automatically by FreeCAD, you might need to set the path to the converter executable manually, in the menu Edit -> Preferences -> Draft -> Import/Export options.<br />
<br />
<!--T:118--><br />
{{docnav|Localisation|Source documentation}}<br />
<br />
<!--T:119--><br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Extra_python_modules&diff=215487Extra python modules2016-12-19T22:35:26Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This page lists several additional python modules or other pieces of software that can be downloaded freely from the internet, and add functionality to your FreeCAD installation.<br />
<br />
== PySide (previously PyQt4) == <!--T:2--><br />
* homepage (PySide): [http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide]<br />
* license: LGPL <br />
* optional, but needed by several modules: Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet<br />
<br />
<!--T:3--><br />
PySide (previously PyQt) is required by several modules of FreeCAD to access FreeCAD's Qt interface. It is already bundled in the windows verison of FreeCAD, and is usually installed automatically by FreeCAD on Linux, when installing from official repositories. If those modules (Draft, Arch, etc) are enabled after FreeCAD is installed, it means PySide (previously PyQt) is already there, and you don't need to do anything more.<br />
<br />
<!--T:4--><br />
'''Note:''' FreeCAD progressively moved away from PyQt after version 0.13, in favour of [http://qt-project.org/wiki/PySide PySide], which does exactly the same job but has a license (LGPL) more compatible with FreeCAD.<br />
<br />
=== Installation === <!--T:5--><br />
<br />
==== Linux ==== <!--T:6--><br />
The simplest way to install PySide is through your distribution's package manager. On Debian/Ubuntu systems, the package name is generally ''python-PySide'', while on RPM-based systems it is named ''pyside''. The necessary dependencies (Qt and SIP) will be taken care of automatically.<br />
<br />
==== Windows ==== <!--T:7--><br />
The program can be downloaded from http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads . You'll need to install the Qt and SIP libraries before installing PySide (to be documented).<br />
<br />
==== MacOSX ==== <!--T:8--><br />
PyQt on Mac can be installed via homebrew or port. See [[CompileOnMac#Install_Dependencies]] for more information. <br />
<br />
=== Usage === <!--T:9--><br />
Once it is installed, you can check that everything is working by typing in FreeCAD python console:<br />
</translate><br />
{{Code|code=<br />
import PySide<br />
}}<br />
<translate><br />
<!--T:10--><br />
To access the FreeCAD interface, type :<br />
</translate><br />
{{Code|code=<br />
from PySide import QtCore,QtGui<br />
FreeCADWindow = FreeCADGui.getMainWindow()<br />
}}<br />
<translate><br />
<!--T:11--><br />
Now you can start to explore the interface with the dir() command. You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget)<br />
}}<br />
<translate><br />
<!--T:12--><br />
Working with Unicode :<br />
</translate><br />
{{Code|code=<br />
text = text.encode('utf-8')<br />
}}<br />
<translate><br />
<!--T:13--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Read a txt file", path, "*.txt")<br />
}}<br />
<translate><br />
<!--T:14--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
path = FreeCAD.ConfigGet("AppHomePath")<br />
#path = FreeCAD.ConfigGet("UserAppData")<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Save a file txt", path, "*.txt")<br />
}}<br />
<translate><br />
===Example of transition from PyQt4 and PySide=== <!--T:15--><br />
<br />
<!--T:16--><br />
PS: these examples of errors were found in the transition PyQt4 to PySide and these corrections were made, other solutions are certainly available with the examples above<br />
</translate><br />
{{Code|code=<br />
try:<br />
import PyQt4 # PyQt4<br />
from PyQt4 import QtGui ,QtCore # PyQt4<br />
from PyQt4.QtGui import QComboBox # PyQt4<br />
from PyQt4.QtGui import QMessageBox # PyQt4<br />
from PyQt4.QtGui import QTableWidget, QApplication # PyQt4<br />
from PyQt4.QtGui import * # PyQt4<br />
from PyQt4.QtCore import * # PyQt4<br />
except Exception:<br />
import PySide # PySide<br />
from PySide import QtGui ,QtCore # PySide<br />
from PySide.QtGui import QComboBox # PySide<br />
from PySide.QtGui import QMessageBox # PySide<br />
from PySide.QtGui import QTableWidget, QApplication # PySide<br />
from PySide.QtGui import * # PySide<br />
from PySide.QtCore import * # PySide<br />
}}<br />
<translate><br />
<!--T:17--><br />
To access the FreeCAD interface, type :<br />
You can add new elements, like a custom widget, with commands like :<br />
</translate><br />
{{Code|code=<br />
myNewFreeCADWidget = QtGui.QDockWidget() # create a new dockwidget<br />
myNewFreeCADWidget.ui = Ui_MainWindow() # myWidget_Ui() # load the Ui script<br />
myNewFreeCADWidget.ui.setupUi(myNewFreeCADWidget) # setup the ui<br />
try:<br />
app = QtGui.qApp # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw = app.activeWindow() # PyQt4 # the active qt window, = the freecad window since we are inside it<br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
except Exception:<br />
FCmw = FreeCADGui.getMainWindow() # PySide # the active qt window, = the freecad window since we are inside it <br />
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window<br />
}}<br />
<translate><br />
<!--T:18--><br />
Working with Unicode : <br />
</translate><br />
{{Code|code=<br />
try:<br />
text = unicode(text, 'ISO-8859-1').encode('UTF-8') # PyQt4<br />
except Exception:<br />
text = text.encode('utf-8') # PySide<br />
}}<br />
<translate><br />
<!--T:19--><br />
Working with QFileDialog and OpenFileName :<br />
</translate><br />
{{Code|code=<br />
OpenName = ""<br />
try:<br />
OpenName = QFileDialog.getOpenFileName(None,QString.fromLocal8Bit("Lire un fichier FCInfo ou txt"),path,"*.FCInfo *.txt") # PyQt4<br />
except Exception:<br />
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Lire un fichier FCInfo ou txt", path, "*.FCInfo *.txt")#PySide<br />
}}<br />
<translate><br />
<!--T:20--><br />
Working with QFileDialog and SaveFileName :<br />
</translate><br />
{{Code|code=<br />
SaveName = ""<br />
try:<br />
SaveName = QFileDialog.getSaveFileName(None,QString.fromLocal8Bit("Sauver un fichier FCInfo"),path,"*.FCInfo") # PyQt4<br />
except Exception:<br />
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Sauver un fichier FCInfo", path, "*.FCInfo")# PySide<br />
}}<br />
<translate><br />
<!--T:21--><br />
The MessageBox:<br />
</translate><br />
{{Code|code=<br />
def errorDialog(msg):<br />
diag = QtGui.QMessageBox(QtGui.QMessageBox.Critical,u"Error Message",msg )<br />
try:<br />
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before<br />
except Exception: <br />
diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint)# PySide # this function sets the window before<br />
# diag.setWindowModality(QtCore.Qt.ApplicationModal) # function has been disabled to promote "WindowStaysOnTopHint"<br />
diag.exec_()<br />
}}<br />
<translate><br />
<!--T:22--><br />
Working with setProperty (PyQt4) and setValue (PySide)<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setProperty("value", 10.0) # PyQt4<br />
}}<br />
<translate><br />
<!--T:23--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setValue(10.0) # PySide<br />
}}<br />
<translate><br />
<!--T:24--><br />
Working with setToolTip<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4<br />
}}<br />
<translate><br />
<!--T:25--><br />
replace to :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide <br />
}}<br />
<translate><br />
<!--T:26--><br />
or :<br />
</translate><br />
{{Code|code=<br />
self.doubleSpinBox.setToolTip(u"Coordinate placement Axis Y.")# PySide<br />
}}<br />
<translate><br />
=== Additional documentation === <!--T:27--><br />
Some pyQt4 tutorials (including how to build interfaces with Qt Designer to use with python):<br />
* http://pyqt.sourceforge.net/Docs/PyQt4/classes.html - the PyQt4 API Reference on sourceforge<br />
* http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ - a simple introduction<br />
* http://www.zetcode.com/tutorials/pyqt4/ - very complete in-depth tutorial<br />
<br />
== Pivy == <!--T:28--><br />
* homepage: [https://bitbucket.org/Coin3D/coin/wiki/Home https://bitbucket.org/Coin3D/coin/wiki/Home]<br />
* license: BSD<br />
* optional, but needed by several modules of FreeCAD: Draft, Arch<br />
<br />
<!--T:29--><br />
Pivy is a needed by several modules to access the 3D view of FreeCAD. On windows, Pivy is already bundled inside the FreeCAD installer, and on Linux it is usually automatically installed when you install FreeCAD from an official repository. On MacOSX, unfortunately, you will need to compile pivy yourself.<br />
<br />
=== Installation === <!--T:30--><br />
<br />
==== Prerequisites ==== <!--T:31--><br />
I believe before compiling Pivy you will want to have Coin and SoQt installed.<br />
<br />
<!--T:32--><br />
I found for building on Mac it was sufficient to install the [http://www.coin3d.org/lib/plonesoftwarecenter_view Coin3 binary package]. Attempting to install coin from MacPorts was problematic: tried to add a lot of X Windows packages and ultimately crashed with a script error.<br />
<br />
<!--T:33--><br />
For Fedora I found an RPM with Coin3.<br />
<br />
<!--T:34--><br />
SoQt compiled from [http://www.coin3d.org/lib/soqt/releases/1.5.0 source] fine on Mac and Linux.<br />
<br />
==== Debian & Ubuntu ==== <!--T:35--><br />
Starting with Debian Squeeze and Ubuntu Lucid, pivy will be available directly from the official repositories, saving us a lot of hassle. In the meantime, you can either download one of the packages we made (for debian and ubuntu karmic) availables on the [[Download]] pages, or compile it yourself.<br />
<br />
<!--T:36--><br />
The best way to compile pivy easily is to grab the debian source package for pivy and make a package with debuild. It is the same source code from the official pivy site, but the debian people made several bug-fixing additions. It also compiles fine on ubuntu karmic: http://packages.debian.org/squeeze/python-pivy download the .orig.gz and the .diff.gz file, then unzip both, then apply the .diff to the source: go to the unzipped pivy source folder, and apply the .diff patch:<br />
</translate><br />
{{Code|code=<br />
patch -p1 < ../pivy_0.5.0~svn765-2.diff<br />
}}<br />
<translate><br />
<!--T:37--><br />
then<br />
</translate><br />
{{Code|code=<br />
debuild<br />
}}<br />
<translate><br />
<!--T:38--><br />
to have pivy properly built into an official installable package. Then, just install the package with gdebi.<br />
<br />
==== Other linux distributions ==== <!--T:39--><br />
First get the latest sources from the [http://pivy.coin3d.org/mercurial/ project's repository]:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:40--><br />
As of March 2012, the latest version is Pivy-0.5.<br />
<br />
<!--T:41--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. Pivy-0.5 reports that it has only been tested with SWIG 1.3.31, 1.3.33, 1.3.35, and 1.3.40. So you can download a source tarball for one of these old versions from [http://www.swig.org http://www.swig.org]. Then unpack it and from a command line do (as root):<br />
</translate><br />
{{Code|code=<br />
./configure<br />
make<br />
make install (or checkinstall if you use it)<br />
}}<br />
<translate><br />
<!--T:42--><br />
It takes just a few seconds to build. <br />
<br />
<!--T:43--><br />
Alternatively, you can try building with a more recent SWIG. As of March 2012, a typical repository version is 2.0.4. Pivy has a minor compile problem with SWIG 2.0.4 on Mac OS (see below) but seems to build fine on Fedora Core 15.<br />
<br />
<!--T:44--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate><br />
<!--T:45--><br />
which creates the source files. Note that build can produce thousands of warnings, but hopefully there will be no errors.<br />
<br />
<!--T:46--><br />
This is probably obsolete, but you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
<br />
<!--T:47--><br />
After that, install by issuing (as root):<br />
</translate><br />
{{Code|code=<br />
python setup.py install (or checkinstall python setup.py install)<br />
}}<br />
<translate><br />
<!--T:48--><br />
That's it, pivy is installed.<br />
<br />
==== Mac OS ==== <!--T:49--><br />
These instructions may not be complete. Something close to this worked for OS 10.7 as of March 2012. I use MacPorts for repositories, but other options should also work.<br />
<br />
<!--T:50--><br />
As for linux, get the latest source:<br />
</translate><br />
{{Code|code=<br />
hg clone http://hg.sim.no/Pivy/default Pivy <br />
}}<br />
<translate><br />
<!--T:51--><br />
If you don't have hg, you can get it from MacPorts:<br />
</translate><br />
{{Code|code=<br />
port install mercurial<br />
}}<br />
<translate><br />
<!--T:52--><br />
Then, as above you need SWIG. It should be a matter of:<br />
</translate><br />
{{Code|code=<br />
port install swig<br />
}}<br />
<translate><br />
<!--T:53--><br />
I found I needed also:<br />
</translate><br />
{{Code|code=<br />
port install swig-python<br />
}}<br />
<translate><br />
<!--T:54--><br />
As of March 2012, MacPorts SWIG is version 2.0.4. As noted above for linux, you might be better off downloading an older version. SWIG 2.0.4 seems to have a bug that stops Pivy building. See first message in this digest: https://sourceforge.net/mailarchive/message.php?msg_id=28114815<br />
<br />
<!--T:55--><br />
This can be corrected by editing the 2 source locations to add dereferences: *arg4, *arg5 in place of arg4, arg5. Now Pivy should build:<br />
</translate><br />
{{Code|code=<br />
python setup.py build<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
==== Windows ==== <!--T:56--><br />
Assuming you are using Visual Studio 2005 or later you should open a command prompt with 'Visual Studio 2005 Command prompt' from the Tools menu.<br />
If the Python interpreter is not yet in the system path do<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_python_2.5;%PATH%<br />
}}<br />
<translate><br />
<!--T:57--><br />
To get pivy working you should get the latest sources from the project's repository:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy <br />
}}<br />
<translate><br />
<!--T:58--><br />
Then you need a tool called SWIG to generate the C++ code for the Python bindings. It is recommended to use version 1.3.25 of SWIG, not the latest version, because at the moment pivy will only function correctly with 1.3.25. Download the binaries for 1.3.25 from [http://www.swig.org http://www.swig.org]. Then unpack it and from the command line add it to the system path<br />
</translate><br />
{{Code|code=<br />
set PATH=path_to_swig_1.3.25;%PATH%<br />
}}<br />
<translate><br />
<!--T:59--><br />
and set COINDIR to the appropriate path<br />
</translate><br />
{{Code|code=<br />
set COINDIR=path_to_coin<br />
}}<br />
<translate><br />
<!--T:60--><br />
On Windows the pivy config file expects SoWin instead of SoQt as default. I didn't find an obvious way to build with SoQt, so I modified the file setup.py directly.<br />
In line 200 just remove the part 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') (do not remove the closing parenthesis).<br />
<br />
<!--T:61--><br />
After that go to the pivy sources and call <br />
</translate><br />
{{Code|code=<br />
python setup.py build <br />
}}<br />
<translate> <br />
<!--T:62--><br />
which creates the source files. You may run into a compiler error several header files couldn't be found. In this case adjust the INCLUDE variable<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_coin_include_dir<br />
}}<br />
<translate><br />
<!--T:63--><br />
and if the SoQt headers are not in the same place as the Coin headers also<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_soqt_include_dir<br />
}}<br />
<translate><br />
<!--T:64--><br />
and finally the Qt headers<br />
</translate><br />
{{Code|code=<br />
set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt<br />
}}<br />
<translate><br />
<!--T:65--><br />
If you are using the Express Edition of Visual Studio you may get a python keyerror exception.<br />
In this case you have to modify a few things in msvccompiler.py located in your python installation.<br />
<br />
<!--T:66--><br />
Go to line 122 and replace the line<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:67--><br />
with<br />
</translate><br />
{{Code|code=<br />
vsbase = r"Software\Microsoft\VCExpress\%0.1f" % version<br />
}}<br />
<translate><br />
<!--T:68--><br />
Then retry again.<br />
If you get a second error like <br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio 2003;...<br />
}}<br />
<translate><br />
<!--T:69--><br />
you must also replace line 128<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")<br />
}}<br />
<translate><br />
<!--T:70--><br />
with<br />
</translate><br />
{{Code|code=<br />
self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")<br />
}}<br />
<translate><br />
<!--T:71--><br />
Retry once again. If you get again an error like<br />
</translate><br />
{{Code|code=<br />
error: Python was built with Visual Studio version 8.0, and extensions need to be built with the same version of the compiler, but it isn't installed.<br />
}}<br />
<translate><br />
<!--T:72--><br />
then you should check the environment variables DISTUTILS_USE_SDK and MSSDK with<br />
</translate><br />
{{Code|code=<br />
echo %DISTUTILS_USE_SDK%<br />
echo %MSSDK%<br />
}}<br />
<translate><br />
<!--T:73--><br />
If not yet set then just set it e.g. to 1<br />
</translate><br />
{{Code|code=<br />
set DISTUTILS_USE_SDK=1<br />
set MSSDK=1<br />
}}<br />
<translate><br />
<!--T:74--><br />
Now, you may run into a compiler error where a 'const char*' cannot be converted in a 'char*'. To fix that you just need to write a 'const' before in the appropriate lines. There are six lines to fix. <br />
After that copy the generated pivy directory to a place where the python interpreter in FreeCAD can find it.<br />
<br />
=== Usage === <!--T:75--><br />
To check if Pivy is correctly installed:<br />
</translate><br />
{{Code|code=<br />
import pivy<br />
}}<br />
<translate><br />
<!--T:76--><br />
To have Pivy access the FreeCAD scenegraph do the following: <br />
</translate><br />
{{Code|code=<br />
from pivy import coin<br />
App.newDocument() # Open a document and a view <br />
view = Gui.ActiveDocument.ActiveView <br />
FCSceneGraph = view.getSceneGraph() # returns a pivy Python object that holds a SoSeparator, the main "container" of the Coin scenegraph<br />
FCSceneGraph.addChild(coin.SoCube()) # add a box to scene <br />
}}<br />
<translate><br />
<!--T:77--><br />
You can now explore the FCSceneGraph with the dir() command.<br />
<br />
=== Additonal Documentation === <!--T:78--><br />
Unfortunately documentation about pivy is still almost inexistant on the net. But you might find Coin documentation useful, since pivy simply translate Coin functions, nodes and methods in python, everything keeps the same name and properties, keeping in mind the difference of syntax between C and python:<br />
<br />
<!--T:79--><br />
* https://bitbucket.org/Coin3D/coin/wiki/Documentation - Coin3D API Reference<br />
* http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - The "bible" of Inventor scene description language.<br />
<br />
<!--T:80--><br />
You can also look at the Draft.py file in the FreeCAD Mod/Draft folder, since it makes big use of pivy.<br />
<br />
== pyCollada == <!--T:81--><br />
* homepage: http://pycollada.github.com<br />
* license: BSD<br />
* optional, needed to enable import and export of Collada (.DAE) files<br />
<br />
<!--T:82--><br />
pyCollada is a python library that allow programs to read and write [http://en.wikipedia.org/wiki/COLLADA Collada (*.DAE)] files. When pyCollada is installed on your system, FreeCAD will be able to handle importing and exporting in the Collada file format.<br />
<br />
=== Installation === <!--T:83--><br />
Pycollada is usually not yet available in linux distributions repositories, but since it is made only of python files, it doesn't require compilation, and is easy to install. You have 2 ways, or directly from the official pycollada git repository, or with the easy_install tool.<br />
<br />
==== Linux ==== <!--T:84--><br />
In either case, you'll need the following packages already installed on your system:<br />
</translate><br />
{{Code|code=<br />
python-lxml <br />
python-numpy<br />
python-dateutil<br />
}}<br />
<translate><br />
===== From the git repository ===== <!--T:85--><br />
</translate><br />
{{Code|code=<br />
git clone git://github.com/pycollada/pycollada.git pycollada<br />
cd pycollada<br />
sudo python setup.py install<br />
}}<br />
<translate><br />
===== With easy_install ===== <!--T:86--><br />
Assuming you have a complete python installation already, the easy_install utility should be present already:<br />
</translate><br />
{{Code|code=<br />
easy_install pycollada<br />
}}<br />
<translate><br />
<!--T:87--><br />
You can check if pycollada was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import collada<br />
}}<br />
<translate><br />
<!--T:88--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:89--><br />
<br />
<!--T:90--><br />
On Windows since 0.15 pycollada is included in both the FreeCAD release and developer builds so no additional steps are necessary.<br />
<br />
<!--T:91--><br />
* Another reference on how to use easy_install: http://jishus.org/?p=452<br />
<br />
==== Mac OS ==== <!--T:92--><br />
<br />
<!--T:93--><br />
If you are using the Homebrew build of FreeCAD you can install pycollada into your system Python using pip.<br />
<br />
<!--T:94--><br />
If you need to install pip:<br />
</translate><br />
{{Code|code=<br />
$ sudo easy_install pip<br />
}}<br />
<translate><br />
<!--T:95--><br />
Install pycollada:<br />
</translate><br />
{{Code|code=<br />
$ sudo pip install pycollada<br />
}}<br />
<translate><br />
<!--T:96--><br />
If you are using a binary version of FreeCAD, you can tell pip to install pycollada into the site-packages inside FreeCAD.app:<br />
</translate><br />
{{Code|code=<br />
$ pip install --target="/Applications/FreeCAD.app/Contents/lib/python2.7/site-packages" pycollada<br />
}}<br />
or after downloading the pycollada code<br />
{{Code|code=<br />
$ export PYTHONPATH=/Applications/FreeCAD\ 0.16.6705.app/Contents/lib/python2.7/site-packages:$PYTHONPATH<br />
$ python setup.py install --prefix=/Applications/FreeCAD\ 0.16.6705.app/Contents<br />
}}<br />
<translate><br />
<br />
== IfcOpenShell == <!--T:97--><br />
<br />
<!--T:98--><br />
* homepage: http://www.ifcopenshell.org<br />
* license: LGPL<br />
* optional, needed to extend import abilities of IFC files<br />
<br />
<!--T:99--><br />
IFCOpenShell is a library currently in development, that allows to import (and soon export) [http://en.wikipedia.org/wiki/Industry_Foundation_Classes Industry foundation Classes (*.IFC)] files. IFC is an extension to the STEP format, and is becoming the standard in [http://en.wikipedia.org/wiki/Building_information_modeling BIM] workflows. When ifcopenshell is correctly installed on your system, the FreeCAD [[Arch Module]] will detect it and use it to import IFC files, instead of its built-in rudimentary importer. Since ifcopenshell is based on OpenCasCade, like FreeCAD, the quality of the import is very high, producing high-quality solid geometry.<br />
<br />
=== Installation === <!--T:100--><br />
Since ifcopenshell is pretty new, you'll likely need to compile it yourself.<br />
<br />
==== Linux ==== <!--T:101--><br />
You will need a couple of development packages installed on your system in order to compile ifcopenshell:<br />
</translate><br />
{{Code|code=<br />
liboce-*-dev<br />
python-dev<br />
swig<br />
}}<br />
<translate><br />
<!--T:102--><br />
but since FreeCAD requires all of them too, if you can compile FreeCAD, you won't need any extra dependency to compile IfcOpenShell.<br />
<br />
<!--T:103--><br />
Grab the latest source code from here:<br />
</translate><br />
{{Code|code=<br />
svn co https://svn.code.sf.net/p/ifcopenshell/svn/trunk ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:120--><br />
or<br />
</translate><br />
{{Code|code=<br />
svn co https://ifcopenshell.svn.sourceforge.net/svnroot/ifcopenshell ifcopenshell<br />
}}<br />
<translate><br />
<!--T:104--><br />
The build process is very easy:<br />
</translate><br />
{{Code|code=<br />
mkdir ifcopenshell-build<br />
cd ifcopenshell-build<br />
cmake ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:105--><br />
or, if you are using oce instead of opencascade:<br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake <br />
}}<br />
<translate><br />
<!--T:106--><br />
Since ifcopenshell is made primarily for Blender, it uses python3 by default. To use it inside FreeCAD, you need to compile it against the same version of python that is used by FreeCAD. So you might need to force the python version with additional cmake parameters (adjust the python version to yours): <br />
</translate><br />
{{Code|code=<br />
cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake<br />
}}<br />
<translate><br />
<!--T:107--><br />
Then:<br />
</translate><br />
{{Code|code=<br />
make<br />
sudo make install<br />
}}<br />
<translate><br />
<!--T:108--><br />
You can check that ifcopenshell was correctly installed by issuing in a python console:<br />
</translate><br />
{{Code|code=<br />
import IfcImport<br />
}}<br />
<translate><br />
<!--T:109--><br />
If it returns nothing (no error message), then all is OK<br />
<br />
==== Windows ==== <!--T:110--><br />
<br />
<!--T:111--><br />
''Copied from the IfcOpenShell README file''<br />
<br />
<!--T:112--><br />
Users are advised to use the Visual Studio .sln file in the win/ folder. For Windows users a prebuilt Open CASCADE version is available from the http://opencascade.org website. Download and install this version and provide the paths to the Open CASCADE header and library files to MS Visual Studio C++.<br />
<br />
<!--T:113--><br />
For building the IfcPython wrapper, SWIG needs to be installed. Please download the latest swigwin version from http://www.swig.org/download.html . After extracting the .zip file, please add the extracted folder to the PATH environment variable. Python needs to be installed, please provide the include and library paths to Visual Studio.<br />
<br />
===Links=== <!--T:121--><br />
Tutorial [[Import/Export_IFC_-_compiling_IfcOpenShell|Import/Export IFC - compiling IfcOpenShell]]<br />
<br />
== Teigha Converter == <!--T:114--><br />
<br />
<!--T:115--><br />
* homepage: http://www.opendesign.com/guestfiles/TeighaFileConverter<br />
* license: freeware<br />
* optional, used to enable import and export of DWG files<br />
<br />
<!--T:116--><br />
The Teigha Converter is a small freely available utility that allows to convert between several versions of DWG and DXF files. FreeCAD can use it to offer DWG import and export, by converting DWG files to the DXF format under the hood,then using its standard DXF importer to import the file contents. The restrictions of the [[Draft_DXF|DXF importer]] apply.<br />
<br />
=== Installation === <!--T:117--><br />
On all platforms, only by installing the appropriate package from http://www.opendesign.com/guestfiles/TeighaFileConverter . After installation, if the utility is not found automatically by FreeCAD, you might need to set the path to the converter executable manually, in the menu Edit -> Preferences -> Draft -> Import/Export options.<br />
<br />
<!--T:118--><br />
{{docnav|Localisation|Source documentation}}<br />
<br />
<!--T:119--><br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Compile_on_MacOS&diff=169833Compile on MacOS2016-02-09T23:38:01Z<p>Sgrogan: Added CREATE_MAC_APP Cmake flag instructions</p>
<hr />
<div><translate><br />
<!--T:72--><br />
This page explains how to compile the latest FreeCAD source code on Mac OS X.<br />
<br />
== Prerequisites == <!--T:73--><br />
First of all, you will need to install the following software.<br />
<br />
=== Xcode Development Tools === <!--T:74--><br />
Unless you want to use the Xcode IDE for FreeCAD development, you will only need to install the Command Line Tools. To do this on 10.9 and later, open Terminal, run the following command, and then click Install in the dialog that comes up.<br />
</translate><br />
<pre><br />
xcode-select --install<br />
</pre><br />
<translate><br />
<!--T:75--><br />
For other versions of OS X, you can get the package from the Apple developer [https://developer.apple.com/downloads/index.action?q=xcode downloads page] (sign in with the same Apple ID you use for other Apple services). Specifically, you will need to download Development Tools 3.2 for OS X 10.6, and Command Line Tools 4.8 for OS X 10.8.<br />
<br />
=== Package Manager === <!--T:76--><br />
You will want to use a package manager to install prerequisite software, this page gives instructions for two of the common package managers in use for OS X: [http://brew.sh/ Homebrew] and [https://www.macports.org/ MacPorts]. It's easiest to pick one package manager for your system, and not have multiple package managers installed concurrently. Currently (October 2015), Homebrew has more up-to-date libraries relating to FreeCAD than MacPorts.<br />
<br />
==== Homebrew ==== <!--T:77--><br />
To install Homebrew, enter the following in Terminal:<br />
</translate><br />
<pre><br />
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"<br />
</pre><br />
<translate><br />
<br />
==== MacPorts ==== <!--T:78--><br />
To install MacPorts, follow the instructions [https://www.macports.org/install.php from their website]<br />
<br />
=== CMake === <!--T:79--><br />
FreeCAD uses [http://www.cmake.org/ CMake] to build the source. Homebrew and MacPorts can install the command line version of CMake, or if you prefer using a GUI application, install the latest version from http://www.cmake.org/download.<br />
<br />
<!--T:80--><br />
For the command line version of CMake, from a terminal use either Homebrew:<br />
</translate><br />
<pre><br />
brew install cmake<br />
</pre><br />
<translate><br />
<!--T:81--><br />
or MacPorts:<br />
</translate><br />
<pre><br />
sudo port install cmake<br />
</pre><br />
<translate><br />
== Installing the Dependencies == <!--T:82--><br />
All of the needed libraries can be installed using either Homebrew or MacPorts.<br />
<br />
=== Homebrew Dependencies === <!--T:83--><br />
</translate><br />
<pre><br />
brew tap homebrew/science<br />
brew tap sanelson/freecad<br />
brew install boost eigen freetype oce python qt pyside pyside-tools xerces-c boost-python<br />
brew install --without-framework --without-soqt sanelson/freecad/coin<br />
brew install --HEAD pivy<br />
</pre><br />
<translate><br />
=== MacPorts Dependencies === <!--T:84--><br />
</translate><br />
<pre><br />
sudo port install boost eigen3 freetype oce py27-pyside-tools xercesc Coin<br />
</pre><br />
<translate><br />
== Getting the source == <!--T:85--><br />
In this guide, the source and build folders are created in '''/Users/username/FreeCAD''', but you can of course use whatever folder you want.<br />
</translate><br />
<pre><br />
mkdir ~/FreeCAD<br />
cd ~/FreeCAD<br />
</pre><br />
<translate><br />
<!--T:86--><br />
To get the FreeCAD source code, run:<br />
</translate><br />
<pre><br />
git clone git://git.code.sf.net/p/free-cad/code FreeCAD-git<br />
</pre><br />
<translate><br />
<!--T:87--><br />
Alternatively, you can use the github mirror: https://github.com/FreeCAD/FreeCAD_sf_master.git<br />
<br />
== Building FreeCAD == <!--T:88--><br />
First, create a new folder for the build:<br />
</translate><br />
<pre><br />
mkdir ~/FreeCAD/build<br />
</pre><br />
<translate><br />
<!--T:89--><br />
Now you will need to run CMake to generate the build files. Several options will need to be given to CMake, which can be accomplished either with the CMake GUI application, or via the command line.<br />
<br />
=== CMake Options === <!--T:90--><br />
<br />
<!--T:91--><br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Name !! Value !! Notes<br />
|- <br />
| BUILD_ROBOT || 0 (unchecked) || The robot module depends on Orocos KDL, and the version of KDL included with FreeCAD currently (October 2015) doesn't build on recent MacOS. To build the robot module, install Orocos KDL (no MacPorts package is currently available), and specify FREECAD_USE_EXTERNAL_KDL=1 instead.<br />
|- <br />
| CMAKE_BUILD_TYPE || Release ||<br />
|- <br />
| FREECAD_USE_EXTERNAL_PIVY || 1 (checked) || Homebrew only<br />
|- <br />
| FREETYPE_INCLUDE_DIR_freetype2 || /usr/local/include/freetype2 for Homebrew, /opt/local/include/freetype2 for MacPorts|| Only CMake version older than 3.1.0<br />
|-<br />
| QT_QMAKE_EXECUTABLE || /opt/local/libexec/qt4/bin/qmake || MacPorts only (and probably temporary<br />
|-<br />
| FREECAD_CREATE_MAC_APP || 1 (checked) || If you want to make a FreeCAD.app Then when you run "make install" it will create the FreeCAD.app where ever CMAKE_INSTALL_PREFIX is set to.<br />
|-<br />
}<br />
<br />
=== CMake GUI === <!--T:92--><br />
Open the CMake app, and fill in the source and build folder fields. In this case, it would be '''/Users/username/FreeCAD/FreeCAD-git''' for the source, and '''/Users/username/FreeCAD/build''' for the build folder. <br />
<br />
<!--T:93--><br />
Next, click the '''Configure''' button to populate the list of configuration options. This will display a dialog asking you to specify what generator to use. Leave it at the default '''Unix Makefiles.''' Configuring will fail the first time because there are some options that need to be changed. Note: You will need to check the '''Advanced''' checkbox to get all of the options.<br />
<br />
Set options from the table above, then click '''Configure''' again and then '''Generate'''.<br />
=== CMake command line === <!--T:94--><br />
Open a terminal, cd in to the build directory that was created above. Run cmake with options from the table above, following the formula -D(Name)="(Value)", and the path to your FreeCAD source directory as the final argument.<br />
</translate><br />
<pre><br />
$cd ~/FreeCAD/build<br />
$cmake -DBUILD_ROBOT="0" ...options continue... -DPYTHON_LIBRARY="/some/path/" ../FreeCAD-git<br />
</pre><br />
<translate><br />
=== Make === <!--T:95--><br />
Finally, from a terminal run '''make''' to compile FreeCAD.<br />
</translate><br />
<pre><br />
cd ~/FreeCAD/build<br />
make –j3<br />
</pre><br />
<translate><br />
<!--T:96--><br />
The -j option specifies how many make processes to run at once. One plus the number of CPU cores is usually a good number to use. However, if compiling fails for some reason, it is useful to rerun make without the -j option, so that you can see exactly where the error occurred.<br />
<br />
<!--T:97--><br />
If make finishes without any errors, you can now launch FreeCAD, either from Terminal with '''./bin/FreeCAD''', or by double clicking the executable in Finder.<br />
<br />
== Updating == <!--T:98--><br />
FreeCAD development happens fast; everyday or so there are bug fixes or new features. To get these changes, run:<br />
</translate><br />
<pre><br />
cd ~/FreeCAD/FreeCAD-git<br />
git pull<br />
</pre><br />
<translate><br />
<!--T:99--><br />
And then repeat the compile step above.<br />
<br />
== Troubleshooting == <!--T:100--><br />
<br />
=== Fortran === <!--T:101--><br />
''"No CMAKE_Fortran_COMPILER could be found."'' during configuration - Older versions of FreeCAD will need a fortran compiler installed. With Homebrew, do "brew install gcc" and try configuring again, for Macports, do "sudo port install gcc49" and give cmake the path to Fortran ie -DCMAKE_Fortran_COMPILER=/opt/local/bin/gfortran-mp-4.9 . Or, preferably use a more current version of FreeCAD source!<br />
<br />
=== OpenGL === <!--T:104--><br />
See [[OpenGL_on_MacOS|OpenGL on MacOS]]<br />
<br />
<!--T:102--><br />
{{docnav|CompileOnUnix|Third Party Libraries}}<br />
<br />
<!--T:103--><br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Macro_Half-Hull_Model&diff=167473Macro Half-Hull Model2016-01-25T15:41:00Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
{{Macro|Icon=Macro_Half_Hull_Model|Name=Macro Half-Hull Model|Description=This macro generates both three dimensional half-hull and full-hull models from a series of 2D line drawings.|Author=Piffpoof}}<br />
<br />
<!--T:95--><br />
This macro makes simple models of the hulls of boats and ships. It is intended to aid people modeling or designing hulls by providing the hull surface in a straight forward and timely fashion so they can avoid the time consuming full process.<br />
<br />
<!--T:2--><br />
[[File:Macro_Half-Hull_ModelScreenBoatInABottle.jpg]]<br />
<br />
==Background== <!--T:3--><br />
<br />
<!--T:4--><br />
Since antiquity boat builders have had to design boats and then realise them in a three dimensional environment where very few lines are straight, very few surfaces flat and no angles constant over a distance. Hull models were used to make to-scale models which could then be used to review the design or communicate concepts to other persons. The laws of hydrodynamics demand that any vessel passing through a liquid be symmetrical in the cross-section if it is to track (move in a straight line) accurately. Consequently building one side of the hull in the model was all that was necessary - if the half-hull was perfect then its mirror image would also be perfect. In latter years half-hulls became used for symbolic purposes such as plaques, and nautical art.<br />
<br />
<!--T:5--><br />
This code came out of a project to build a model in FreeCAD of a 12.5 metre sailing boat. The builders no longer had drawings and the son of the original owner doubted there ever were full drawings. Consequently the hull dimensions had to be measured and then a model constructed within the software, Modern software packages like FreeCAD offer many beneficial features like symmetry constraints but when the final measurement is a model that is "easy on the eye", much "massaging" of models is required. This code was written to help automate that process.<br />
<br />
<!--T:6--><br />
The initial purpose of this code was to provide a symmetrical hull which was malleable so it could be fitted to the 3D model being constructed. As the software progressed it was generalised so hopefully it would be of some use to persons:<br />
* boat designers producing boat diagrams which can be built from<br />
* boat builders who are trying to model what is described on their diagrams<br />
* model hull builders.<br />
<br />
<!--T:7--><br />
Certainly commercial boat designers have all sorts of high end software to assist their work, this isn't supposed to replace that. Rather this is for the hobbyist or home builder to tinker around with.<br />
<br />
<!--T:8--><br />
Nautical blueprints have a distinct history with respect to buildings and so are somewhat different in presentation. This is an example of a sailing boat which is more than a century old: <br />
<br />
<!--T:9--><br />
[[File:Macro_Half-Hull_ModelImage0.jpg]]<br />
<br />
<!--T:10--><br />
One of the end goals of this software is to use the Draft workbench to generate some of these diagrams using the model to generate the lines.<br />
<br />
<!--T:11--><br />
'''Note on Units in FreeCAD:'''<br />
<br />
<!--T:12--><br />
At present there isn't really any units management system within FreeCAD, but obviously a boat builder or modeller will need an accurate dimensioning system. To use this macro, decide to set the FreeCAD grid size to what ever is appropriate for your work (e.g. mm, cm, inch, foot). FreeCAD is consistent, one FreeCAD unit will constantly equal to one FreeCAD unit. And if you have decided to have a FreeCAD unit equal a specific physical length, then your drawings will remain consistently dimensioned. At present there is work on a units system for FreeCAD so this situation may change soon.<br />
<br />
==Description== <!--T:13--><br />
For this macro the hull shapes are defined by a minimum of 3 FreeCAD Sketches: one in the YZ plane, one or more in the XZ plane, one in the XY plane. Here is the minimum hull supported by this macro, it has only 3 Sketches:<br />
<br />
<!--T:14--><br />
[[File:Macro_Half-Hull_ModelImage1.jpg]]<br />
<br />
<!--T:15--><br />
<b>Note</b>: in the above diagram we are looking directly at the stern, the bow is pointing away from the viewpoint.<br />
<br />
<!--T:16--><br />
From front to back (bow to stern) the 3 Sketches are:<br />
<table style="width: 500px" border="1"><br />
<tr><br />
<td>stemline<br /><br />
</td><br />
<td>YZ plane<br /><br />
</td><br />
<td>red line in sketch<br /><br />
</td><br />
</tr><br />
<tr><br />
<td>cross-section<br /><br />
</td><br />
<td>XZ plane<br /><br />
</td><br />
<td>green line in Sketch<br /><br />
</td><br />
</tr><br />
<tr><br />
<td>transom<br /><br />
</td><br />
<td>XY plane<br /><br />
</td><br />
<td>blue line in Sketch<br /><br />
</td><br />
</tr><br />
</table><br />
<br />
<br />
<!--T:17--><br />
Perhaps it is easier to see with 7 Sketches (one in YZ plane, one in XY plane and 5 in the XZ plane):<br />
<br />
<!--T:18--><br />
[[File:Macro_Half-Hull_ModelImage2.jpg]]<br />
<br />
<!--T:19--><br />
With 5 Sketches in the XZ plane it is becoming easier to perceive the shape of the hull. The next 2 pictures show the Sketch lines superimposed on the model FreeCAD constructs,<br />
<br />
<!--T:20--><br />
[[File:Macro_Half-Hull_ModelImage3.jpg]]<br />
<br />
<!--T:21--><br />
the second is the same model rotated 90 degrees so the bow is in the foreground:<br />
<br />
<!--T:22--><br />
[[File:Macro_Half-Hull_ModelImage3a.jpg]]<br />
<br />
<!--T:23--><br />
Some points to consider:<br />
<br />
<!--T:24--><br />
* the Sketches are only for:<br />
** the stemline (or bow line) in the YZ plane (red in the above diagram);<br />
** the top of the transom in the XY plane (blue in the above diagram);<br />
** multiple cross-sections of the hull in the XZ plane (green in the above diagram)<br />
* only the starboard side of the hull is drawn in the Sketches, the port side will be generated as a mirror image<br />
* each multiple-segment line must be in a separate Sketch<br />
* each Sketch must have the same number of line segments (which is 3 in the previous examples)<br />
* the more line segments in each Sketch, the closer the FreeCAD generated model will approximate a curved hull<br />
* there is no limit to the number of line segment in each Sketch, any number from one up<br />
* there is no limit to the number of Sketches in the XZ plane (i.e. cross-sections), any number from one up<br />
<br />
<!--T:25--><br />
With enough Sketches the model generated may even approach:<br />
<br />
<!--T:26--><br />
[[File:Macro_Half-Hull_ModelImage4.jpg]]<br />
<br />
<!--T:27--><br />
The HalfHull macro generates 4 models:<br />
<br />
<!--T:28--><br />
* starboard half-hull<br />
* port half-hull<br />
* complete hull<br />
* bulkheads for the complete hull, either with a flush deck or with a coachhouse<br />
<br />
<!--T:29--><br />
These models are all output in the unified location space of FreeCAD so they can be fitted together - for example the bulkheads can be inserted into the complete hull seamlessly. This is a picture of bulkheads in a boat model during construction:<br />
<br />
<!--T:30--><br />
[[File:Macro_Half-Hull_ModelImage5.jpg]]<br />
<br />
<!--T:31--><br />
As well as the bulkheads generated by the macro (note that these bulkheads are for a coachhouse rather than a flush deck):<br />
<br />
<!--T:32--><br />
[[File:Macro_Half-Hull_ModelImage6.jpg]]<br />
<br />
<!--T:33--><br />
The composite image below shows the main outputs from this software (the port side half-hull is actually not shown but it is the mirror of the starboard half-hull which is shown). The outputs are in clockwise order from the upper left corner:<br />
* starboard half-hull<br />
* complete hull<br />
* bulkheads (for flush deck, the bulkheads in the previous image were for a coachhouse deck)<br />
* the complete hull with the bulkheads inserted<br />
<br />
<!--T:34--><br />
[[File:Macro_Half-Hull_ModelImage7.jpg]]<br />
<br />
<!--T:35--><br />
As novelty features, the macro will also optionally produce plaques for the half-hulls, and even a bottle for the complete hull:<br />
<br />
<!--T:36--><br />
[[File:Macro_Half-Hull_ModelImage8.jpg]]<br />
<br />
<!--T:37--><br />
[[File:Macro_Half-Hull_ModelImage9.jpg]]<br />
<br />
==Installation== <!--T:38--><br />
All the code for halfHullModel.FCMacro is in one macro. So installation is comprised of copying the code to the appropriate Macro directory and invoking the Build Utility from the Macro menu, the Python console or a toolbar button (the preferred method).<br />
* see [[Macro_Install_HowTo]] for information on how to install this macro code<br />
* see [[Customize_ToolsBar]] for information how to install as a button on a toolbar<br />
<br />
==Usage== <!--T:39--><br />
<br />
<!--T:40--><br />
The FreeCAD operations involved in generating the hull model are rather complex and numerous. Things like the direction a line is drawn can cause the FreeCAD construction of the hull to either abort or turn out like:<br />
<br />
<!--T:41--><br />
[[File:Macro_Half-Hull_ModelUsage1.jpg]]<br />
<br />
<!--T:42--><br />
Consequently the steps below need to be followed closely. The macro does allow for certain data inconsistencies but generally if the data (i.e. the Sketches) are incorrect then the output will look like a cheese grater or the macro fill fail with an error.<br />
<br />
<!--T:43--><br />
The following instructions refer to the quadrants of the XY graph, this refers to the 4 quarters of the XY graph and they are labelled as follows:<br />
<br />
<!--T:44--><br />
[[File:Macro_Half-Hull_ModelUsage2.jpg]]<br />
<br />
<!--T:45--><br />
'''Create a New Document'''<br />
<br />
<!--T:46--><br />
The very first thing is to create a new document in FreeCAD [[Image:Document-new.svg|24px]]. This document will hold all the Sketches that make up your hull definition.<br />
<br />
===Create the Stemline=== <!--T:47--><br />
<br />
<!--T:48--><br />
The first step is one of creating data for the hull model to be made from. The data is supplied in the form of Sketches within FreeCAD. After the hull model is generated, if changes are to be made then the Sketches are simply edited, and the second step of running the macro repeatedly.<br />
<br />
<!--T:49--><br />
# create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the YZ-Plane <br />
# start at origin (0,0) and draw upwards into Quadrant I<br />[[File:Macro_Half-Hull_ModelUsage3.jpg]]<br />
# the bottom end of the stemline is at the origin (0,0) - this will be the point from where the placement of all the cross-sections and transom will be made<br />
# the number of line segments in this Sketch determines the number which will be required in each other Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
# for ease of identification it is probably worth naming the Sketch something like "stemline sketch"<br />
<br />
===Create the Cross-section Sketch(es)=== <!--T:50--><br />
# create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the XZ-Plane<br />
# the following dialog will appear:<br />[[File:Macro_Half-Hull_ModelScreenSnapshot1.jpg]]<br />The dialog is asking how far from the origin the Sketch should be placed. This will refer to how far the cross-section is from the bottom of the stemline (which was placed at (0,0)). The cross-sections can be equally spaced but need not be. The forward-most cross-section will be at Y=0 (i.e. the origin where the stemline bottom ends) or at Y<=0. The cross-sections will be at increasingly negative Y values until the transom is at the most negative Y value. In the example above, the cross-section Sketch will be placed 50 FreeCAD units from the origin on the negative Y axis.<br />
#start on the Y axis and draw upwards into Quadrant I<br />- the first (i.e. foremost) cross-section should start at origin (0,0) (or it will look odd as the stemline ends at 0,0) but other cross-sections need only start on the Y axis.<br />[[File:Macro_Half-Hull_ModelUsage3.jpg]]<br />
#use the same number of line segments as in the Stemline Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
#repeat as this step necessary, it may be quicker to copy this sketch and then space the copies on the Y-axis, modifications may be made to the individual Sketches as required<br />
#for naming, it will make things easier to give some sort of sequence to the cross-sections, starting at the bow (i.e. the stemline) and increasing towards the stern (i.e. the transom)<br />
<br />
===Create the Transom Sketch in the XY Plane=== <!--T:51--><br />
<br />
<!--T:52--><br />
#create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the XY-Plane<br />
#start on the Y axis between quadrant III and IV, and draw upwards into Quadrant IV so that the end point is coincident with the rightmost point of the lowest cross-section Sketch in the YZ-plane<br />[[File:Macro_Half-Hull_ModelUsage4.jpg]]<br />
#use the same number of line segments as in the stemline Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
#for ease of identification it is probably worth naming the Sketch something like "transom sketch"<br />
<br />
<!--T:53--><br />
'''Save the New Document'''<br />
<br />
<!--T:54--><br />
Now save the document [[Image:Document-save.svg|24px]] which contains the Sketches that will define the hull shape, giving it some name that is descriptive<br />
<br />
<!--T:55--><br />
Once the Sketches have all been created and positioned, the document should look like this from the top view [[Image:View-top.svg|24px]]:<br />
<br />
<!--T:56--><br />
[[File:Macro_Half-Hull_ModelUsage5.jpg]]<br />
<br />
<!--T:57--><br />
The principal limitations for constructing the model are:<br />
* the stemline bottom should end at (0,0)<br />
* the bottom centremost end of each cross-section should end at the Y axis - note that it can have any Z value<br />
<br />
<!--T:58--><br />
This concludes the first step which is one of creating the data which the macro will use to create both half-hulls and complete-hulls. The second step is described in the following section which is titled User Interface<br />
<br />
==User Interface== <!--T:59--><br />
<br />
<!--T:60--><br />
In this step the macro will gather some information from the user and then process the input Sketches to generate the desired hull models. This is the only GUI image for the macro and is primarily configuration details for the production of the hull models from the Sketches:<br />
<br />
<!--T:61--><br />
[[File:Macro Half-Hull ModelScreenSnapshot2.jpg]]<br />
<br />
<!--T:62--><br />
The choices on the GUI window are:<br />
<br />
<!--T:63--><br />
* Starboard half-hull<br />- checking this will cause the macro to produce a starboard half-hull model<br />
**Mounting plaque<br />- if checked the macro will mount the half-hull on a plaque<br />
***Allow space for keel<br />- if checked will cause the half hull to be mounted higher on the plaque than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Port half-hull<br />- checking this will cause the macro to produce a port half-hull model<br />
** Mounting plaque<br />- if checked the macro will mount the half-hull on a plaque<br />
***Allow space for keel<br />- if checked will cause the half hull to be mounted higher on the plaque than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Complete hull<br />- checking this will cause the macro to produce a complete model<br />
** Bottle for complete hull<br />- if checked the macro will place the complete hull inside a transparent bottle (complete with cork)<br />
***Allow space for keel<br />- if checked will cause the half hull to be positioned higher in the bottle than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Bulkheads for flush deck<br />- checking this will cause the macro to produce bulkheads whose tops are level with the top of the hull, bulkheads will not be generated for the most forward 2 cross-sections or the aft-most 2 cross-sections<br />
* Bulkheads for coachhouse<br />- checking this will cause the macro to produce bulkheads whose tops are possibly above the top of the hull.<br />
** Bulkheads to skip at bow determines how many cross-sections will be left without a bulkhead at the bow<br />
** Bulkheads to skip at stern determines how many cross-sections will be left without a bulkhead at the stern<br />
* The dimensions of the top of the bulkheads will be configured as per the following diagram:<br />[[File:Macro_Half-Hull_ModelUi1.jpg]]<br />
* Cancel button<br />- the execution is halted and the window closes<br />
* Re-Use Last File button<br />- the execution uses the data file AND SETTINGS from the the last run, any changes to settings are ignored<br />
* Select File button<br />- the standard Open File window is opened where the user can either select a file or Cancel and exit<br />
<br />
<!--T:64--><br />
When the macro runs it takes configuring data from the user and then reads Sketcher sketches in the selected input file.<br />
<br />
<!--T:65--><br />
<b>Note</b>: As the macro works through the Sketches it prints out any exceptions as well as some milestones on the Report View. If you get unexpected results or some parts are missing, that is probably the first place to check.<br />
<br />
==Options== <!--T:66--><br />
There are various types of bows and sterns for boats, with sterns having much more variety than bows. Here are examples of transoms and bows from the real world alongside the similar macro output:<br />
<br />
<!--T:67--><br />
'''Sheer Stern'''<br />
<br />
<!--T:68--><br />
Probably the most common stern, typical of all sizes of vessels from commercial ships through to rowing boats.<br />
<br />
<!--T:69--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption1.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption2.jpg]]</td><br />
</tr><br />
</table><br />
* the XY transom should be as close to the aftmost cross-section as is possible.<br />
<br />
<!--T:70--><br />
'''Sugar-Scoop Stern'''<br />
<br />
<!--T:71--><br />
Most likely to be found on a sailing yacht, it is a product of designing to maximise the length of the waterline to benefit from class rules for racing under sail.<br />
<br />
<!--T:72--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption3.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption4.jpg]]</td><br />
</tr><br />
</table><br />
* place the aftmost 2 cross-sections as close as is feasible, then rotate the aftmost of the two through to an angle of 45 degrees (or whatever is called for) around the X-axis<br />
<br />
<!--T:73--><br />
'''Canoe Stern'''<br />
<br />
<!--T:74--><br />
Found on all sizes of water craft, power and sail, pleasure and commercial.<br />
<br />
<!--T:75--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption5.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption6.jpg]]</td><br />
</tr><br />
</table><br />
* place the aftmost 2 cross-sections as close as is feasible, then rotate the aftmost of the two through to an angle of 45 degrees around the X-axis<br />
<br />
<!--T:76--><br />
'''Normal Bow'''<br />
<br />
<!--T:77--><br />
There is a lot less variety in bow shapes than with transoms:<br />
<br />
<!--T:78--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption7.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption8.jpg]]</td><br />
</tr><br />
</table><br />
<br />
<!--T:79--><br />
'''Trireme Bow'''<br />
<br />
<!--T:80--><br />
Although not seen very frequently in the last 2 millenia, this was once the definitive bow profile for war-making vessels:<br />
<br />
<!--T:81--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption9.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption10.jpg]]</td><br />
</tr><br />
</table><br />
* in order for the bow to be correct the poly-line for the stemline needs to be drawn from the bottom to the top which will mean right to left in the Sketcher<br />
<br />
==Sample Files== <!--T:82--><br />
These files are samples of Sketch data to use with the macro, mainly they are the models for the screen snapshots in the Options section above. The files work with the Macro and so can be downloaded and played with to adapt to your specific requirements. The prefix of 5x3 (for example) means the model has 5 cross-sections and 3 line segments per sketch<br />
<br />
<!--T:83--><br />
{{VeryImportantMessage|FreeCAD presently has no way to offer these sample files for download, hopefully this will be changed soon}}<br />
<br />
<!--T:84--><br />
* 3x3 hull with the minimum number of Sketches (stemline, one cross-section, transom) and 3 line segments per Sketch<br />
* 5x3 with sheer transom<br />
* 5x3 with sugar scoop transom<br />
* 5x3 with canoe transom<br />
* 5x3 with trireme bow<br />
* 12x3 sailing yacht<br />
<br />
[https://github.com/FreeCAD/Examples/raw/master/Half_Hull_Macro_ExampleFiles/12x3%20halfHullS.FCStd?raw=true|12x3 Half-Hull example (with "?raw=true")]<br />
<br />
[https://github.com/FreeCAD/FreeCAD-library/blob/master/Furniture/Chairs/IkeaLikeChair.fcstd?raw=true|chair example from forum (with "?raw=true")]<br />
<br />
==Remarks== <!--T:85--><br />
* almost all the examples on this page are generated with only 3 line segments defining the side of the hull which gives a very faceted appearance, increasing the number of segments in each Sketch would generate a much smoother surface which would increase the realism<br />
* doesn't do keels, skegs or rudders, in other words, it doesn't do any of the wet area<br />
* doesn't do square bows like push-boats or towed barges<br />
* doesn't do submarines (although it will do the lower half of a submarine)<br />
<br />
==Known Problems== <!--T:86--><br />
The 'Ruled Surface' feature of FreeCAD is used to generate the hull sections from the Sketches. It can sometimes generate the wrong result and display a grater like surface instead of a smooth planar one. This will typically occur when the Sketches are rotated such as when a Sugar Scoop stern is modeled. Also angling a Sheer Transom stern can cause this. If it occurs then typically it will do so in either the half-hull models or the complete hull model - it never seems to occur in all three models for the same hull. Also it usually only happens at the extreme bow or stern. If it happens to section in the middle of the boat then most likely one of the Sketches was drawn in the wrong direction (i.e. either random sequence or top-down where as all lines should be drawn bottom-up)<br />
<br />
<!--T:87--><br />
It can usually be removed by using the following steps:<br />
* in the Model tab of the Combo View, click on the faulty segment to select it, the faulty segment will show as highlighted on the display<br />
* select the Data tab on the bottom half of the Combo View, the lower part of the window will have a Label "Ruled Surface" with a single parameter 'Orientation'<br />
* there is a popup menu to the right which has the values 'Automatic', 'Forward', 'Reversed', it will initially be set to 'Automatic'<br />
* try one of the other settings (remembering the faulty segment must still be selected in the upper part of the Combo View) which will usually correct the problem<br />
<br />
<!--T:88--><br />
The following screen snapshot shows the relevant portion of the screen:<br />
<br />
<!--T:89--><br />
[[File:Macro_Half-Hull_ModelKnownProblems1.jpg]]<br />
<br />
==Future Possibilities== <!--T:90--><br />
<br />
<!--T:91--><br />
* replace line segments of cross-sections with curved lines<br />- this is just at the idea stage but would give a much smoother surface in the vertical dimension, however the horizontal surface would still be faceted as it is now<br />
* integrate with Draft workbench to produce drawings from models<br />- an initial goal, but the feasibility has not been investigated<br />
* handle keels, skegs and rudders<br />- one work around for keels with the present system is to model the keel as a half-hull on it's own and then assemble it onto the bottom of the main hull; this would still do nothing for rudders and skegs though<br />
<br />
==Glossary== <!--T:92--><br />
As with any ancient and practiced trade, a rich and sometimes confusing vocabulary has developed around ships, boats and nautical practices. In describing this macro it is both awkward and inefficient to describe the process without using the correct and accurate terms. The obvious problem is that the average lay person will be unfamiliar with such terminology, hence this vocabulary:<br />
<table style="width: 100%;" border="0"><br />
<tr><br />
<td>aft<br />
</td><br />
<td>the rear aspect of anything on a boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>chine</td><br />
<td style="height: 19.2px;">a planar facet of a hull, can be used to<br />
approximate a curved surface or as a finished building technique</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td style="vertical-align: top;">coachhouse<br />
</td><br />
<td>the part of the central deck which is raised above the deck level - usually to accommodate increased headroom in the interior of the boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>flush deck<br />
</td><br />
<td>a deck that runs smoothly from the top of one side of the hull to the other, the converse to a coachhouse deck<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>forward<br />
</td><br />
<td>also 'fore'; the front aspect of anything on a boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>port<br />
</td><br />
<td>lefthand side looking forward<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>starboard<br />
</td><br />
<td>righthand side looking forward<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>stemline<br />
</td><br />
<td>the sloped vertical edge which is the bow of a hull<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>transom<br />
</td><br />
<td>the curved top edge of the stern face which can be flat or curved<br />
</td><br />
</tr><br />
</table><br />
<br />
==Links== <!--T:93--><br />
* [http://en.wikipedia.org/wiki/Half_hull_model_ship Half Hull Model Ship] (Wikipedia)<br />
* [http://www.halfhullshipmodels.com/smf/discussions-of-half-hulls-and-ship-models/understanding-and-practising-half-hull-boat-modelling/?PHPSESSID=56fedd9f6fa2db453a77347f10d57b7f Why Half Hulls] (Maritime Half Hull Ship Models and Nautical Art website)<br />
* [http://pages.swcp.com/usvmyg/design/design.htm Traditional Model Yacht Design] (US Vintage Model Yacht Group)<br />
<br />
==Script== <!--T:94--><br />
This script is running bug free. But due to the large range of possible inputs it may fail for some inputs. If so please report it.<br />
<br />
<!--T:96--><br />
The script is too long for the Wiki to display so it must be copied or downloaded from [http://pastebin.com/raw.php?i=tZMpUi6F unabbreviated script on pastebin.com]<br />
</translate><br />
<br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Macro_Half-Hull_Model&diff=167472Macro Half-Hull Model2016-01-25T15:39:54Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
{{Macro|Icon=Macro_Half_Hull_Model|Name=Macro Half-Hull Model|Description=This macro generates both three dimensional half-hull and full-hull models from a series of 2D line drawings.|Author=Piffpoof}}<br />
<br />
<!--T:95--><br />
This macro makes simple models of the hulls of boats and ships. It is intended to aid people modeling or designing hulls by providing the hull surface in a straight forward and timely fashion so they can avoid the time consuming full process.<br />
<br />
<!--T:2--><br />
[[File:Macro_Half-Hull_ModelScreenBoatInABottle.jpg]]<br />
<br />
==Background== <!--T:3--><br />
<br />
<!--T:4--><br />
Since antiquity boat builders have had to design boats and then realise them in a three dimensional environment where very few lines are straight, very few surfaces flat and no angles constant over a distance. Hull models were used to make to-scale models which could then be used to review the design or communicate concepts to other persons. The laws of hydrodynamics demand that any vessel passing through a liquid be symmetrical in the cross-section if it is to track (move in a straight line) accurately. Consequently building one side of the hull in the model was all that was necessary - if the half-hull was perfect then its mirror image would also be perfect. In latter years half-hulls became used for symbolic purposes such as plaques, and nautical art.<br />
<br />
<!--T:5--><br />
This code came out of a project to build a model in FreeCAD of a 12.5 metre sailing boat. The builders no longer had drawings and the son of the original owner doubted there ever were full drawings. Consequently the hull dimensions had to be measured and then a model constructed within the software, Modern software packages like FreeCAD offer many beneficial features like symmetry constraints but when the final measurement is a model that is "easy on the eye", much "massaging" of models is required. This code was written to help automate that process.<br />
<br />
<!--T:6--><br />
The initial purpose of this code was to provide a symmetrical hull which was malleable so it could be fitted to the 3D model being constructed. As the software progressed it was generalised so hopefully it would be of some use to persons:<br />
* boat designers producing boat diagrams which can be built from<br />
* boat builders who are trying to model what is described on their diagrams<br />
* model hull builders.<br />
<br />
<!--T:7--><br />
Certainly commercial boat designers have all sorts of high end software to assist their work, this isn't supposed to replace that. Rather this is for the hobbyist or home builder to tinker around with.<br />
<br />
<!--T:8--><br />
Nautical blueprints have a distinct history with respect to buildings and so are somewhat different in presentation. This is an example of a sailing boat which is more than a century old: <br />
<br />
<!--T:9--><br />
[[File:Macro_Half-Hull_ModelImage0.jpg]]<br />
<br />
<!--T:10--><br />
One of the end goals of this software is to use the Draft workbench to generate some of these diagrams using the model to generate the lines.<br />
<br />
<!--T:11--><br />
'''Note on Units in FreeCAD:'''<br />
<br />
<!--T:12--><br />
At present there isn't really any units management system within FreeCAD, but obviously a boat builder or modeller will need an accurate dimensioning system. To use this macro, decide to set the FreeCAD grid size to what ever is appropriate for your work (e.g. mm, cm, inch, foot). FreeCAD is consistent, one FreeCAD unit will constantly equal to one FreeCAD unit. And if you have decided to have a FreeCAD unit equal a specific physical length, then your drawings will remain consistently dimensioned. At present there is work on a units system for FreeCAD so this situation may change soon.<br />
<br />
==Description== <!--T:13--><br />
For this macro the hull shapes are defined by a minimum of 3 FreeCAD Sketches: one in the YZ plane, one or more in the XZ plane, one in the XY plane. Here is the minimum hull supported by this macro, it has only 3 Sketches:<br />
<br />
<!--T:14--><br />
[[File:Macro_Half-Hull_ModelImage1.jpg]]<br />
<br />
<!--T:15--><br />
<b>Note</b>: in the above diagram we are looking directly at the stern, the bow is pointing away from the viewpoint.<br />
<br />
<!--T:16--><br />
From front to back (bow to stern) the 3 Sketches are:<br />
<table style="width: 500px" border="1"><br />
<tr><br />
<td>stemline<br /><br />
</td><br />
<td>YZ plane<br /><br />
</td><br />
<td>red line in sketch<br /><br />
</td><br />
</tr><br />
<tr><br />
<td>cross-section<br /><br />
</td><br />
<td>XZ plane<br /><br />
</td><br />
<td>green line in Sketch<br /><br />
</td><br />
</tr><br />
<tr><br />
<td>transom<br /><br />
</td><br />
<td>XY plane<br /><br />
</td><br />
<td>blue line in Sketch<br /><br />
</td><br />
</tr><br />
</table><br />
<br />
<br />
<!--T:17--><br />
Perhaps it is easier to see with 7 Sketches (one in YZ plane, one in XY plane and 5 in the XZ plane):<br />
<br />
<!--T:18--><br />
[[File:Macro_Half-Hull_ModelImage2.jpg]]<br />
<br />
<!--T:19--><br />
With 5 Sketches in the XZ plane it is becoming easier to perceive the shape of the hull. The next 2 pictures show the Sketch lines superimposed on the model FreeCAD constructs,<br />
<br />
<!--T:20--><br />
[[File:Macro_Half-Hull_ModelImage3.jpg]]<br />
<br />
<!--T:21--><br />
the second is the same model rotated 90 degrees so the bow is in the foreground:<br />
<br />
<!--T:22--><br />
[[File:Macro_Half-Hull_ModelImage3a.jpg]]<br />
<br />
<!--T:23--><br />
Some points to consider:<br />
<br />
<!--T:24--><br />
* the Sketches are only for:<br />
** the stemline (or bow line) in the YZ plane (red in the above diagram);<br />
** the top of the transom in the XY plane (blue in the above diagram);<br />
** multiple cross-sections of the hull in the XZ plane (green in the above diagram)<br />
* only the starboard side of the hull is drawn in the Sketches, the port side will be generated as a mirror image<br />
* each multiple-segment line must be in a separate Sketch<br />
* each Sketch must have the same number of line segments (which is 3 in the previous examples)<br />
* the more line segments in each Sketch, the closer the FreeCAD generated model will approximate a curved hull<br />
* there is no limit to the number of line segment in each Sketch, any number from one up<br />
* there is no limit to the number of Sketches in the XZ plane (i.e. cross-sections), any number from one up<br />
<br />
<!--T:25--><br />
With enough Sketches the model generated may even approach:<br />
<br />
<!--T:26--><br />
[[File:Macro_Half-Hull_ModelImage4.jpg]]<br />
<br />
<!--T:27--><br />
The HalfHull macro generates 4 models:<br />
<br />
<!--T:28--><br />
* starboard half-hull<br />
* port half-hull<br />
* complete hull<br />
* bulkheads for the complete hull, either with a flush deck or with a coachhouse<br />
<br />
<!--T:29--><br />
These models are all output in the unified location space of FreeCAD so they can be fitted together - for example the bulkheads can be inserted into the complete hull seamlessly. This is a picture of bulkheads in a boat model during construction:<br />
<br />
<!--T:30--><br />
[[File:Macro_Half-Hull_ModelImage5.jpg]]<br />
<br />
<!--T:31--><br />
As well as the bulkheads generated by the macro (note that these bulkheads are for a coachhouse rather than a flush deck):<br />
<br />
<!--T:32--><br />
[[File:Macro_Half-Hull_ModelImage6.jpg]]<br />
<br />
<!--T:33--><br />
The composite image below shows the main outputs from this software (the port side half-hull is actually not shown but it is the mirror of the starboard half-hull which is shown). The outputs are in clockwise order from the upper left corner:<br />
* starboard half-hull<br />
* complete hull<br />
* bulkheads (for flush deck, the bulkheads in the previous image were for a coachhouse deck)<br />
* the complete hull with the bulkheads inserted<br />
<br />
<!--T:34--><br />
[[File:Macro_Half-Hull_ModelImage7.jpg]]<br />
<br />
<!--T:35--><br />
As novelty features, the macro will also optionally produce plaques for the half-hulls, and even a bottle for the complete hull:<br />
<br />
<!--T:36--><br />
[[File:Macro_Half-Hull_ModelImage8.jpg]]<br />
<br />
<!--T:37--><br />
[[File:Macro_Half-Hull_ModelImage9.jpg]]<br />
<br />
==Installation== <!--T:38--><br />
All the code for halfHullModel.FCMacro is in one macro. So installation is comprised of copying the code to the appropriate Macro directory and invoking the Build Utility from the Macro menu, the Python console or a toolbar button (the preferred method).<br />
* see [[Macro_Install_HowTo]] for information on how to install this macro code<br />
* see [[Customize_ToolsBar]] for information how to install as a button on a toolbar<br />
<br />
==Usage== <!--T:39--><br />
<br />
<!--T:40--><br />
The FreeCAD operations involved in generating the hull model are rather complex and numerous. Things like the direction a line is drawn can cause the FreeCAD construction of the hull to either abort or turn out like:<br />
<br />
<!--T:41--><br />
[[File:Macro_Half-Hull_ModelUsage1.jpg]]<br />
<br />
<!--T:42--><br />
Consequently the steps below need to be followed closely. The macro does allow for certain data inconsistencies but generally if the data (i.e. the Sketches) are incorrect then the output will look like a cheese grater or the macro fill fail with an error.<br />
<br />
<!--T:43--><br />
The following instructions refer to the quadrants of the XY graph, this refers to the 4 quarters of the XY graph and they are labelled as follows:<br />
<br />
<!--T:44--><br />
[[File:Macro_Half-Hull_ModelUsage2.jpg]]<br />
<br />
<!--T:45--><br />
'''Create a New Document'''<br />
<br />
<!--T:46--><br />
The very first thing is to create a new document in FreeCAD [[Image:Document-new.svg|24px]]. This document will hold all the Sketches that make up your hull definition.<br />
<br />
===Create the Stemline=== <!--T:47--><br />
<br />
<!--T:48--><br />
The first step is one of creating data for the hull model to be made from. The data is supplied in the form of Sketches within FreeCAD. After the hull model is generated, if changes are to be made then the Sketches are simply edited, and the second step of running the macro repeatedly.<br />
<br />
<!--T:49--><br />
# create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the YZ-Plane <br />
# start at origin (0,0) and draw upwards into Quadrant I<br />[[File:Macro_Half-Hull_ModelUsage3.jpg]]<br />
# the bottom end of the stemline is at the origin (0,0) - this will be the point from where the placement of all the cross-sections and transom will be made<br />
# the number of line segments in this Sketch determines the number which will be required in each other Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
# for ease of identification it is probably worth naming the Sketch something like "stemline sketch"<br />
<br />
===Create the Cross-section Sketch(es)=== <!--T:50--><br />
# create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the XZ-Plane<br />
# the following dialog will appear:<br />[[File:Macro_Half-Hull_ModelScreenSnapshot1.jpg]]<br />The dialog is asking how far from the origin the Sketch should be placed. This will refer to how far the cross-section is from the bottom of the stemline (which was placed at (0,0)). The cross-sections can be equally spaced but need not be. The forward-most cross-section will be at Y=0 (i.e. the origin where the stemline bottom ends) or at Y<=0. The cross-sections will be at increasingly negative Y values until the transom is at the most negative Y value. In the example above, the cross-section Sketch will be placed 50 FreeCAD units from the origin on the negative Y axis.<br />
#start on the Y axis and draw upwards into Quadrant I<br />- the first (i.e. foremost) cross-section should start at origin (0,0) (or it will look odd as the stemline ends at 0,0) but other cross-sections need only start on the Y axis.<br />[[File:Macro_Half-Hull_ModelUsage3.jpg]]<br />
#use the same number of line segments as in the Stemline Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
#repeat as this step necessary, it may be quicker to copy this sketch and then space the copies on the Y-axis, modifications may be made to the individual Sketches as required<br />
#for naming, it will make things easier to give some sort of sequence to the cross-sections, starting at the bow (i.e. the stemline) and increasing towards the stern (i.e. the transom)<br />
<br />
===Create the Transom Sketch in the XY Plane=== <!--T:51--><br />
<br />
<!--T:52--><br />
#create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the XY-Plane<br />
#start on the Y axis between quadrant III and IV, and draw upwards into Quadrant IV so that the end point is coincident with the rightmost point of the lowest cross-section Sketch in the YZ-plane<br />[[File:Macro_Half-Hull_ModelUsage4.jpg]]<br />
#use the same number of line segments as in the stemline Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
#for ease of identification it is probably worth naming the Sketch something like "transom sketch"<br />
<br />
<!--T:53--><br />
'''Save the New Document'''<br />
<br />
<!--T:54--><br />
Now save the document [[Image:Document-save.svg|24px]] which contains the Sketches that will define the hull shape, giving it some name that is descriptive<br />
<br />
<!--T:55--><br />
Once the Sketches have all been created and positioned, the document should look like this from the top view [[Image:View-top.svg|24px]]:<br />
<br />
<!--T:56--><br />
[[File:Macro_Half-Hull_ModelUsage5.jpg]]<br />
<br />
<!--T:57--><br />
The principal limitations for constructing the model are:<br />
* the stemline bottom should end at (0,0)<br />
* the bottom centremost end of each cross-section should end at the Y axis - note that it can have any Z value<br />
<br />
<!--T:58--><br />
This concludes the first step which is one of creating the data which the macro will use to create both half-hulls and complete-hulls. The second step is described in the following section which is titled User Interface<br />
<br />
==User Interface== <!--T:59--><br />
<br />
<!--T:60--><br />
In this step the macro will gather some information from the user and then process the input Sketches to generate the desired hull models. This is the only GUI image for the macro and is primarily configuration details for the production of the hull models from the Sketches:<br />
<br />
<!--T:61--><br />
[[File:Macro Half-Hull ModelScreenSnapshot2.jpg]]<br />
<br />
<!--T:62--><br />
The choices on the GUI window are:<br />
<br />
<!--T:63--><br />
* Starboard half-hull<br />- checking this will cause the macro to produce a starboard half-hull model<br />
**Mounting plaque<br />- if checked the macro will mount the half-hull on a plaque<br />
***Allow space for keel<br />- if checked will cause the half hull to be mounted higher on the plaque than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Port half-hull<br />- checking this will cause the macro to produce a port half-hull model<br />
** Mounting plaque<br />- if checked the macro will mount the half-hull on a plaque<br />
***Allow space for keel<br />- if checked will cause the half hull to be mounted higher on the plaque than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Complete hull<br />- checking this will cause the macro to produce a complete model<br />
** Bottle for complete hull<br />- if checked the macro will place the complete hull inside a transparent bottle (complete with cork)<br />
***Allow space for keel<br />- if checked will cause the half hull to be positioned higher in the bottle than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Bulkheads for flush deck<br />- checking this will cause the macro to produce bulkheads whose tops are level with the top of the hull, bulkheads will not be generated for the most forward 2 cross-sections or the aft-most 2 cross-sections<br />
* Bulkheads for coachhouse<br />- checking this will cause the macro to produce bulkheads whose tops are possibly above the top of the hull.<br />
** Bulkheads to skip at bow determines how many cross-sections will be left without a bulkhead at the bow<br />
** Bulkheads to skip at stern determines how many cross-sections will be left without a bulkhead at the stern<br />
* The dimensions of the top of the bulkheads will be configured as per the following diagram:<br />[[File:Macro_Half-Hull_ModelUi1.jpg]]<br />
* Cancel button<br />- the execution is halted and the window closes<br />
* Re-Use Last File button<br />- the execution uses the data file AND SETTINGS from the the last run, any changes to settings are ignored<br />
* Select File button<br />- the standard Open File window is opened where the user can either select a file or Cancel and exit<br />
<br />
<!--T:64--><br />
When the macro runs it takes configuring data from the user and then reads Sketcher sketches in the selected input file.<br />
<br />
<!--T:65--><br />
<b>Note</b>: As the macro works through the Sketches it prints out any exceptions as well as some milestones on the Report View. If you get unexpected results or some parts are missing, that is probably the first place to check.<br />
<br />
==Options== <!--T:66--><br />
There are various types of bows and sterns for boats, with sterns having much more variety than bows. Here are examples of transoms and bows from the real world alongside the similar macro output:<br />
<br />
<!--T:67--><br />
'''Sheer Stern'''<br />
<br />
<!--T:68--><br />
Probably the most common stern, typical of all sizes of vessels from commercial ships through to rowing boats.<br />
<br />
<!--T:69--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption1.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption2.jpg]]</td><br />
</tr><br />
</table><br />
* the XY transom should be as close to the aftmost cross-section as is possible.<br />
<br />
<!--T:70--><br />
'''Sugar-Scoop Stern'''<br />
<br />
<!--T:71--><br />
Most likely to be found on a sailing yacht, it is a product of designing to maximise the length of the waterline to benefit from class rules for racing under sail.<br />
<br />
<!--T:72--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption3.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption4.jpg]]</td><br />
</tr><br />
</table><br />
* place the aftmost 2 cross-sections as close as is feasible, then rotate the aftmost of the two through to an angle of 45 degrees (or whatever is called for) around the X-axis<br />
<br />
<!--T:73--><br />
'''Canoe Stern'''<br />
<br />
<!--T:74--><br />
Found on all sizes of water craft, power and sail, pleasure and commercial.<br />
<br />
<!--T:75--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption5.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption6.jpg]]</td><br />
</tr><br />
</table><br />
* place the aftmost 2 cross-sections as close as is feasible, then rotate the aftmost of the two through to an angle of 45 degrees around the X-axis<br />
<br />
<!--T:76--><br />
'''Normal Bow'''<br />
<br />
<!--T:77--><br />
There is a lot less variety in bow shapes than with transoms:<br />
<br />
<!--T:78--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption7.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption8.jpg]]</td><br />
</tr><br />
</table><br />
<br />
<!--T:79--><br />
'''Trireme Bow'''<br />
<br />
<!--T:80--><br />
Although not seen very frequently in the last 2 millenia, this was once the definitive bow profile for war-making vessels:<br />
<br />
<!--T:81--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption9.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption10.jpg]]</td><br />
</tr><br />
</table><br />
* in order for the bow to be correct the poly-line for the stemline needs to be drawn from the bottom to the top which will mean right to left in the Sketcher<br />
<br />
==Sample Files== <!--T:82--><br />
These files are samples of Sketch data to use with the macro, mainly they are the models for the screen snapshots in the Options section above. The files work with the Macro and so can be downloaded and played with to adapt to your specific requirements. The prefix of 5x3 (for example) means the model has 5 cross-sections and 3 line segments per sketch<br />
<br />
<!--T:83--><br />
{{VeryImportantMessage|FreeCAD presently has no way to offer these sample files for download, hopefully this will be changed soon}}<br />
<br />
<!--T:84--><br />
* 3x3 hull with the minimum number of Sketches (stemline, one cross-section, transom) and 3 line segments per Sketch<br />
* 5x3 with sheer transom<br />
* 5x3 with sugar scoop transom<br />
* 5x3 with canoe transom<br />
* 5x3 with trireme bow<br />
* 12x3 sailing yacht<br />
<br />
[https://github.com/FreeCAD/Examples/raw/master/Half_Hull_Macro_ExampleFiles/12x3%20halfHullS.FCStd|12x3 Half-Hull example (no "?raw=true")]<br />
<br />
[https://github.com/FreeCAD/Examples/raw/master/Half_Hull_Macro_ExampleFiles/12x3%20halfHullS.FCStd?raw=true|12x3 Half-Hull example (with "?raw=true")]<br />
<br />
[https://github.com/FreeCAD/FreeCAD-library/blob/master/Furniture/Chairs/IkeaLikeChair.fcstd|chair example from forum (no "?raw=true")]<br />
<br />
[https://github.com/FreeCAD/FreeCAD-library/blob/master/Furniture/Chairs/IkeaLikeChair.fcstd?raw=true|chair example from forum (with "?raw=true")]<br />
<br />
==Remarks== <!--T:85--><br />
* almost all the examples on this page are generated with only 3 line segments defining the side of the hull which gives a very faceted appearance, increasing the number of segments in each Sketch would generate a much smoother surface which would increase the realism<br />
* doesn't do keels, skegs or rudders, in other words, it doesn't do any of the wet area<br />
* doesn't do square bows like push-boats or towed barges<br />
* doesn't do submarines (although it will do the lower half of a submarine)<br />
<br />
==Known Problems== <!--T:86--><br />
The 'Ruled Surface' feature of FreeCAD is used to generate the hull sections from the Sketches. It can sometimes generate the wrong result and display a grater like surface instead of a smooth planar one. This will typically occur when the Sketches are rotated such as when a Sugar Scoop stern is modeled. Also angling a Sheer Transom stern can cause this. If it occurs then typically it will do so in either the half-hull models or the complete hull model - it never seems to occur in all three models for the same hull. Also it usually only happens at the extreme bow or stern. If it happens to section in the middle of the boat then most likely one of the Sketches was drawn in the wrong direction (i.e. either random sequence or top-down where as all lines should be drawn bottom-up)<br />
<br />
<!--T:87--><br />
It can usually be removed by using the following steps:<br />
* in the Model tab of the Combo View, click on the faulty segment to select it, the faulty segment will show as highlighted on the display<br />
* select the Data tab on the bottom half of the Combo View, the lower part of the window will have a Label "Ruled Surface" with a single parameter 'Orientation'<br />
* there is a popup menu to the right which has the values 'Automatic', 'Forward', 'Reversed', it will initially be set to 'Automatic'<br />
* try one of the other settings (remembering the faulty segment must still be selected in the upper part of the Combo View) which will usually correct the problem<br />
<br />
<!--T:88--><br />
The following screen snapshot shows the relevant portion of the screen:<br />
<br />
<!--T:89--><br />
[[File:Macro_Half-Hull_ModelKnownProblems1.jpg]]<br />
<br />
==Future Possibilities== <!--T:90--><br />
<br />
<!--T:91--><br />
* replace line segments of cross-sections with curved lines<br />- this is just at the idea stage but would give a much smoother surface in the vertical dimension, however the horizontal surface would still be faceted as it is now<br />
* integrate with Draft workbench to produce drawings from models<br />- an initial goal, but the feasibility has not been investigated<br />
* handle keels, skegs and rudders<br />- one work around for keels with the present system is to model the keel as a half-hull on it's own and then assemble it onto the bottom of the main hull; this would still do nothing for rudders and skegs though<br />
<br />
==Glossary== <!--T:92--><br />
As with any ancient and practiced trade, a rich and sometimes confusing vocabulary has developed around ships, boats and nautical practices. In describing this macro it is both awkward and inefficient to describe the process without using the correct and accurate terms. The obvious problem is that the average lay person will be unfamiliar with such terminology, hence this vocabulary:<br />
<table style="width: 100%;" border="0"><br />
<tr><br />
<td>aft<br />
</td><br />
<td>the rear aspect of anything on a boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>chine</td><br />
<td style="height: 19.2px;">a planar facet of a hull, can be used to<br />
approximate a curved surface or as a finished building technique</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td style="vertical-align: top;">coachhouse<br />
</td><br />
<td>the part of the central deck which is raised above the deck level - usually to accommodate increased headroom in the interior of the boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>flush deck<br />
</td><br />
<td>a deck that runs smoothly from the top of one side of the hull to the other, the converse to a coachhouse deck<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>forward<br />
</td><br />
<td>also 'fore'; the front aspect of anything on a boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>port<br />
</td><br />
<td>lefthand side looking forward<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>starboard<br />
</td><br />
<td>righthand side looking forward<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>stemline<br />
</td><br />
<td>the sloped vertical edge which is the bow of a hull<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>transom<br />
</td><br />
<td>the curved top edge of the stern face which can be flat or curved<br />
</td><br />
</tr><br />
</table><br />
<br />
==Links== <!--T:93--><br />
* [http://en.wikipedia.org/wiki/Half_hull_model_ship Half Hull Model Ship] (Wikipedia)<br />
* [http://www.halfhullshipmodels.com/smf/discussions-of-half-hulls-and-ship-models/understanding-and-practising-half-hull-boat-modelling/?PHPSESSID=56fedd9f6fa2db453a77347f10d57b7f Why Half Hulls] (Maritime Half Hull Ship Models and Nautical Art website)<br />
* [http://pages.swcp.com/usvmyg/design/design.htm Traditional Model Yacht Design] (US Vintage Model Yacht Group)<br />
<br />
==Script== <!--T:94--><br />
This script is running bug free. But due to the large range of possible inputs it may fail for some inputs. If so please report it.<br />
<br />
<!--T:96--><br />
The script is too long for the Wiki to display so it must be copied or downloaded from [http://pastebin.com/raw.php?i=tZMpUi6F unabbreviated script on pastebin.com]<br />
</translate><br />
<br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Macro_Half-Hull_Model&diff=167471Macro Half-Hull Model2016-01-25T15:38:41Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
{{Macro|Icon=Macro_Half_Hull_Model|Name=Macro Half-Hull Model|Description=This macro generates both three dimensional half-hull and full-hull models from a series of 2D line drawings.|Author=Piffpoof}}<br />
<br />
<!--T:95--><br />
This macro makes simple models of the hulls of boats and ships. It is intended to aid people modeling or designing hulls by providing the hull surface in a straight forward and timely fashion so they can avoid the time consuming full process.<br />
<br />
<!--T:2--><br />
[[File:Macro_Half-Hull_ModelScreenBoatInABottle.jpg]]<br />
<br />
==Background== <!--T:3--><br />
<br />
<!--T:4--><br />
Since antiquity boat builders have had to design boats and then realise them in a three dimensional environment where very few lines are straight, very few surfaces flat and no angles constant over a distance. Hull models were used to make to-scale models which could then be used to review the design or communicate concepts to other persons. The laws of hydrodynamics demand that any vessel passing through a liquid be symmetrical in the cross-section if it is to track (move in a straight line) accurately. Consequently building one side of the hull in the model was all that was necessary - if the half-hull was perfect then its mirror image would also be perfect. In latter years half-hulls became used for symbolic purposes such as plaques, and nautical art.<br />
<br />
<!--T:5--><br />
This code came out of a project to build a model in FreeCAD of a 12.5 metre sailing boat. The builders no longer had drawings and the son of the original owner doubted there ever were full drawings. Consequently the hull dimensions had to be measured and then a model constructed within the software, Modern software packages like FreeCAD offer many beneficial features like symmetry constraints but when the final measurement is a model that is "easy on the eye", much "massaging" of models is required. This code was written to help automate that process.<br />
<br />
<!--T:6--><br />
The initial purpose of this code was to provide a symmetrical hull which was malleable so it could be fitted to the 3D model being constructed. As the software progressed it was generalised so hopefully it would be of some use to persons:<br />
* boat designers producing boat diagrams which can be built from<br />
* boat builders who are trying to model what is described on their diagrams<br />
* model hull builders.<br />
<br />
<!--T:7--><br />
Certainly commercial boat designers have all sorts of high end software to assist their work, this isn't supposed to replace that. Rather this is for the hobbyist or home builder to tinker around with.<br />
<br />
<!--T:8--><br />
Nautical blueprints have a distinct history with respect to buildings and so are somewhat different in presentation. This is an example of a sailing boat which is more than a century old: <br />
<br />
<!--T:9--><br />
[[File:Macro_Half-Hull_ModelImage0.jpg]]<br />
<br />
<!--T:10--><br />
One of the end goals of this software is to use the Draft workbench to generate some of these diagrams using the model to generate the lines.<br />
<br />
<!--T:11--><br />
'''Note on Units in FreeCAD:'''<br />
<br />
<!--T:12--><br />
At present there isn't really any units management system within FreeCAD, but obviously a boat builder or modeller will need an accurate dimensioning system. To use this macro, decide to set the FreeCAD grid size to what ever is appropriate for your work (e.g. mm, cm, inch, foot). FreeCAD is consistent, one FreeCAD unit will constantly equal to one FreeCAD unit. And if you have decided to have a FreeCAD unit equal a specific physical length, then your drawings will remain consistently dimensioned. At present there is work on a units system for FreeCAD so this situation may change soon.<br />
<br />
==Description== <!--T:13--><br />
For this macro the hull shapes are defined by a minimum of 3 FreeCAD Sketches: one in the YZ plane, one or more in the XZ plane, one in the XY plane. Here is the minimum hull supported by this macro, it has only 3 Sketches:<br />
<br />
<!--T:14--><br />
[[File:Macro_Half-Hull_ModelImage1.jpg]]<br />
<br />
<!--T:15--><br />
<b>Note</b>: in the above diagram we are looking directly at the stern, the bow is pointing away from the viewpoint.<br />
<br />
<!--T:16--><br />
From front to back (bow to stern) the 3 Sketches are:<br />
<table style="width: 500px" border="1"><br />
<tr><br />
<td>stemline<br /><br />
</td><br />
<td>YZ plane<br /><br />
</td><br />
<td>red line in sketch<br /><br />
</td><br />
</tr><br />
<tr><br />
<td>cross-section<br /><br />
</td><br />
<td>XZ plane<br /><br />
</td><br />
<td>green line in Sketch<br /><br />
</td><br />
</tr><br />
<tr><br />
<td>transom<br /><br />
</td><br />
<td>XY plane<br /><br />
</td><br />
<td>blue line in Sketch<br /><br />
</td><br />
</tr><br />
</table><br />
<br />
<br />
<!--T:17--><br />
Perhaps it is easier to see with 7 Sketches (one in YZ plane, one in XY plane and 5 in the XZ plane):<br />
<br />
<!--T:18--><br />
[[File:Macro_Half-Hull_ModelImage2.jpg]]<br />
<br />
<!--T:19--><br />
With 5 Sketches in the XZ plane it is becoming easier to perceive the shape of the hull. The next 2 pictures show the Sketch lines superimposed on the model FreeCAD constructs,<br />
<br />
<!--T:20--><br />
[[File:Macro_Half-Hull_ModelImage3.jpg]]<br />
<br />
<!--T:21--><br />
the second is the same model rotated 90 degrees so the bow is in the foreground:<br />
<br />
<!--T:22--><br />
[[File:Macro_Half-Hull_ModelImage3a.jpg]]<br />
<br />
<!--T:23--><br />
Some points to consider:<br />
<br />
<!--T:24--><br />
* the Sketches are only for:<br />
** the stemline (or bow line) in the YZ plane (red in the above diagram);<br />
** the top of the transom in the XY plane (blue in the above diagram);<br />
** multiple cross-sections of the hull in the XZ plane (green in the above diagram)<br />
* only the starboard side of the hull is drawn in the Sketches, the port side will be generated as a mirror image<br />
* each multiple-segment line must be in a separate Sketch<br />
* each Sketch must have the same number of line segments (which is 3 in the previous examples)<br />
* the more line segments in each Sketch, the closer the FreeCAD generated model will approximate a curved hull<br />
* there is no limit to the number of line segment in each Sketch, any number from one up<br />
* there is no limit to the number of Sketches in the XZ plane (i.e. cross-sections), any number from one up<br />
<br />
<!--T:25--><br />
With enough Sketches the model generated may even approach:<br />
<br />
<!--T:26--><br />
[[File:Macro_Half-Hull_ModelImage4.jpg]]<br />
<br />
<!--T:27--><br />
The HalfHull macro generates 4 models:<br />
<br />
<!--T:28--><br />
* starboard half-hull<br />
* port half-hull<br />
* complete hull<br />
* bulkheads for the complete hull, either with a flush deck or with a coachhouse<br />
<br />
<!--T:29--><br />
These models are all output in the unified location space of FreeCAD so they can be fitted together - for example the bulkheads can be inserted into the complete hull seamlessly. This is a picture of bulkheads in a boat model during construction:<br />
<br />
<!--T:30--><br />
[[File:Macro_Half-Hull_ModelImage5.jpg]]<br />
<br />
<!--T:31--><br />
As well as the bulkheads generated by the macro (note that these bulkheads are for a coachhouse rather than a flush deck):<br />
<br />
<!--T:32--><br />
[[File:Macro_Half-Hull_ModelImage6.jpg]]<br />
<br />
<!--T:33--><br />
The composite image below shows the main outputs from this software (the port side half-hull is actually not shown but it is the mirror of the starboard half-hull which is shown). The outputs are in clockwise order from the upper left corner:<br />
* starboard half-hull<br />
* complete hull<br />
* bulkheads (for flush deck, the bulkheads in the previous image were for a coachhouse deck)<br />
* the complete hull with the bulkheads inserted<br />
<br />
<!--T:34--><br />
[[File:Macro_Half-Hull_ModelImage7.jpg]]<br />
<br />
<!--T:35--><br />
As novelty features, the macro will also optionally produce plaques for the half-hulls, and even a bottle for the complete hull:<br />
<br />
<!--T:36--><br />
[[File:Macro_Half-Hull_ModelImage8.jpg]]<br />
<br />
<!--T:37--><br />
[[File:Macro_Half-Hull_ModelImage9.jpg]]<br />
<br />
==Installation== <!--T:38--><br />
All the code for halfHullModel.FCMacro is in one macro. So installation is comprised of copying the code to the appropriate Macro directory and invoking the Build Utility from the Macro menu, the Python console or a toolbar button (the preferred method).<br />
* see [[Macro_Install_HowTo]] for information on how to install this macro code<br />
* see [[Customize_ToolsBar]] for information how to install as a button on a toolbar<br />
<br />
==Usage== <!--T:39--><br />
<br />
<!--T:40--><br />
The FreeCAD operations involved in generating the hull model are rather complex and numerous. Things like the direction a line is drawn can cause the FreeCAD construction of the hull to either abort or turn out like:<br />
<br />
<!--T:41--><br />
[[File:Macro_Half-Hull_ModelUsage1.jpg]]<br />
<br />
<!--T:42--><br />
Consequently the steps below need to be followed closely. The macro does allow for certain data inconsistencies but generally if the data (i.e. the Sketches) are incorrect then the output will look like a cheese grater or the macro fill fail with an error.<br />
<br />
<!--T:43--><br />
The following instructions refer to the quadrants of the XY graph, this refers to the 4 quarters of the XY graph and they are labelled as follows:<br />
<br />
<!--T:44--><br />
[[File:Macro_Half-Hull_ModelUsage2.jpg]]<br />
<br />
<!--T:45--><br />
'''Create a New Document'''<br />
<br />
<!--T:46--><br />
The very first thing is to create a new document in FreeCAD [[Image:Document-new.svg|24px]]. This document will hold all the Sketches that make up your hull definition.<br />
<br />
===Create the Stemline=== <!--T:47--><br />
<br />
<!--T:48--><br />
The first step is one of creating data for the hull model to be made from. The data is supplied in the form of Sketches within FreeCAD. After the hull model is generated, if changes are to be made then the Sketches are simply edited, and the second step of running the macro repeatedly.<br />
<br />
<!--T:49--><br />
# create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the YZ-Plane <br />
# start at origin (0,0) and draw upwards into Quadrant I<br />[[File:Macro_Half-Hull_ModelUsage3.jpg]]<br />
# the bottom end of the stemline is at the origin (0,0) - this will be the point from where the placement of all the cross-sections and transom will be made<br />
# the number of line segments in this Sketch determines the number which will be required in each other Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
# for ease of identification it is probably worth naming the Sketch something like "stemline sketch"<br />
<br />
===Create the Cross-section Sketch(es)=== <!--T:50--><br />
# create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the XZ-Plane<br />
# the following dialog will appear:<br />[[File:Macro_Half-Hull_ModelScreenSnapshot1.jpg]]<br />The dialog is asking how far from the origin the Sketch should be placed. This will refer to how far the cross-section is from the bottom of the stemline (which was placed at (0,0)). The cross-sections can be equally spaced but need not be. The forward-most cross-section will be at Y=0 (i.e. the origin where the stemline bottom ends) or at Y<=0. The cross-sections will be at increasingly negative Y values until the transom is at the most negative Y value. In the example above, the cross-section Sketch will be placed 50 FreeCAD units from the origin on the negative Y axis.<br />
#start on the Y axis and draw upwards into Quadrant I<br />- the first (i.e. foremost) cross-section should start at origin (0,0) (or it will look odd as the stemline ends at 0,0) but other cross-sections need only start on the Y axis.<br />[[File:Macro_Half-Hull_ModelUsage3.jpg]]<br />
#use the same number of line segments as in the Stemline Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
#repeat as this step necessary, it may be quicker to copy this sketch and then space the copies on the Y-axis, modifications may be made to the individual Sketches as required<br />
#for naming, it will make things easier to give some sort of sequence to the cross-sections, starting at the bow (i.e. the stemline) and increasing towards the stern (i.e. the transom)<br />
<br />
===Create the Transom Sketch in the XY Plane=== <!--T:51--><br />
<br />
<!--T:52--><br />
#create a new sketch [[Image:Sketcher_NewSketch.svg|24px]], in the XY-Plane<br />
#start on the Y axis between quadrant III and IV, and draw upwards into Quadrant IV so that the end point is coincident with the rightmost point of the lowest cross-section Sketch in the YZ-plane<br />[[File:Macro_Half-Hull_ModelUsage4.jpg]]<br />
#use the same number of line segments as in the stemline Sketch<br />
# save sketch [[Image:Sketcher_LeaveSketch.svg|24px]]<br />
#for ease of identification it is probably worth naming the Sketch something like "transom sketch"<br />
<br />
<!--T:53--><br />
'''Save the New Document'''<br />
<br />
<!--T:54--><br />
Now save the document [[Image:Document-save.svg|24px]] which contains the Sketches that will define the hull shape, giving it some name that is descriptive<br />
<br />
<!--T:55--><br />
Once the Sketches have all been created and positioned, the document should look like this from the top view [[Image:View-top.svg|24px]]:<br />
<br />
<!--T:56--><br />
[[File:Macro_Half-Hull_ModelUsage5.jpg]]<br />
<br />
<!--T:57--><br />
The principal limitations for constructing the model are:<br />
* the stemline bottom should end at (0,0)<br />
* the bottom centremost end of each cross-section should end at the Y axis - note that it can have any Z value<br />
<br />
<!--T:58--><br />
This concludes the first step which is one of creating the data which the macro will use to create both half-hulls and complete-hulls. The second step is described in the following section which is titled User Interface<br />
<br />
==User Interface== <!--T:59--><br />
<br />
<!--T:60--><br />
In this step the macro will gather some information from the user and then process the input Sketches to generate the desired hull models. This is the only GUI image for the macro and is primarily configuration details for the production of the hull models from the Sketches:<br />
<br />
<!--T:61--><br />
[[File:Macro Half-Hull ModelScreenSnapshot2.jpg]]<br />
<br />
<!--T:62--><br />
The choices on the GUI window are:<br />
<br />
<!--T:63--><br />
* Starboard half-hull<br />- checking this will cause the macro to produce a starboard half-hull model<br />
**Mounting plaque<br />- if checked the macro will mount the half-hull on a plaque<br />
***Allow space for keel<br />- if checked will cause the half hull to be mounted higher on the plaque than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Port half-hull<br />- checking this will cause the macro to produce a port half-hull model<br />
** Mounting plaque<br />- if checked the macro will mount the half-hull on a plaque<br />
***Allow space for keel<br />- if checked will cause the half hull to be mounted higher on the plaque than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Complete hull<br />- checking this will cause the macro to produce a complete model<br />
** Bottle for complete hull<br />- if checked the macro will place the complete hull inside a transparent bottle (complete with cork)<br />
***Allow space for keel<br />- if checked will cause the half hull to be positioned higher in the bottle than the centre position, this is so a separately generated keel could be placed below the hull<br />
* Bulkheads for flush deck<br />- checking this will cause the macro to produce bulkheads whose tops are level with the top of the hull, bulkheads will not be generated for the most forward 2 cross-sections or the aft-most 2 cross-sections<br />
* Bulkheads for coachhouse<br />- checking this will cause the macro to produce bulkheads whose tops are possibly above the top of the hull.<br />
** Bulkheads to skip at bow determines how many cross-sections will be left without a bulkhead at the bow<br />
** Bulkheads to skip at stern determines how many cross-sections will be left without a bulkhead at the stern<br />
* The dimensions of the top of the bulkheads will be configured as per the following diagram:<br />[[File:Macro_Half-Hull_ModelUi1.jpg]]<br />
* Cancel button<br />- the execution is halted and the window closes<br />
* Re-Use Last File button<br />- the execution uses the data file AND SETTINGS from the the last run, any changes to settings are ignored<br />
* Select File button<br />- the standard Open File window is opened where the user can either select a file or Cancel and exit<br />
<br />
<!--T:64--><br />
When the macro runs it takes configuring data from the user and then reads Sketcher sketches in the selected input file.<br />
<br />
<!--T:65--><br />
<b>Note</b>: As the macro works through the Sketches it prints out any exceptions as well as some milestones on the Report View. If you get unexpected results or some parts are missing, that is probably the first place to check.<br />
<br />
==Options== <!--T:66--><br />
There are various types of bows and sterns for boats, with sterns having much more variety than bows. Here are examples of transoms and bows from the real world alongside the similar macro output:<br />
<br />
<!--T:67--><br />
'''Sheer Stern'''<br />
<br />
<!--T:68--><br />
Probably the most common stern, typical of all sizes of vessels from commercial ships through to rowing boats.<br />
<br />
<!--T:69--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption1.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption2.jpg]]</td><br />
</tr><br />
</table><br />
* the XY transom should be as close to the aftmost cross-section as is possible.<br />
<br />
<!--T:70--><br />
'''Sugar-Scoop Stern'''<br />
<br />
<!--T:71--><br />
Most likely to be found on a sailing yacht, it is a product of designing to maximise the length of the waterline to benefit from class rules for racing under sail.<br />
<br />
<!--T:72--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption3.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption4.jpg]]</td><br />
</tr><br />
</table><br />
* place the aftmost 2 cross-sections as close as is feasible, then rotate the aftmost of the two through to an angle of 45 degrees (or whatever is called for) around the X-axis<br />
<br />
<!--T:73--><br />
'''Canoe Stern'''<br />
<br />
<!--T:74--><br />
Found on all sizes of water craft, power and sail, pleasure and commercial.<br />
<br />
<!--T:75--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption5.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption6.jpg]]</td><br />
</tr><br />
</table><br />
* place the aftmost 2 cross-sections as close as is feasible, then rotate the aftmost of the two through to an angle of 45 degrees around the X-axis<br />
<br />
<!--T:76--><br />
'''Normal Bow'''<br />
<br />
<!--T:77--><br />
There is a lot less variety in bow shapes than with transoms:<br />
<br />
<!--T:78--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption7.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption8.jpg]]</td><br />
</tr><br />
</table><br />
<br />
<!--T:79--><br />
'''Trireme Bow'''<br />
<br />
<!--T:80--><br />
Although not seen very frequently in the last 2 millenia, this was once the definitive bow profile for war-making vessels:<br />
<br />
<!--T:81--><br />
<table style="width: 500pix" border="0"><br />
<tr><br />
<td>[[File:Macro_Half-Hull_ModelOption9.jpg]]</td><br />
<td>[[File:Macro_Half-Hull_ModelOption10.jpg]]</td><br />
</tr><br />
</table><br />
* in order for the bow to be correct the poly-line for the stemline needs to be drawn from the bottom to the top which will mean right to left in the Sketcher<br />
<br />
==Sample Files== <!--T:82--><br />
These files are samples of Sketch data to use with the macro, mainly they are the models for the screen snapshots in the Options section above. The files work with the Macro and so can be downloaded and played with to adapt to your specific requirements. The prefix of 5x3 (for example) means the model has 5 cross-sections and 3 line segments per sketch<br />
<br />
<!--T:83--><br />
{{VeryImportantMessage|FreeCAD presently has no way to offer these sample files for download, hopefully this will be changed soon}}<br />
<br />
<!--T:84--><br />
* 3x3 hull with the minimum number of Sketches (stemline, one cross-section, transom) and 3 line segments per Sketch<br />
* 5x3 with sheer transom<br />
* 5x3 with sugar scoop transom<br />
* 5x3 with canoe transom<br />
* 5x3 with trireme bow<br />
* 12x3 sailing yacht<br />
<br />
[[File:https://github.com/FreeCAD/Examples/raw/master/Half_Hull_Macro_ExampleFiles/12x3%20halfHullS.FCStd|12x3 Half-Hull example (no "?raw=true")]]<br />
<br />
[https://github.com/FreeCAD/Examples/raw/master/Half_Hull_Macro_ExampleFiles/12x3%20halfHullS.FCStd?raw=true|12x3 Half-Hull example (with "?raw=true")]<br />
<br />
[[File:https://github.com/FreeCAD/FreeCAD-library/blob/master/Furniture/Chairs/IkeaLikeChair.fcstd|chair example from forum (no "?raw=true")]]<br />
<br />
[[File:https://github.com/FreeCAD/FreeCAD-library/blob/master/Furniture/Chairs/IkeaLikeChair.fcstd?raw=true|chair example from forum (with "?raw=true")]]<br />
<br />
==Remarks== <!--T:85--><br />
* almost all the examples on this page are generated with only 3 line segments defining the side of the hull which gives a very faceted appearance, increasing the number of segments in each Sketch would generate a much smoother surface which would increase the realism<br />
* doesn't do keels, skegs or rudders, in other words, it doesn't do any of the wet area<br />
* doesn't do square bows like push-boats or towed barges<br />
* doesn't do submarines (although it will do the lower half of a submarine)<br />
<br />
==Known Problems== <!--T:86--><br />
The 'Ruled Surface' feature of FreeCAD is used to generate the hull sections from the Sketches. It can sometimes generate the wrong result and display a grater like surface instead of a smooth planar one. This will typically occur when the Sketches are rotated such as when a Sugar Scoop stern is modeled. Also angling a Sheer Transom stern can cause this. If it occurs then typically it will do so in either the half-hull models or the complete hull model - it never seems to occur in all three models for the same hull. Also it usually only happens at the extreme bow or stern. If it happens to section in the middle of the boat then most likely one of the Sketches was drawn in the wrong direction (i.e. either random sequence or top-down where as all lines should be drawn bottom-up)<br />
<br />
<!--T:87--><br />
It can usually be removed by using the following steps:<br />
* in the Model tab of the Combo View, click on the faulty segment to select it, the faulty segment will show as highlighted on the display<br />
* select the Data tab on the bottom half of the Combo View, the lower part of the window will have a Label "Ruled Surface" with a single parameter 'Orientation'<br />
* there is a popup menu to the right which has the values 'Automatic', 'Forward', 'Reversed', it will initially be set to 'Automatic'<br />
* try one of the other settings (remembering the faulty segment must still be selected in the upper part of the Combo View) which will usually correct the problem<br />
<br />
<!--T:88--><br />
The following screen snapshot shows the relevant portion of the screen:<br />
<br />
<!--T:89--><br />
[[File:Macro_Half-Hull_ModelKnownProblems1.jpg]]<br />
<br />
==Future Possibilities== <!--T:90--><br />
<br />
<!--T:91--><br />
* replace line segments of cross-sections with curved lines<br />- this is just at the idea stage but would give a much smoother surface in the vertical dimension, however the horizontal surface would still be faceted as it is now<br />
* integrate with Draft workbench to produce drawings from models<br />- an initial goal, but the feasibility has not been investigated<br />
* handle keels, skegs and rudders<br />- one work around for keels with the present system is to model the keel as a half-hull on it's own and then assemble it onto the bottom of the main hull; this would still do nothing for rudders and skegs though<br />
<br />
==Glossary== <!--T:92--><br />
As with any ancient and practiced trade, a rich and sometimes confusing vocabulary has developed around ships, boats and nautical practices. In describing this macro it is both awkward and inefficient to describe the process without using the correct and accurate terms. The obvious problem is that the average lay person will be unfamiliar with such terminology, hence this vocabulary:<br />
<table style="width: 100%;" border="0"><br />
<tr><br />
<td>aft<br />
</td><br />
<td>the rear aspect of anything on a boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>chine</td><br />
<td style="height: 19.2px;">a planar facet of a hull, can be used to<br />
approximate a curved surface or as a finished building technique</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td style="vertical-align: top;">coachhouse<br />
</td><br />
<td>the part of the central deck which is raised above the deck level - usually to accommodate increased headroom in the interior of the boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>flush deck<br />
</td><br />
<td>a deck that runs smoothly from the top of one side of the hull to the other, the converse to a coachhouse deck<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>forward<br />
</td><br />
<td>also 'fore'; the front aspect of anything on a boat<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>port<br />
</td><br />
<td>lefthand side looking forward<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>starboard<br />
</td><br />
<td>righthand side looking forward<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>stemline<br />
</td><br />
<td>the sloped vertical edge which is the bow of a hull<br />
</td><br />
</tr><br />
<tr><br />
<td><br /><br />
</td><br />
<td><br /><br />
</td><br />
</tr><br />
<tr><br />
<td>transom<br />
</td><br />
<td>the curved top edge of the stern face which can be flat or curved<br />
</td><br />
</tr><br />
</table><br />
<br />
==Links== <!--T:93--><br />
* [http://en.wikipedia.org/wiki/Half_hull_model_ship Half Hull Model Ship] (Wikipedia)<br />
* [http://www.halfhullshipmodels.com/smf/discussions-of-half-hulls-and-ship-models/understanding-and-practising-half-hull-boat-modelling/?PHPSESSID=56fedd9f6fa2db453a77347f10d57b7f Why Half Hulls] (Maritime Half Hull Ship Models and Nautical Art website)<br />
* [http://pages.swcp.com/usvmyg/design/design.htm Traditional Model Yacht Design] (US Vintage Model Yacht Group)<br />
<br />
==Script== <!--T:94--><br />
This script is running bug free. But due to the large range of possible inputs it may fail for some inputs. If so please report it.<br />
<br />
<!--T:96--><br />
The script is too long for the Wiki to display so it must be copied or downloaded from [http://pastebin.com/raw.php?i=tZMpUi6F unabbreviated script on pastebin.com]<br />
</translate><br />
<br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Compile_on_Windows&diff=153824Compile on Windows2015-05-07T00:06:53Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This article explains step by step '''how to compile FreeCAD on Windows'''.<br />
<br />
<!--T:74--><br />
See also [[Compile_on_Windows_with_VS2013|Compile on Windows with Visual Studio 2013]]<br />
<br />
== Prerequisites == <!--T:2--><br />
<br />
===Required programs=== <!--T:100--><br />
* [http://git-scm.com/ Git] There are a number of alternatives such as GitCola, Tortoise Git, and others.<br />
* [http://www.cmake.org/cmake/resources/software.html CMake] version 2.x.x or Cmake 3.x.x<br />
* Python >2.5 (This is only required if NOT using the Libpack. The Libpack comes with a minimal Python(2.7.x) suitable for compiling and running FreeCAD)<br />
<br />
===Source Code=== <!--T:98--><br />
====Using Git (Preferred)====<br />
<br />
<!--T:102--><br />
To create a local tracking branch and download the source code you need to open a terminal(command prompt) and cd to the directory you want the source, then type:<br />
<br />
<!--T:103--><br />
<syntaxhighlight>git clone git://git.code.sf.net/p/free-cad/code free-cad-code</syntaxhighlight><br />
<br />
===Compiler=== <!--T:71--><br />
On Windows, the default compiler is M$ Visual Studio, be it the Express or Full 2008, 2012, or 2013 versions. You will also need to install the Windows Platform SDK to get several required libraries (e.g. Windows.h), though they may not be required with M$ compilers (either full or express).<br />
<br />
<!--T:99--><br />
{{Note|Note|Though it may be possible to use Cygwin or MinGW gcc it's not tested or ported so far.}}<br />
<br />
===Third Party Libraries=== <!--T:3--><br />
You will need all of the [[Third Party Libraries]] to successfully compile FreeCAD. If you use the M$ compilers it is recommended to install a [http://sourceforge.net/projects/free-cad/files/FreeCAD%20LibPack/ FreeCAD LibPack], which provides all of the required libraries to build FreeCAD in Windows.<br />
You will need the Libpack for your architecture and compiler. FreeCAD currently supplies Libpack Version11 for x32 and x64, for VS9 2008, VS11 2012, and VS12 2013.<br />
<br />
===Optional programs=== <!--T:101--><br />
* [http://sourceforge.net/projects/nsis/ NSIS] Windows installer (note: formerly, [http://wixtoolset.org/ WiX] installer was used - now under transition to NSIS) - if you want to make msi installer<br />
<br />
===System Path Configuration=== <!--T:5--><br />
Inside your system path be sure to set the correct paths to the following programs:<br />
* git (not tortoiseGit, but git.exe) This is necessary for Cmake to properly update the "About FreeCAD" information in the version.h file which allows FreeCAD to report the proper version in About FreeCAD from the help menu.<br />
*Optionally you can include the Libpack in your system path. This is useful if you plan to build multiple configurations/versions of FreeCAD, you will need to copy less files as explained later in the build process.<br />
<br />
<!--T:104--><br />
To add to your system path:<br />
<br />
<!--T:105--><br />
* Start menu -> Right click on Computer -> Properties -> Advanced system settings<br />
* Advanced tab -> Environment Variables...<br />
* Add the PATH/TO/GIT to the '''PATH'''<br />
* It should be separated from the others with a semicolon `;`<br />
<br />
== Configuration with CMake == <!--T:6--><br />
<br />
=== The switch to CMake === <!--T:7--><br />
{{Note|Warning|Since FreeCAD version 0.9 we have stopped providing .vcproj files.}}<br />
Currently, FreeCAD uses the CMake build system to generate build and make files that can be used between different operating systems and compilers. <br />
If you want build former versions of FreeCAD (0.8 and older) see<br />
[[#Building older versions|Building older versions]] later in this article.<br />
<br />
<!--T:8--><br />
We switched because it became more and more painful to maintain project files for 30+<br />
build targets and x compilers. CMake gives us the possibility to support alternative <br />
IDEs, like Code::Blocks, Qt Creator and Eclipse CDT. <br />
The main compiler is still M$ VC9 Express, though. But we plan for the future a build process on <br />
Windows without proprietary compiler software.<br />
<br />
=== CMake === <!--T:52--><br />
The first step to build FreeCAD with CMake is to configure the environment. There<br />
are two ways to do it:<br />
* Using the LibPack<br />
* Installing all the needed libraries and let CMake find them<br />
<br />
<br />
<!--T:53--><br />
The following process will assume you are using the LipPack. The second option may be discussed<br />
in [[#Options for the Build Process|Options for the Build Process]].<br />
<br />
=== Configure CMake using GUI === <!--T:75--><br />
* Open the CMake GUI<br />
* Specify the source folder<br />
* Specify the build folder<br />
* Click '''Configure'''<br />
* Specify the generator according to the IDE that you'll use. <br />
<br />
<br />
<!--T:76--><br />
This will begin configuration and should fail because the location of<br />
'''FREECAD_LIBPACK_DIR''' is unset.<br />
* Expand the '''FREECAD''' category and set '''FREECAD_LIBPACK_DIR''' to the correct location<br />
* Check '''FREECAD_USE_EXTERNAL_PIVY'''<br />
* Optionally Check '''FREECAD_USE_FREETYPE''' this is required to use the Draft WB's Shape String functionality<br />
* Click '''Configure''' again<br />
* There should be no errors<br />
* Click '''Generate'''<br />
* Close CMake<br />
* Copy '''libpack\bin''' folder into the new build folder CMake created<br />
<br />
=== Options for the Build Process === <!--T:77--><br />
<br />
<!--T:78--><br />
The CMake build system gives us a lot more flexibility over the build process. That means<br />
we can switch on and off some features or modules. It's in a way like the Linux kernel build.<br />
You have a lot of switches to determine the build process.<br />
<br />
<!--T:79--><br />
Here is the description of some of these switches. They will most likely change a lot in the future<br />
because we want to increase the build flexibility a lot more.<br />
<br />
<br />
<!--T:80--><br />
{| class="wikitable" style="text-align:left"<br />
|+ Link table<br />
|-<br />
! Variable name !! Description !! Default<br />
|- <br />
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || On Win32 on, otherwise off <br />
|- <br />
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD SOURCE dir<br />
|- <br />
| FREECAD_BUILD_GUI || Build FreeCAD with all Gui related modules || ON<br />
|- <br />
| FREECAD_BUILD_CAM || Build the CAM module, experimental! || OFF<br />
|- <br />
| FREECAD_BUILD_INSTALLER || Create the project files for the Windows installer. || OFF<br />
|- <br />
| FREECAD_BUILD_DOXYGEN_DOCU || Create the project files for source code documentation. || OFF<br />
|- <br />
| FREECAD_MAINTAINERS_BUILD || Switch on stuff needed only when you do a Release build. || OFF<br />
|}<br />
<br />
<!--T:12--><br />
If you are building with Qt Creator, jump to<br />
[[#Building with Qt Creator|Building with Qt Creator]],<br />
otherwise proceed to<br />
[[#Building with Visual Studio 9 2008|Building with Visual Studio 9 2008]].<br />
<br />
== Building FreeCAD == <!--T:81--><br />
Depending on your current setup, the process for building FreeCAD will be slightly different. This is due to the differences in available software and software versions for each operating system.<br />
<br />
<br />
<!--T:82--><br />
The following procedure will work for compiling on Windows Vista/7/8, for XP an alternate VS tool set is required for VS 2012 and 2013, which has not been tested successfully with the current Libpacks. To target XP(both x32 and x64) it is recommended to use VS2008 and Libpack FreeCADLibs_11.0_x86_VC9.7z<br />
<br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
=== Building with Visual Studio 12 2013 === <!--T:83--><br />
<div class="mw-collapsible-content"><br />
Make sure to specify '''Visual Studio 12 x64'''(or the alternate C-Compiler you are using) as the generator in CMake before you continue.<br />
<br />
<!--T:90--><br />
*Start Visual Studio 12 2013 by clicking on the desktop icon created at installation.<br />
<br />
<!--T:91--><br />
*Open the project by:<br />
File -> Open -> Project/Solution<br />
<br />
<!--T:92--><br />
*Open FreeCAD_Trunk.sln from the build folder CMake created<br />
<br />
<!--T:93--><br />
*Switch the Solutions Configuration drop down at the top to '''Release''' '''X64'''<br />
This may take a while depending on your sytem<br />
<br />
<!--T:94--><br />
*Build -> Build Solution<br />
<br />
<!--T:95--><br />
*This will take a long time... <br />
<br />
<!--T:96--><br />
If you don't get any errors you are done. Exit Visual Studio and start FreeCAD by double clicking the FreeCAD icon in the bin folder of the build directory.<br />
</div><br />
</div><br />
<br />
<!--T:97--><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<br />
=== Building with Visual Studio 9 2008 === <!--T:84--><br />
<div class="mw-collapsible-content"><br />
{{Note|Warning|Visual C++ Express 2008 does not support 64-bit compilation. There is a workaround [http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ here]}}<br />
<br />
<!--T:85--><br />
Make sure to specify '''Visual Studio 9 2008''' as the generator in CMake before you continue.<br />
* Open '''Visual Studio 9 2008''' or '''Visual C++ Express 2008'''<br />
* File -> Open -> Project/Solution<br />
* Open '''FreeCAD_Trunk.sln''' from the build folder CMake created<br />
* Switch the '''Solutions Configuration''' dropdown at the top to '''Release'''<br />
* Build -> Build Solution to build<br />
* Wait until the Build is finished (will take a while)<br />
<br />
==== After Building ==== <!--T:86--><br />
* Debug -> Start without Debugging<br />
* Click popup menu under '''Executable File Name''' and choose '''Browse'''<br />
* Go to the build\bin folder and choose '''FreeCAD.exe'''<br />
* You are done!<br />
</div><br />
</div><br />
<br />
<!--T:87--><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<br />
=== Building with Qt Creator === <!--T:88--><br />
<div class="mw-collapsible-content"><br />
<br />
==== Installation and configuration of Qt Creator ==== <!--T:61--><br />
* Download and install [https://qt-project.org/downloads Qt Creator]<br />
* Tools -> Options -> Text Editor -> Behavior tab:<br />
** File Encodings -> Default Encodings:<br />
** Set to: '''ISO-8859-1 /...csISOLatin1''' (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)<br />
* Tools -> Options -> Build & Run:<br />
** CMake tab<br />
*** Fill Executable box with path to cmake.exe<br />
** Kits tab<br />
*** Name: MSVC 2008<br />
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)<br />
*** Debugger: Auto detected...<br />
*** Qt version: None<br />
** General tab<br />
*** Uncheck: Always build project before deploying it<br />
*** Uncheck: Always deploy project before running it<br />
<br />
==== Import project and Build ==== <!--T:62--><br />
* File -> Open File or Project<br />
* Open '''CMakeLists.txt''' which is in the top level of the source<br />
* This will start CMake<br />
* Choose build directory and click next<br />
* Set generator to '''NMake Generator (MSVC 2008)'''<br />
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.<br />
<br />
<!--T:64--><br />
Now FreeCAD can be built<br />
* Build -> Build All<br />
* This will take a long time...<br />
<br />
<!--T:65--><br />
Once complete, it can be run:<br />
There are 2 green triangles at the bottom left. One is debug.<br />
The other is run. Pick whichever you want.<br />
<br />
<!--T:89--><br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
=== Command line build === <!--T:66--><br />
<div class="mw-collapsible-content"><br />
Here an example how to build FreeCAD from the Command line:<br />
</translate><br />
<syntaxhighlight><br />
rem @echo off<br />
rem Build script, uses vcbuild to completetly build FreeCAD<br />
<br />
rem update trunc<br />
d:<br />
cd "D:\_Projekte\FreeCAD\FreeCAD_0.9"<br />
"C:\Program Files (x86)\Subversion\bin\svn.exe" update <br />
<br />
rem set the aprobiated Variables here or outside in the system<br />
<br />
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem<br />
set INCLUDE=<br />
set LIB=<br />
<br />
rem Register VS Build programms<br />
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"<br />
<br />
rem Set Standard include paths<br />
set INCLUDE=%INCLUDE%;%FrameworkSDKDir%\include<br />
set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include<br />
<br />
rem Set lib Pathes<br />
set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib<br />
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Visual Studio\VC98\Lib<br />
<br />
rem Start the Visuall Studio build process<br />
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "D:\_Projekte\FreeCAD FreeCAD_0.9_build\FreeCAD_trunk.sln" /useenv<br />
</syntaxhighlight><br />
</div><br />
</div><br />
<br />
<translate><br />
<br />
== Building older versions == <!--T:67--><br />
<br />
=== Using LibPack === <!--T:68--><br />
To make it easier to get FreeCAD compiled, we provide a collection of all<br />
needed libraries. It's called the [[Third Party Libraries|LibPack]]. You can find it on the [http://sourceforge.net/project/showfiles.php?group_id=49159 download page] on<br />
sourceforge.<br />
<br />
<!--T:26--><br />
You need to set the following environment variables:<br />
<br />
<!--T:27--><br />
:'''FREECADLIB''' = "D:\Wherever\LIBPACK"<br />
<br />
<!--T:28--><br />
:'''QTDIR''' = "%FREECADLIB%"<br />
<br />
<!--T:29--><br />
Add "%FREECADLIB%\bin" and "%FREECADLIB%\dll" to the system ''PATH'' variable. Keep in mind that you have to replace "%FREECADLIB%" with the path name, since Windows does not recursively replace environment variables.<br />
<br />
==== Directory setup in Visual Studio ==== <!--T:30--><br />
Some search path of Visual Studio need to be set. <br />
To change them, use the menu ''Tools→Options→Directory<br />
<br />
===== Includes ===== <!--T:31--><br />
Add the following search path to the include path search list:<br />
* %FREECADLIB%\include<br />
* %FREECADLIB%\include\Python<br />
* %FREECADLIB%\include\boost<br />
* %FREECADLIB%\include\xercesc<br />
* %FREECADLIB%\include\OpenCascade<br />
* %FREECADLIB%\include\OpenCV<br />
* %FREECADLIB%\include\Coin<br />
* %FREECADLIB%\include\SoQt<br />
* %FREECADLIB%\include\QT<br />
* %FREECADLIB%\include\QT\Qt3Support<br />
* %FREECADLIB%\include\QT\QtCore<br />
* %FREECADLIB%\include\QT\QtGui<br />
* %FREECADLIB%\include\QT\QtNetwork<br />
* %FREECADLIB%\include\QT\QtOpenGL<br />
* %FREECADLIB%\include\QT\QtSvg<br />
* %FREECADLIB%\include\QT\QtUiTools<br />
* %FREECADLIB%\include\QT\QtXml<br />
* %FREECADLIB%\include\Gts<br />
* %FREECADLIB%\include\zlib<br />
<br />
===== Libs ===== <!--T:32--><br />
Add the following search path to the lib path search list:<br />
* %FREECADLIB%\lib<br />
<br />
===== Executables ===== <!--T:33--><br />
Add the following search path to the executable path search list:<br />
* %FREECADLIB%\bin<br />
* TortoiseSVN binary installation directory, usually "C:\Programm Files\TortoiseSVN\bin", this is needed for a distribution build when ''SubWVRev.exe'' is used to extract the version number from Subversion.<br />
<br />
==== Python needed ==== <!--T:34--><br />
During the compilation some Python scripts get executed. So the Python<br />
interpreter has to function on the OS. Use a command box to check it. If<br />
the Python library is not properly installed you will get an error message<br />
like ''Cannot find python.exe''. If you use the LibPack you can also use the<br />
python.exe in the bin directory.<br />
<br />
==== Special for VC8 ==== <!--T:35--><br />
When building the project with VC8, you have to change the link information for the WildMagic library, since you need a different version for VC6 and VC8. Both versions are supplied in ''LIBPACK/dll''. In the project properties for ''AppMesh'' change the library name for the ''wm.dll'' to the VC8 version. Take care to change it in Debug ''and'' Release configuration.<br />
<br />
=== Compile === <!--T:36--> <br />
<br />
<!--T:37--><br />
After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC <br />
<br />
=== After Compiling === <!--T:38--><br />
To get FreeCAD up and running from the compiler environment you need to copy a few files from the [[Third Party Libraries|LibPack]] to the ''bin'' folder where FreeCAD.exe is installed after a successful build:<br />
<br />
<!--T:39--><br />
* ''python.exe'' and ''python_d.exe'' from ''LIBPACK/bin''<br />
* ''python25.dll'' and ''python25_d.dll'' from ''LIBPACK/bin''<br />
* ''python25.zip'' from ''LIBPACK/bin''<br />
* make a copy of ''Python25.zip'' and rename it to ''Python25_d.zip''<br />
* ''QtCore4.dll'' from ''LIBPACK/bin''<br />
* ''QtGui4.dll'' from ''LIBPACK/bin''<br />
* ''boost_signals-vc80-mt-1_34_1.dll'' from ''LIBPACK/bin''<br />
* ''boost_program_options-vc80-mt-1_34_1.dll'' from ''LIBPACK/bin''<br />
* ''xerces-c_2_8.dll'' from ''LIBPACK/bin''<br />
* ''zlib1.dll'' from ''LIBPACK/bin''<br />
* ''coin2.dll'' from ''LIBPACK/bin''<br />
* ''soqt1.dll'' from ''LIBPACK/bin''<br />
* ''QtOpenGL4.dll'' from ''LIBPACK/bin''<br />
* ''QtNetwork4.dll'' from ''LIBPACK/bin''<br />
* ''QtSvg4.dll'' from ''LIBPACK/bin''<br />
* ''QtXml4.dll'' from ''LIBPACK/bin''<br />
<br />
<!--T:40--><br />
When using a [[Third Party Libraries|LibPack]] with a Python version older than 2.5 you have to copy two further files:<br />
* ''zlib.pyd'' and ''zlib_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python to open the zipped python library.<br />
* ''_sre.pyd'' and ''_sre_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python for the built in help system.<br />
<br />
<!--T:41--><br />
If you don't get it running due to a Python error it is very likely that one of the ''zlib*.pyd'' files is missing.<br />
<br />
=== Additional stuff === <!--T:42--> <br />
<br />
<!--T:43--><br />
If you whant to build the source code documentation you need [http://www.stack.nl/~dimitri/doxygen/ DoxyGen].<br />
<br />
<!--T:44--><br />
To create an intstaller package you need [http://wix.sourceforge.net/ WIX].<br />
<br />
<br />
<!--T:45--><br />
During the compilation some Python scripts get executed. So the Python interpreter has to work properly.<br />
<br />
<!--T:46--><br />
For more details have also a look to ''README.Linux'' in your sources.<br />
<br />
<!--T:47--><br />
First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under <br />
</translate><br />
<pre><br />
//src/Tools/plugins/widget//.<br />
</pre><br />
<translate><br />
<!--T:48--><br />
So far we don't provide a makefile -- but calling <br />
</translate><br />
<pre><br />
qmake plugin.pro<br />
</pre><br />
<translate><br />
<!--T:49--><br />
creates it. Once that's done, calling ''make'' will create the library <br />
</translate><br />
<pre><br />
//libFreeCAD_widgets.so//.<br />
</pre><br />
<translate><br />
<!--T:50--><br />
To make this library known to your ''Qt Designer'' you have to copy the file to<br />
</translate><br />
<pre><br />
//$QTDIR/plugin/designer//.<br />
</pre><br />
<br />
== References ==<br />
{{reflist}}<br />
<br />
<translate><br />
<br />
<!--T:69--><br />
{{docnav|Tracker|CompileOnUnix}}<br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Compile_on_Windows&diff=153823Compile on Windows2015-05-07T00:04:48Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This article explains step by step '''how to compile FreeCAD on Windows'''.<br />
<br />
<!--T:74--><br />
See also [[Compile_on_Windows_with_VS2013|Compile on Windows with Visual Studio 2013]]<br />
<br />
== Prerequisites == <!--T:2--><br />
<br />
===Required programs=== <!--T:100--><br />
* [http://git-scm.com/ Git] There are a number of alternatives such as GitCola, Tortoise Git, and others.<br />
* [http://www.cmake.org/cmake/resources/software.html CMake] version 2.x.x or Cmake 3.x.x<br />
* Python >2.5 (This is only required if NOT using the Libpack. The Libpack comes with a minimal Python(2.7.x) suitable for compiling and running FreeCAD)<br />
<br />
===Source Code=== <!--T:98--><br />
====Using Git (Preferred)====<br />
<br />
<!--T:102--><br />
To create a local tracking branch and download the source code you need to open a terminal(command prompt) and cd to the directory you want the source, then type:<br />
<br />
<!--T:103--><br />
<syntaxhighlight>git clone git://git.code.sf.net/p/free-cad/code free-cad-code</syntaxhighlight><br />
<br />
===Compiler=== <!--T:71--><br />
On Windows, the default compiler is M$ Visual Studio, be it the Express or Full 2008, 2012, or 2013 versions. You will also need to install the Windows Platform SDK to get several required libraries (e.g. Windows.h), though they may not be required with M$ compilers (either full or express).<br />
<br />
<!--T:99--><br />
{{Note|Note|Though it may be possible to use Cygwin or MinGW gcc it's not tested or ported so far.}}<br />
<br />
===Third Party Libraries=== <!--T:3--><br />
You will need all of the [[Third Party Libraries]] to successfully compile FreeCAD. If you use the M$ compilers it is recommended to install a [http://sourceforge.net/projects/free-cad/files/FreeCAD%20LibPack/ FreeCAD LibPack], which provides all of the required libraries to build FreeCAD in Windows.<br />
You will need the Libpack for your architecture and compiler. FreeCAD currently supplies Libpack Version11 for x32 and x64, for VS9 2008, VS11 2012, and VS12 2013.<br />
<br />
===Optional programs=== <!--T:101--><br />
* [http://sourceforge.net/projects/nsis/ NSIS] Windows installer (note: formerly, [http://wixtoolset.org/ WiX] installer was used - now under transition to NSIS) - if you want to make msi installer<br />
<br />
===System Path Configuration=== <!--T:5--><br />
Inside your system path be sure to set the correct paths to the following programs:<br />
* git (not tortoiseGit, but git.exe) This is necessary for Cmake to properly update the "About FreeCAD" information in the version.h file.<br />
*Optionally you can include the Libpack in your system path. This is useful if you plan to build multiple configurations/versions of FreeCAD, you will need to copy less files as explained later in the build process.<br />
<br />
<!--T:104--><br />
To add to your system path:<br />
<br />
<!--T:105--><br />
* Start menu -> Right click on Computer -> Properties -> Advanced system settings<br />
* Advanced tab -> Environment Variables...<br />
* Add the PATH/TO/GIT to the '''PATH'''<br />
* It should be separated from the others with a semicolon `;`<br />
<br />
== Configuration with CMake == <!--T:6--><br />
<br />
=== The switch to CMake === <!--T:7--><br />
{{Note|Warning|Since FreeCAD version 0.9 we have stopped providing .vcproj files.}}<br />
Currently, FreeCAD uses the CMake build system to generate build and make files that can be used between different operating systems and compilers. <br />
If you want build former versions of FreeCAD (0.8 and older) see<br />
[[#Building older versions|Building older versions]] later in this article.<br />
<br />
<!--T:8--><br />
We switched because it became more and more painful to maintain project files for 30+<br />
build targets and x compilers. CMake gives us the possibility to support alternative <br />
IDEs, like Code::Blocks, Qt Creator and Eclipse CDT. <br />
The main compiler is still M$ VC9 Express, though. But we plan for the future a build process on <br />
Windows without proprietary compiler software.<br />
<br />
=== CMake === <!--T:52--><br />
The first step to build FreeCAD with CMake is to configure the environment. There<br />
are two ways to do it:<br />
* Using the LibPack<br />
* Installing all the needed libraries and let CMake find them<br />
<br />
<br />
<!--T:53--><br />
The following process will assume you are using the LipPack. The second option may be discussed<br />
in [[#Options for the Build Process|Options for the Build Process]].<br />
<br />
=== Configure CMake using GUI === <!--T:75--><br />
* Open the CMake GUI<br />
* Specify the source folder<br />
* Specify the build folder<br />
* Click '''Configure'''<br />
* Specify the generator according to the IDE that you'll use. <br />
<br />
<br />
<!--T:76--><br />
This will begin configuration and should fail because the location of<br />
'''FREECAD_LIBPACK_DIR''' is unset.<br />
* Expand the '''FREECAD''' category and set '''FREECAD_LIBPACK_DIR''' to the correct location<br />
* Check '''FREECAD_USE_EXTERNAL_PIVY'''<br />
* Optionally Check '''FREECAD_USE_FREETYPE''' this is required to use the Draft WB's Shape String functionality<br />
* Click '''Configure''' again<br />
* There should be no errors<br />
* Click '''Generate'''<br />
* Close CMake<br />
* Copy '''libpack\bin''' folder into the new build folder CMake created<br />
<br />
=== Options for the Build Process === <!--T:77--><br />
<br />
<!--T:78--><br />
The CMake build system gives us a lot more flexibility over the build process. That means<br />
we can switch on and off some features or modules. It's in a way like the Linux kernel build.<br />
You have a lot of switches to determine the build process.<br />
<br />
<!--T:79--><br />
Here is the description of some of these switches. They will most likely change a lot in the future<br />
because we want to increase the build flexibility a lot more.<br />
<br />
<br />
<!--T:80--><br />
{| class="wikitable" style="text-align:left"<br />
|+ Link table<br />
|-<br />
! Variable name !! Description !! Default<br />
|- <br />
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || On Win32 on, otherwise off <br />
|- <br />
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD SOURCE dir<br />
|- <br />
| FREECAD_BUILD_GUI || Build FreeCAD with all Gui related modules || ON<br />
|- <br />
| FREECAD_BUILD_CAM || Build the CAM module, experimental! || OFF<br />
|- <br />
| FREECAD_BUILD_INSTALLER || Create the project files for the Windows installer. || OFF<br />
|- <br />
| FREECAD_BUILD_DOXYGEN_DOCU || Create the project files for source code documentation. || OFF<br />
|- <br />
| FREECAD_MAINTAINERS_BUILD || Switch on stuff needed only when you do a Release build. || OFF<br />
|}<br />
<br />
<!--T:12--><br />
If you are building with Qt Creator, jump to<br />
[[#Building with Qt Creator|Building with Qt Creator]],<br />
otherwise proceed to<br />
[[#Building with Visual Studio 9 2008|Building with Visual Studio 9 2008]].<br />
<br />
== Building FreeCAD == <!--T:81--><br />
Depending on your current setup, the process for building FreeCAD will be slightly different. This is due to the differences in available software and software versions for each operating system.<br />
<br />
<br />
<!--T:82--><br />
The following procedure will work for compiling on Windows Vista/7/8, for XP an alternate VS tool set is required for VS 2012 and 2013, which has not been tested successfully with the current Libpacks. To target XP(both x32 and x64) it is recommended to use VS2008 and Libpack FreeCADLibs_11.0_x86_VC9.7z<br />
<br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
=== Building with Visual Studio 12 2013 === <!--T:83--><br />
<div class="mw-collapsible-content"><br />
Make sure to specify '''Visual Studio 12 x64'''(or the alternate C-Compiler you are using) as the generator in CMake before you continue.<br />
<br />
<!--T:90--><br />
*Start Visual Studio 12 2013 by clicking on the desktop icon created at installation.<br />
<br />
<!--T:91--><br />
*Open the project by:<br />
File -> Open -> Project/Solution<br />
<br />
<!--T:92--><br />
*Open FreeCAD_Trunk.sln from the build folder CMake created<br />
<br />
<!--T:93--><br />
*Switch the Solutions Configuration drop down at the top to '''Release''' '''X64'''<br />
This may take a while depending on your sytem<br />
<br />
<!--T:94--><br />
*Build -> Build Solution<br />
<br />
<!--T:95--><br />
*This will take a long time... <br />
<br />
<!--T:96--><br />
If you don't get any errors you are done. Exit Visual Studio and start FreeCAD by double clicking the FreeCAD icon in the bin folder of the build directory.<br />
</div><br />
</div><br />
<br />
<!--T:97--><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<br />
=== Building with Visual Studio 9 2008 === <!--T:84--><br />
<div class="mw-collapsible-content"><br />
{{Note|Warning|Visual C++ Express 2008 does not support 64-bit compilation. There is a workaround [http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ here]}}<br />
<br />
<!--T:85--><br />
Make sure to specify '''Visual Studio 9 2008''' as the generator in CMake before you continue.<br />
* Open '''Visual Studio 9 2008''' or '''Visual C++ Express 2008'''<br />
* File -> Open -> Project/Solution<br />
* Open '''FreeCAD_Trunk.sln''' from the build folder CMake created<br />
* Switch the '''Solutions Configuration''' dropdown at the top to '''Release'''<br />
* Build -> Build Solution to build<br />
* Wait until the Build is finished (will take a while)<br />
<br />
==== After Building ==== <!--T:86--><br />
* Debug -> Start without Debugging<br />
* Click popup menu under '''Executable File Name''' and choose '''Browse'''<br />
* Go to the build\bin folder and choose '''FreeCAD.exe'''<br />
* You are done!<br />
</div><br />
</div><br />
<br />
<!--T:87--><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<br />
=== Building with Qt Creator === <!--T:88--><br />
<div class="mw-collapsible-content"><br />
<br />
==== Installation and configuration of Qt Creator ==== <!--T:61--><br />
* Download and install [https://qt-project.org/downloads Qt Creator]<br />
* Tools -> Options -> Text Editor -> Behavior tab:<br />
** File Encodings -> Default Encodings:<br />
** Set to: '''ISO-8859-1 /...csISOLatin1''' (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)<br />
* Tools -> Options -> Build & Run:<br />
** CMake tab<br />
*** Fill Executable box with path to cmake.exe<br />
** Kits tab<br />
*** Name: MSVC 2008<br />
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)<br />
*** Debugger: Auto detected...<br />
*** Qt version: None<br />
** General tab<br />
*** Uncheck: Always build project before deploying it<br />
*** Uncheck: Always deploy project before running it<br />
<br />
==== Import project and Build ==== <!--T:62--><br />
* File -> Open File or Project<br />
* Open '''CMakeLists.txt''' which is in the top level of the source<br />
* This will start CMake<br />
* Choose build directory and click next<br />
* Set generator to '''NMake Generator (MSVC 2008)'''<br />
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.<br />
<br />
<!--T:64--><br />
Now FreeCAD can be built<br />
* Build -> Build All<br />
* This will take a long time...<br />
<br />
<!--T:65--><br />
Once complete, it can be run:<br />
There are 2 green triangles at the bottom left. One is debug.<br />
The other is run. Pick whichever you want.<br />
<br />
<!--T:89--><br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
=== Command line build === <!--T:66--><br />
<div class="mw-collapsible-content"><br />
Here an example how to build FreeCAD from the Command line:<br />
</translate><br />
<syntaxhighlight><br />
rem @echo off<br />
rem Build script, uses vcbuild to completetly build FreeCAD<br />
<br />
rem update trunc<br />
d:<br />
cd "D:\_Projekte\FreeCAD\FreeCAD_0.9"<br />
"C:\Program Files (x86)\Subversion\bin\svn.exe" update <br />
<br />
rem set the aprobiated Variables here or outside in the system<br />
<br />
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem<br />
set INCLUDE=<br />
set LIB=<br />
<br />
rem Register VS Build programms<br />
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"<br />
<br />
rem Set Standard include paths<br />
set INCLUDE=%INCLUDE%;%FrameworkSDKDir%\include<br />
set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include<br />
<br />
rem Set lib Pathes<br />
set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib<br />
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Visual Studio\VC98\Lib<br />
<br />
rem Start the Visuall Studio build process<br />
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "D:\_Projekte\FreeCAD FreeCAD_0.9_build\FreeCAD_trunk.sln" /useenv<br />
</syntaxhighlight><br />
</div><br />
</div><br />
<br />
<translate><br />
<br />
== Building older versions == <!--T:67--><br />
<br />
=== Using LibPack === <!--T:68--><br />
To make it easier to get FreeCAD compiled, we provide a collection of all<br />
needed libraries. It's called the [[Third Party Libraries|LibPack]]. You can find it on the [http://sourceforge.net/project/showfiles.php?group_id=49159 download page] on<br />
sourceforge.<br />
<br />
<!--T:26--><br />
You need to set the following environment variables:<br />
<br />
<!--T:27--><br />
:'''FREECADLIB''' = "D:\Wherever\LIBPACK"<br />
<br />
<!--T:28--><br />
:'''QTDIR''' = "%FREECADLIB%"<br />
<br />
<!--T:29--><br />
Add "%FREECADLIB%\bin" and "%FREECADLIB%\dll" to the system ''PATH'' variable. Keep in mind that you have to replace "%FREECADLIB%" with the path name, since Windows does not recursively replace environment variables.<br />
<br />
==== Directory setup in Visual Studio ==== <!--T:30--><br />
Some search path of Visual Studio need to be set. <br />
To change them, use the menu ''Tools→Options→Directory<br />
<br />
===== Includes ===== <!--T:31--><br />
Add the following search path to the include path search list:<br />
* %FREECADLIB%\include<br />
* %FREECADLIB%\include\Python<br />
* %FREECADLIB%\include\boost<br />
* %FREECADLIB%\include\xercesc<br />
* %FREECADLIB%\include\OpenCascade<br />
* %FREECADLIB%\include\OpenCV<br />
* %FREECADLIB%\include\Coin<br />
* %FREECADLIB%\include\SoQt<br />
* %FREECADLIB%\include\QT<br />
* %FREECADLIB%\include\QT\Qt3Support<br />
* %FREECADLIB%\include\QT\QtCore<br />
* %FREECADLIB%\include\QT\QtGui<br />
* %FREECADLIB%\include\QT\QtNetwork<br />
* %FREECADLIB%\include\QT\QtOpenGL<br />
* %FREECADLIB%\include\QT\QtSvg<br />
* %FREECADLIB%\include\QT\QtUiTools<br />
* %FREECADLIB%\include\QT\QtXml<br />
* %FREECADLIB%\include\Gts<br />
* %FREECADLIB%\include\zlib<br />
<br />
===== Libs ===== <!--T:32--><br />
Add the following search path to the lib path search list:<br />
* %FREECADLIB%\lib<br />
<br />
===== Executables ===== <!--T:33--><br />
Add the following search path to the executable path search list:<br />
* %FREECADLIB%\bin<br />
* TortoiseSVN binary installation directory, usually "C:\Programm Files\TortoiseSVN\bin", this is needed for a distribution build when ''SubWVRev.exe'' is used to extract the version number from Subversion.<br />
<br />
==== Python needed ==== <!--T:34--><br />
During the compilation some Python scripts get executed. So the Python<br />
interpreter has to function on the OS. Use a command box to check it. If<br />
the Python library is not properly installed you will get an error message<br />
like ''Cannot find python.exe''. If you use the LibPack you can also use the<br />
python.exe in the bin directory.<br />
<br />
==== Special for VC8 ==== <!--T:35--><br />
When building the project with VC8, you have to change the link information for the WildMagic library, since you need a different version for VC6 and VC8. Both versions are supplied in ''LIBPACK/dll''. In the project properties for ''AppMesh'' change the library name for the ''wm.dll'' to the VC8 version. Take care to change it in Debug ''and'' Release configuration.<br />
<br />
=== Compile === <!--T:36--> <br />
<br />
<!--T:37--><br />
After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC <br />
<br />
=== After Compiling === <!--T:38--><br />
To get FreeCAD up and running from the compiler environment you need to copy a few files from the [[Third Party Libraries|LibPack]] to the ''bin'' folder where FreeCAD.exe is installed after a successful build:<br />
<br />
<!--T:39--><br />
* ''python.exe'' and ''python_d.exe'' from ''LIBPACK/bin''<br />
* ''python25.dll'' and ''python25_d.dll'' from ''LIBPACK/bin''<br />
* ''python25.zip'' from ''LIBPACK/bin''<br />
* make a copy of ''Python25.zip'' and rename it to ''Python25_d.zip''<br />
* ''QtCore4.dll'' from ''LIBPACK/bin''<br />
* ''QtGui4.dll'' from ''LIBPACK/bin''<br />
* ''boost_signals-vc80-mt-1_34_1.dll'' from ''LIBPACK/bin''<br />
* ''boost_program_options-vc80-mt-1_34_1.dll'' from ''LIBPACK/bin''<br />
* ''xerces-c_2_8.dll'' from ''LIBPACK/bin''<br />
* ''zlib1.dll'' from ''LIBPACK/bin''<br />
* ''coin2.dll'' from ''LIBPACK/bin''<br />
* ''soqt1.dll'' from ''LIBPACK/bin''<br />
* ''QtOpenGL4.dll'' from ''LIBPACK/bin''<br />
* ''QtNetwork4.dll'' from ''LIBPACK/bin''<br />
* ''QtSvg4.dll'' from ''LIBPACK/bin''<br />
* ''QtXml4.dll'' from ''LIBPACK/bin''<br />
<br />
<!--T:40--><br />
When using a [[Third Party Libraries|LibPack]] with a Python version older than 2.5 you have to copy two further files:<br />
* ''zlib.pyd'' and ''zlib_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python to open the zipped python library.<br />
* ''_sre.pyd'' and ''_sre_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python for the built in help system.<br />
<br />
<!--T:41--><br />
If you don't get it running due to a Python error it is very likely that one of the ''zlib*.pyd'' files is missing.<br />
<br />
=== Additional stuff === <!--T:42--> <br />
<br />
<!--T:43--><br />
If you whant to build the source code documentation you need [http://www.stack.nl/~dimitri/doxygen/ DoxyGen].<br />
<br />
<!--T:44--><br />
To create an intstaller package you need [http://wix.sourceforge.net/ WIX].<br />
<br />
<br />
<!--T:45--><br />
During the compilation some Python scripts get executed. So the Python interpreter has to work properly.<br />
<br />
<!--T:46--><br />
For more details have also a look to ''README.Linux'' in your sources.<br />
<br />
<!--T:47--><br />
First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under <br />
</translate><br />
<pre><br />
//src/Tools/plugins/widget//.<br />
</pre><br />
<translate><br />
<!--T:48--><br />
So far we don't provide a makefile -- but calling <br />
</translate><br />
<pre><br />
qmake plugin.pro<br />
</pre><br />
<translate><br />
<!--T:49--><br />
creates it. Once that's done, calling ''make'' will create the library <br />
</translate><br />
<pre><br />
//libFreeCAD_widgets.so//.<br />
</pre><br />
<translate><br />
<!--T:50--><br />
To make this library known to your ''Qt Designer'' you have to copy the file to<br />
</translate><br />
<pre><br />
//$QTDIR/plugin/designer//.<br />
</pre><br />
<br />
== References ==<br />
{{reflist}}<br />
<br />
<translate><br />
<br />
<!--T:69--><br />
{{docnav|Tracker|CompileOnUnix}}<br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Download&diff=152042Download2015-04-10T01:26:56Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
There are several '''downloads''' for various operating systems available. Before downloading keep in mind: <br />
{{VeryImportantMessage|'''FreeCAD is under heavy development and might not be ready for production use'''}}<br />
<br />
==Official Installers== <!--T:2--><br />
<br />
=== Stable FreeCAD installers === <!--T:3--><br />
The FreeCAD team provides ready-to-install packages for [[Image:windows.png|16px]] '''Windows''' (XP, Vista and 7, 32 and 64bits), [[Image:mac.png|16px]] '''Mac OS X''' (Lion 10.7), and [[Image:linux.png|16px]] '''Debian-based Linux systems''' (Debian, Ubuntu, 32 and 64bits). Below are links to the Stable installation files for the various systems. Also available on the [http://sourceforge.net/projects/free-cad/files/ FreeCAD Files page] are '''unstable''' packages, that provide the bleeding-edge new features being worked on, but might crash more often or contain features that are incompatible with earlier versions.<br />
{| align="center" cellpadding="20"<br />
|{{DownloadWindowsStable}} || || {{DownloadUnixStable}} || || {{DownloadMacStable}}<br />
|}<br />
<br />
=== Development Versions === <!--T:4--><br />
If you want to install FreeCAD with more in-development features, and are willing to accept that these versions have a higher chance of bugs and crashes, then you can check the official [http://sourceforge.net/projects/free-cad/files/ FreeCAD Files page] to download 64 bit, older, or unstable releases. Of course, if you want to stay even more on the bleeding edge of development, you can [[compiling| compile]] FreeCAD, or use the [[#Ubuntu PPA packages|Ubuntu daily build updates]] or [http://sourceforge.net/projects/free-cad/files/FreeCAD%20Windows/FreeCAD%200.16%20development/ Windows Dev Snapshot].<br />
<br />
===Notes for Windows users=== <!--T:5--><br />
The windows installer should also work on older Windows platforms, but has not always been tested. You need ''Windows Installer V1'' on your system (msiexec.exe). See [[Install on Windows|Installing on Windows]] for details about different installation options. Download the latest .msi file for windows systems, or the appropriate .deb file for your version of Ubuntu or Debian.<br />
<br />
===Notes for Linux users=== <!--T:6--><br />
On most recent distributions such as Debian, Ubuntu, Fedora or Arch, FreeCAD is included in the official distribution's packages repository, and you are advised to preferably get FreeCAD from there, to make sure you have a version that is 100% compatible with your system. The pivy python module (usually named python-pivy) is needed by FreeCAD from version 0.9 or above. If it is not available on your system, you must download it from here too.<br />
<br />
====Notes for Debian users==== <!--T:7--><br />
Because of a licensing conflict between third-party libraries required by FreeCAD, the freecad package was removed from the current Debian stable (wheezy) repository. This will be solved when the next stable release of FreeCAD comes out. In the meanwhile, you can either [[CompileOnUnix|compile FreeCAD]] or use an [[#Alternative_FreeCAD_builds|alternate build]].<br />
<br />
<!--T:8--><br />
You should also note that although Ubuntu is based on Debian, the Ubuntu PPA packages are NOT compatible with Debian.<br />
<br />
===Notes for Mac users=== <!--T:9--><br />
We rely on very few people to help building Mac OSX packages, so it doesn't get updated as often as the other platforms. The version available on this site might be slightly outdated. (To compile the most up-to-date version from source see [[CompileOnMac]])<br />
<br />
<!--T:41--><br />
You can follow the topic dedicate to Mac on the [http://forum.freecadweb.org/viewtopic.php?f=4&t=5452 forum]<br />
<br />
== Ubuntu PPA packages == <!--T:10--><br />
The [https://launchpad.net/~freecad-maintainers FreeCAD Launchpad team] has set up a PPA (Personal Package Archive) repository that allows easy install of Ubuntu packages based on the development branch. Updates to the software are pushed to the Ubuntu Update Manager, which makes it the easiest way to get the latest FreeCAD build.<br />
<br />
<!--T:11--><br />
The [https://launchpad.net/~freecad-maintainers/+archive/freecad-daily FreeCAD Daily Builds] PPA is an automatic daily build system, which can provide you with a fresh, daily-up-to-date version of FreeCAD. Please be advised that the packages from this bleeding edge PPA may be broken from time to time.<br />
<br />
<!--T:12--><br />
Current supported architectures and versions are:<br />
* Ubuntu 12.04 LTS (Precise Pangolin) 32 & 64-Bit<br />
* Ubuntu 14.04 (Trusty Tahr) 32 & 64-Bit<br />
* Ubuntu 14.10 (Utopic Unicorn) 32 & 64-Bit<br />
<br />
==== Adding the PPA and installing FreeCAD from the console ==== <!--T:13--><br />
Type (or copy-paste) these commands in a console to add the PPA and install FreeCAD along with the documentation:<br />
</translate><br />
{{Code|code=<br />
sudo add-apt-repository ppa:freecad-maintainers/freecad-daily<br />
}}<br />
<translate><br />
<!--T:14--><br />
Then:<br />
</translate><br />
{{Code|code=<br />
sudo apt-get update<br />
sudo apt-get upgrade<br />
sudo apt-get install freecad freecad-doc<br />
}}<br />
<translate><br />
==== Adding the PPA and installing FreeCAD from the GUI ==== <!--T:15--><br />
Add to your system's Software Sources the following PPA (read [http://askubuntu.com/questions/4983/what-are-ppas-and-how-do-i-use-them/5102#5102%29 What are PPAs and how do I use them?] if you don't know how):<br />
</translate><br />
{{Code|code=<br />
ppa:freecad-maintainers/freecad-daily<br />
}}<br />
<translate><br />
<!--T:16--><br />
When a dialog window asks you to refresh your software sources, click OK.<br />
<br />
<!--T:17--><br />
Now you can install FreeCAD and FreeCAD documentation through the Ubuntu Software Center, or your package manager of choice.<br />
<br />
== Fedora package == <!--T:24--><br />
To install FreeCAD on Fedora, make sure you have the *NONFREE* repositories installed (necessary because of OCC/OCE license)<br />
</translate><br />
{{Code|code=<br />
yum install freecad<br />
}}<br />
<translate><br />
<!--T:25--><br />
Or use the GUI installer.<br />
<br />
== Alternative FreeCAD builds == <!--T:26--><br />
These are versions of FreeCAD built by other persons and not officially maintained by the FreeCAD team. They may include customized parts or be optimized for certain types of processors, or other modifications that the package maintainers judged necessary. They might also be out-of-date, since the people who make those package may take time to grab the newer versions of FreeCAD. But they are also sometimes better suited for certain operating systems. Note that on most common linux distributions, official packages are typically installed by the system's package management tool, so you don't need to download and install FreeCAD manually.<br />
<br />
<!--T:27--><br />
*[http://packages.debian.org/freecad Official Debian package]<br />
*[http://packages.ubuntu.com/freecad Official Ubuntu package]<br />
*[http://software.opensuse.org/search?q=freecad&baseproject=openSUSE%3A11.4&lang=en&exclude_debug=true Official OpenSuse package]<br />
*[http://www.softpedia.com/get/Multimedia/Graphic/Graphic-Editors/FreeCAD.shtml Softpedia Windows build]<br />
*[http://packman.links2linux.de/package/FreeCAD Packman RPM package (for opensuse, fedora)]<br />
*[http://slackbuilds.org/repository/13.37/graphics/FreeCAD/ Slackbuilds package (for Slackware)]<br />
*[http://aur.archlinux.org/packages.php?K=freecad ArchLinux AUR package]<br />
*[http://packages.gentoo.org/package/media-gfx/freecad Gentoo ebuild package]<br />
*[https://svn.pardus.org.tr/pardus/playground/kaan.aksit/2011/freecad/actions.py Pardus linux build script]<br />
*[http://www.zultron.com/rpm-repo/ Unofficial but well maintained Fedora FreeCAD repository]<br />
*[http://forum.freecadweb.org/viewtopic.php?f=4&t=2995 Unofficial Debian Wheezy package (32-Bit and 64-Bit)]<br />
<br />
== FreeCAD documentation == <!--T:28--><br />
The user documentation of FreeCAD is being written together by the developers and the users community, on this wiki site. The best way is to read it online, so you are sure to get the latest version:<br />
* [[Online Help Toc|The FreeCAD Manual]]<br />
<br />
<!--T:29--><br />
The manual can also be displayed as one big text, so you can print it or save it as a pdf file:<br />
* [[Manual|All-in-one printable version]]<br />
<br />
<!--T:30--><br />
The manual is also be compiled as a qt help file, so it can be browsed offline with the Qt help viewer. This is usually made at each release and is available together with FreeCAD package on most linux software repositories (on debian/ubuntu-based systems, look for '''freecad-doc''' package) and is also bundled in the windows installer. To access it, simply open the "help" menu inside FreeCAD, or use the "What's this?" button.<br />
<br />
<!--T:31--><br />
For convenience, we also provide a pdf version of this manual:<br />
* [http://yorik.uncreated.net/archive/documents/freecad010.pdf 0.10 Manual (Pdf file)]<br />
* [http://yorik.uncreated.net/scripts/freecad011.pdf 0.11 Manual (Pdf file)]<br />
* [http://sourceforge.net/projects/free-cad/files/FreeCAD%20Documentation/FreeCAD-0.12.pdf/download 0.12 Manual (Pdf file)]<br />
* [http://sourceforge.net/projects/free-cad/files/FreeCAD%20Documentation/FreeCAD-0.13.pdf/download 0.13 Manual (Pdf file)]<br />
* [http://sourceforge.net/projects/free-cad/files/FreeCAD%20Documentation/FreeCAD-014.pdf/download 0.14 Manual (Pdf file)]<br />
<br />
<!--T:32--><br />
Here you can also find a copy of the OpenCasCade 5.2 docs, in a .chm file. After 5.2, the openCasCade documentation is not available as a single file anymore, but as a heavy 180Mb package. So, since there is little change, we keep this one around for convenience:<br />
*[http://www.4shared.com/file/128871432/96b15e62/occ52.html OpenCasCADE 5.2 documentation]<br />
<br />
== FreeCAD Source package == <!--T:33--><br />
For all other platforms you need to compile FreeCAD on your own from the Source package. You might also want to compile FreeCAD yourself if you want to optimize certain things, or customize certain parts of FreeCAD. Instructions for compiling can be found on the [[CompileOnWindows]], [[CompileOnMac]] and [[CompileOnUnix]] pages. You can grab a zip or tar.gz file containing the latest official version here (look for the latest version for your system):<br />
*[http://sourceforge.net/projects/free-cad/files/ official FreeCAD Files repository]<br />
<br />
<!--T:34--><br />
Alternatively, you can also download latest source code from the Git repositories. You'll get a more recent version, but it might contain bugs or even fail to compile. Instructions for accessing the Git repositories can be found here:<br />
*[https://sourceforge.net/scm/?type=git&group_id=49159 FreeCAD Git repository] (most active)<br />
*[https://github.com/FreeCAD/FreeCAD_sf_master FreeCAD repository on github.com]<br />
<br />
<!--T:35--><br />
You can also download automatically a GNU tarball from the latest source code tree or any part of it by using the code browser and clicking the "Download GNU tarball" at any time. The trunk folder contains the current development version, while the branches folder contains a snapshot of all stable releases to date.<br />
<br />
== FreeCAD LibPack == <!--T:36--><br />
To collect all the needed libraries to compile FreeCAD can be a time consuming task. So we deliver a convenient package for development on Windows (VC8, VC11, and VC12) with all needed libraries. You can download the latest version of the libpack from:<br />
*[http://sourceforge.net/projects/free-cad/files/FreeCAD%20LibPack/ FreeCAD LibPack]Download the version that matches your architecture and Visual C++ version. <br />
<br />
<!--T:37--><br />
For linux, you will normally find all necessary libraries in your software management system, so you should just read the [[CompileOnUnix]] page.<br />
<br />
== Additional modules and related projects == <!--T:38--><br />
There are additional modules, addons of plugins for FreeCAD developed outside of the main FreeCAD development team. They are listed here but are not officially supported by the FreeCAD team.<br />
<br />
<!--T:39--><br />
*[http://forum.freecadweb.org/viewtopic.php?f=10&t=3391 Fold module]: a module for working with metal sheets (abandoned for some time, may not work anymore).<br />
*[http://gitorious.org/freecad-ship Ship module], [http://jlcercos.wordpress.com/freecad-ship-en/ The blog of Jose Luis Cercós Pita] : a module in development for ship design (since 0.13, it included in official FreeCAD sources).<br />
*[http://github.com/maxbots/MendelMax MendelMax]: a macro suite for FreeCAD to generate a MendelMax machine.<br />
*[http://www.openplm.org/ OpenPLM]: an online PLM platform with FreeCAD support.<br />
*[[Macros recipes]]: additional tools for your FreeCAD installation.<br />
*[[Drawing templates]]: additional SVG templates for the Drawing module.<br />
*[http://github.com/yorikvanhavre/tumbler-fcstd-thumbnailer Tumbler thumbnailer]: show .FcStd files as thumbnails in Thunar and Marlin file managers.<br />
*[http://github.com/yorikvanhavre/kde-fcstd-thumbnailer KDE thumbnailer]: show .FcStd files as thumbnails in KDE Dolphin file manager.<br />
*[http://github.com/cblt2l/FreeCAD-CuraEngine-Plugin Cura Engine Plugin]: A plugin to use the CuraEngine gcode slicer from within FreeCAD.<br />
*[http://www.bolts-library.org/en/index.html BOLTS]: Open Library for standard parts (screws, nuts, washers ...)<br />
*[http://github.com/quick61/FreeCAD_VidKit FreeCAD Vidkit]: The video clips and images are intended for use in the production of FreeCAD Tutorial and Demo videos.<br />
*[http://github.com/yorikvanhavre/FreeCAD-library FreeCAD Library]: This repository contains a library of Parts to be used in FreeCAD.<br />
*[http://github.com/yorikvanhavre/Draft-dxf-importer Draft DXF Im-Exporter]: Files needed to add DXF support (import-export) to FreeCAD<br />
*[http://github.com/hamish2014/FreeCAD_assembly2 Hamish's Assembly Workbench]: Assembly Workbench. Needs FreeCAD 0.15 to run.<br />
*[http://github.com/hamish2014/FreeCAD_drawing_dimensioning Drawing Dimension Workbench]: Workbench to add dimensions to drawings. Needs FreeCAD 0.15 to run.<br />
*[http://github.com/microelly2/Animation Animation Workbench]: Animate your FreeCAD-Models.<br />
*[http://sourceforge.net/projects/eaglepcb2freecad/?source=navbar Eagle PCB 2 FreeCAD]: Import your PCB boards to FreeCAD .<br />
<br />
<!--T:40--><br />
[[Category:User Documentation]]<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgroganhttps://wiki.freecad.org/index.php?title=Compile_on_Windows&diff=149665Compile on Windows2015-03-07T01:23:34Z<p>Sgrogan: </p>
<hr />
<div><translate><br />
<!--T:1--><br />
This article explains step by step '''how to compile FreeCAD on Windows'''.<br />
<br />
<!--T:74--><br />
See also [[Compile_on_Windows_with_VS2013|Compile on Windows with Visual Studio 2013]]<br />
<br />
== Prerequisites == <!--T:2--><br />
<br />
===Required programs=== <!--T:100--><br />
* [http://git-scm.com/ Git] There are a number of alternatives such as GitCola, Tortoise Git, and others.<br />
* [http://www.cmake.org/cmake/resources/software.html CMake] version 2.x.x or Cmake 3.x.x<br />
* Python >2.5 (This is only required if NOT using the Libpack. The Libpack comes with a minimal Python(2.7.x) suitable for compiling and running FreeCAD)<br />
<br />
===Source Code=== <!--T:98--><br />
====Using Git (Preferred)====<br />
<br />
To create a local tracking branch and download the source code you need to open a terminal(command prompt) and cd to the directory you want the source, then type:<br />
<br />
<syntaxhighlight>git clone git://git.code.sf.net/p/free-cad/code free-cad-code</syntaxhighlight><br />
<br />
===Compiler=== <!--T:71--><br />
On Windows, the default compiler is M$ Visual Studio, be it the Express or Full 2008, 2012, or 2013 versions. You will also need to install the Windows Platform SDK to get several required libraries (e.g. Windows.h), though they may not be required with M$ compilers (either full or express).<br />
<br />
<!--T:99--><br />
{{Note|Note|Though it may be possible to use Cygwin or MinGW gcc it's not tested or ported so far.}}<br />
<br />
===Third Party Libraries=== <!--T:3--><br />
You will need all of the [[Third Party Libraries]] to successfully compile FreeCAD. If you use the M$ compilers it is recommended to install a [http://sourceforge.net/projects/free-cad/files/FreeCAD%20LibPack/ FreeCAD LibPack], which provides all of the required libraries to build FreeCAD in Windows.<br />
You will need the Libpack for your architecture and compiler. FreeCAD currently supplies Libpack Version11 for x32 and x64, for VS9 2008, VS11 2012, and VS12 2013.<br />
<br />
===Optional programs=== <!--T:101--><br />
* [http://sourceforge.net/projects/nsis/ NSIS] Windows installer (note: formerly, [http://wixtoolset.org/ WiX] installer was used - now under transition to NSIS) - if you want to make msi installer<br />
<br />
===System Path Configuration=== <!--T:5--><br />
Inside your system path be sure to set the correct paths to the following programs:<br />
* git (not tortoiseGit, but git.exe) This is necessary for Cmake to properly update the "About FreeCAD" information in the version.h file.<br />
*Optionally you can include the Libpack in your system path. This is useful if you plan to build multiple configurations/versions of FreeCAD, you will need to copy less files as explained later in the build process.<br />
<br />
To add to your system path:<br />
<br />
* Start menu -> Right click on Computer -> Properties -> Advanced system settings<br />
* Advanced tab -> Environment Variables...<br />
* Add the PATH/TO/GIT to the '''PATH'''<br />
* It should be separated from the others with a semicolon `;`<br />
<br />
== Configuration with CMake == <!--T:6--><br />
<br />
=== The switch to CMake === <!--T:7--><br />
{{Note|Warning|Since FreeCAD version 0.9 we have stopped providing .vcproj files.}}<br />
Currently, FreeCAD uses the CMake build system to generate build and make files that can be used between different operating systems and compilers. <br />
If you want build former versions of FreeCAD (0.8 and older) see<br />
[[#Building older versions|Building older versions]] later in this article.<br />
<br />
<!--T:8--><br />
We switched because it became more and more painful to maintain project files for 30+<br />
build targets and x compilers. CMake gives us the possibility to support alternative <br />
IDEs, like Code::Blocks, Qt Creator and Eclipse CDT. <br />
The main compiler is still M$ VC9 Express, though. But we plan for the future a build process on <br />
Windows without proprietary compiler software.<br />
<br />
=== CMake === <!--T:52--><br />
The first step to build FreeCAD with CMake is to configure the environment. There<br />
are two ways to do it:<br />
* Using the LibPack<br />
* Installing all the needed libraries and let CMake find them<br />
<br />
<br />
<!--T:53--><br />
The following process will assume you are using the LipPack. The second option may be discussed<br />
in [[#Options for the Build Process|Options for the Build Process]].<br />
<br />
=== Configure CMake using GUI === <!--T:75--><br />
[[File:CMake_Screen.png|500px]]<br />
* Open the CMake GUI<br />
* Specify the source folder<br />
* Specify the build folder<br />
* Click '''Configure'''<br />
* Specify the generator according to the IDE that you'll use. <br />
<br />
<br />
<!--T:76--><br />
This will begin configuration and should fail because the location of<br />
'''FREECAD_LIBPACK_DIR''' is unset.<br />
* Expand the '''FREECAD''' category and set '''FREECAD_LIBPACK_DIR''' to the correct location<br />
* Check '''FREECAD_USE_EXTERNAL_PIVY'''<br />
* Optionally Check '''FREECAD_USE_FREETYPE''' this is required to use the Draft WB's Shape String functionality<br />
* Click '''Configure''' again<br />
* There should be no errors<br />
* Click '''Generate'''<br />
* Close CMake<br />
* Copy '''libpack\bin''' folder into the new build folder CMake created<br />
<br />
=== Options for the Build Process === <!--T:77--><br />
<br />
<!--T:78--><br />
The CMake build system gives us a lot more flexibility over the build process. That means<br />
we can switch on and off some features or modules. It's in a way like the Linux kernel build.<br />
You have a lot of switches to determine the build process.<br />
<br />
<!--T:79--><br />
Here is the description of some of these switches. They will most likely change a lot in the future<br />
because we want to increase the build flexibility a lot more.<br />
<br />
<br />
<!--T:80--><br />
{| class="wikitable" style="text-align:left"<br />
|+ Link table<br />
|-<br />
! Variable name !! Description !! Default<br />
|- <br />
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || On Win32 on, otherwise off <br />
|- <br />
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD SOURCE dir<br />
|- <br />
| FREECAD_BUILD_GUI || Build FreeCAD with all Gui related modules || ON<br />
|- <br />
| FREECAD_BUILD_CAM || Build the CAM module, experimental! || OFF<br />
|- <br />
| FREECAD_BUILD_INSTALLER || Create the project files for the Windows installer. || OFF<br />
|- <br />
| FREECAD_BUILD_DOXYGEN_DOCU || Create the project files for source code documentation. || OFF<br />
|- <br />
| FREECAD_MAINTAINERS_BUILD || Switch on stuff needed only when you do a Release build. || OFF<br />
|}<br />
<br />
<!--T:12--><br />
If you are building with Qt Creator, jump to<br />
[[#Building with Qt Creator|Building with Qt Creator]],<br />
otherwise proceed to<br />
[[#Building with Visual Studio 9 2008|Building with Visual Studio 9 2008]].<br />
<br />
== Building FreeCAD == <!--T:81--><br />
Depending on your current setup, the process for building FreeCAD will be slightly different. This is due to the differences in available software and software versions for each operating system.<br />
<br />
<br />
<!--T:82--><br />
The following procedure will work for compiling on Windows Vista/7/8, for XP an alternate VS tool set is required for VS 2012 and 2013, which has not been tested successfully with the current Libpacks. To target XP(both x32 and x64) it is recommended to use VS2008 and Libpack FreeCADLibs_11.0_x86_VC9.7z<br />
<br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
=== Building with Visual Studio 12 2013 === <!--T:83--><br />
<div class="mw-collapsible-content"><br />
Make sure to specify '''Visual Studio 12 x64'''(or the alternate C-Compiler you are using) as the generator in CMake before you continue.<br />
<br />
<!--T:90--><br />
*Start Visual Studio 12 2013 by clicking on the desktop icon created at installation.<br />
<br />
<!--T:91--><br />
*Open the project by:<br />
File -> Open -> Project/Solution<br />
<br />
<!--T:92--><br />
*Open FreeCAD_Trunk.sln from the build folder CMake created<br />
<br />
<!--T:93--><br />
*Switch the Solutions Configuration drop down at the top to '''Release''' '''X64'''<br />
This may take a while depending on your sytem<br />
<br />
<!--T:94--><br />
*Build -> Build Solution<br />
<br />
<!--T:95--><br />
*This will take a long time... <br />
<br />
<!--T:96--><br />
If you don't get any errors you are done. Exit Visual Studio and start FreeCAD by double clicking the FreeCAD icon in the bin folder of the build directory.<br />
</div><br />
</div><br />
<br />
<!--T:97--><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<br />
=== Building with Visual Studio 9 2008 === <!--T:84--><br />
<div class="mw-collapsible-content"><br />
{{Note|Warning|Visual C++ Express 2008 does not support 64-bit compilation. There is a workaround [http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ here]}}<br />
<br />
<!--T:85--><br />
Make sure to specify '''Visual Studio 9 2008''' as the generator in CMake before you continue.<br />
* Open '''Visual Studio 9 2008''' or '''Visual C++ Express 2008'''<br />
* File -> Open -> Project/Solution<br />
* Open '''FreeCAD_Trunk.sln''' from the build folder CMake created<br />
* Switch the '''Solutions Configuration''' dropdown at the top to '''Release'''<br />
* Build -> Build Solution to build<br />
* Wait until the Build is finished (will take a while)<br />
<br />
==== After Building ==== <!--T:86--><br />
* Debug -> Start without Debugging<br />
* Click popup menu under '''Executable File Name''' and choose '''Browse'''<br />
* Go to the build\bin folder and choose '''FreeCAD.exe'''<br />
* You are done!<br />
</div><br />
</div><br />
<br />
<!--T:87--><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<br />
=== Building with Qt Creator === <!--T:88--><br />
<div class="mw-collapsible-content"><br />
<br />
==== Installation and configuration of Qt Creator ==== <!--T:61--><br />
* Download and install [https://qt-project.org/downloads Qt Creator]<br />
* Tools -> Options -> Text Editor -> Behavior tab:<br />
** File Encodings -> Default Encodings:<br />
** Set to: '''ISO-8859-1 /...csISOLatin1''' (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)<br />
* Tools -> Options -> Build & Run:<br />
** CMake tab<br />
*** Fill Executable box with path to cmake.exe<br />
** Kits tab<br />
*** Name: MSVC 2008<br />
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)<br />
*** Debugger: Auto detected...<br />
*** Qt version: None<br />
** General tab<br />
*** Uncheck: Always build project before deploying it<br />
*** Uncheck: Always deploy project before running it<br />
<br />
==== Import project and Build ==== <!--T:62--><br />
* File -> Open File or Project<br />
* Open '''CMakeLists.txt''' which is in the top level of the source<br />
* This will start CMake<br />
* Choose build directory and click next<br />
* Set generator to '''NMake Generator (MSVC 2008)'''<br />
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.<br />
<br />
<!--T:64--><br />
Now FreeCAD can be built<br />
* Build -> Build All<br />
* This will take a long time...<br />
<br />
<!--T:65--><br />
Once complete, it can be run:<br />
There are 2 green triangles at the bottom left. One is debug.<br />
The other is run. Pick whichever you want.<br />
<br />
<!--T:89--><br />
</div><br />
</div><br />
<br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
=== Command line build === <!--T:66--><br />
<div class="mw-collapsible-content"><br />
Here an example how to build FreeCAD from the Command line:<br />
</translate><br />
<syntaxhighlight><br />
rem @echo off<br />
rem Build script, uses vcbuild to completetly build FreeCAD<br />
<br />
rem update trunc<br />
d:<br />
cd "D:\_Projekte\FreeCAD\FreeCAD_0.9"<br />
"C:\Program Files (x86)\Subversion\bin\svn.exe" update <br />
<br />
rem set the aprobiated Variables here or outside in the system<br />
<br />
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem<br />
set INCLUDE=<br />
set LIB=<br />
<br />
rem Register VS Build programms<br />
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"<br />
<br />
rem Set Standard include paths<br />
set INCLUDE=%INCLUDE%;%FrameworkSDKDir%\include<br />
set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include<br />
<br />
rem Set lib Pathes<br />
set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib<br />
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Visual Studio\VC98\Lib<br />
<br />
rem Start the Visuall Studio build process<br />
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "D:\_Projekte\FreeCAD FreeCAD_0.9_build\FreeCAD_trunk.sln" /useenv<br />
</syntaxhighlight><br />
</div><br />
</div><br />
<br />
<translate><br />
<br />
== Building older versions == <!--T:67--><br />
<br />
=== Using LibPack === <!--T:68--><br />
To make it easier to get FreeCAD compiled, we provide a collection of all<br />
needed libraries. It's called the [[Third Party Libraries|LibPack]]. You can find it on the [http://sourceforge.net/project/showfiles.php?group_id=49159 download page] on<br />
sourceforge.<br />
<br />
<!--T:26--><br />
You need to set the following environment variables:<br />
<br />
<!--T:27--><br />
:'''FREECADLIB''' = "D:\Wherever\LIBPACK"<br />
<br />
<!--T:28--><br />
:'''QTDIR''' = "%FREECADLIB%"<br />
<br />
<!--T:29--><br />
Add "%FREECADLIB%\bin" and "%FREECADLIB%\dll" to the system ''PATH'' variable. Keep in mind that you have to replace "%FREECADLIB%" with the path name, since Windows does not recursively replace environment variables.<br />
<br />
==== Directory setup in Visual Studio ==== <!--T:30--><br />
Some search path of Visual Studio need to be set. <br />
To change them, use the menu ''Tools→Options→Directory<br />
<br />
===== Includes ===== <!--T:31--><br />
Add the following search path to the include path search list:<br />
* %FREECADLIB%\include<br />
* %FREECADLIB%\include\Python<br />
* %FREECADLIB%\include\boost<br />
* %FREECADLIB%\include\xercesc<br />
* %FREECADLIB%\include\OpenCascade<br />
* %FREECADLIB%\include\OpenCV<br />
* %FREECADLIB%\include\Coin<br />
* %FREECADLIB%\include\SoQt<br />
* %FREECADLIB%\include\QT<br />
* %FREECADLIB%\include\QT\Qt3Support<br />
* %FREECADLIB%\include\QT\QtCore<br />
* %FREECADLIB%\include\QT\QtGui<br />
* %FREECADLIB%\include\QT\QtNetwork<br />
* %FREECADLIB%\include\QT\QtOpenGL<br />
* %FREECADLIB%\include\QT\QtSvg<br />
* %FREECADLIB%\include\QT\QtUiTools<br />
* %FREECADLIB%\include\QT\QtXml<br />
* %FREECADLIB%\include\Gts<br />
* %FREECADLIB%\include\zlib<br />
<br />
===== Libs ===== <!--T:32--><br />
Add the following search path to the lib path search list:<br />
* %FREECADLIB%\lib<br />
<br />
===== Executables ===== <!--T:33--><br />
Add the following search path to the executable path search list:<br />
* %FREECADLIB%\bin<br />
* TortoiseSVN binary installation directory, usually "C:\Programm Files\TortoiseSVN\bin", this is needed for a distribution build when ''SubWVRev.exe'' is used to extract the version number from Subversion.<br />
<br />
==== Python needed ==== <!--T:34--><br />
During the compilation some Python scripts get executed. So the Python<br />
interpreter has to function on the OS. Use a command box to check it. If<br />
the Python library is not properly installed you will get an error message<br />
like ''Cannot find python.exe''. If you use the LibPack you can also use the<br />
python.exe in the bin directory.<br />
<br />
==== Special for VC8 ==== <!--T:35--><br />
When building the project with VC8, you have to change the link information for the WildMagic library, since you need a different version for VC6 and VC8. Both versions are supplied in ''LIBPACK/dll''. In the project properties for ''AppMesh'' change the library name for the ''wm.dll'' to the VC8 version. Take care to change it in Debug ''and'' Release configuration.<br />
<br />
=== Compile === <!--T:36--> <br />
<br />
<!--T:37--><br />
After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC <br />
<br />
=== After Compiling === <!--T:38--><br />
To get FreeCAD up and running from the compiler environment you need to copy a few files from the [[Third Party Libraries|LibPack]] to the ''bin'' folder where FreeCAD.exe is installed after a successful build:<br />
<br />
<!--T:39--><br />
* ''python.exe'' and ''python_d.exe'' from ''LIBPACK/bin''<br />
* ''python25.dll'' and ''python25_d.dll'' from ''LIBPACK/bin''<br />
* ''python25.zip'' from ''LIBPACK/bin''<br />
* make a copy of ''Python25.zip'' and rename it to ''Python25_d.zip''<br />
* ''QtCore4.dll'' from ''LIBPACK/bin''<br />
* ''QtGui4.dll'' from ''LIBPACK/bin''<br />
* ''boost_signals-vc80-mt-1_34_1.dll'' from ''LIBPACK/bin''<br />
* ''boost_program_options-vc80-mt-1_34_1.dll'' from ''LIBPACK/bin''<br />
* ''xerces-c_2_8.dll'' from ''LIBPACK/bin''<br />
* ''zlib1.dll'' from ''LIBPACK/bin''<br />
* ''coin2.dll'' from ''LIBPACK/bin''<br />
* ''soqt1.dll'' from ''LIBPACK/bin''<br />
* ''QtOpenGL4.dll'' from ''LIBPACK/bin''<br />
* ''QtNetwork4.dll'' from ''LIBPACK/bin''<br />
* ''QtSvg4.dll'' from ''LIBPACK/bin''<br />
* ''QtXml4.dll'' from ''LIBPACK/bin''<br />
<br />
<!--T:40--><br />
When using a [[Third Party Libraries|LibPack]] with a Python version older than 2.5 you have to copy two further files:<br />
* ''zlib.pyd'' and ''zlib_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python to open the zipped python library.<br />
* ''_sre.pyd'' and ''_sre_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python for the built in help system.<br />
<br />
<!--T:41--><br />
If you don't get it running due to a Python error it is very likely that one of the ''zlib*.pyd'' files is missing.<br />
<br />
=== Additional stuff === <!--T:42--> <br />
<br />
<!--T:43--><br />
If you whant to build the source code documentation you need [http://www.stack.nl/~dimitri/doxygen/ DoxyGen].<br />
<br />
<!--T:44--><br />
To create an intstaller package you need [http://wix.sourceforge.net/ WIX].<br />
<br />
<br />
<!--T:45--><br />
During the compilation some Python scripts get executed. So the Python interpreter has to work properly.<br />
<br />
<!--T:46--><br />
For more details have also a look to ''README.Linux'' in your sources.<br />
<br />
<!--T:47--><br />
First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under <br />
</translate><br />
<pre><br />
//src/Tools/plugins/widget//.<br />
</pre><br />
<translate><br />
<!--T:48--><br />
So far we don't provide a makefile -- but calling <br />
</translate><br />
<pre><br />
qmake plugin.pro<br />
</pre><br />
<translate><br />
<!--T:49--><br />
creates it. Once that's done, calling ''make'' will create the library <br />
</translate><br />
<pre><br />
//libFreeCAD_widgets.so//.<br />
</pre><br />
<translate><br />
<!--T:50--><br />
To make this library known to your ''Qt Designer'' you have to copy the file to<br />
</translate><br />
<pre><br />
//$QTDIR/plugin/designer//.<br />
</pre><br />
<br />
== References ==<br />
{{reflist}}<br />
<br />
<translate><br />
<br />
<!--T:69--><br />
{{docnav|Tracker|CompileOnUnix}}<br />
[[Category:Developer Documentation]]<br />
<br />
</translate><br />
{{clear}}<br />
<languages/></div>Sgrogan