This is the official source code of FreeCAD
Go to file
Mark A. Taff 80120a6bac Ellipse implementation: Several bug fixes
I. Fix minor bug where wrong b was used to create ellipse internal geometry.

Tweak the internal geometry code a bit and reformat it so it isn't so wide.
Also begin debugging constraint conflicts on small circular ellipses.

There seem to be two issues currently in major/minor internal geometry lines:
  1) Sometimes minorLength > majorLength due to round-tripping doubles, and
  2) Constraint conflicts when majorLength > minorLength by an epsilon on the order of 1e-6

(cherry picked from commit 5c3e20af1a95c860112289dcdda54ea99778bc3a)

II. When testing for a valid ellipse, also ensure that the mangled major axis length > the mangled axis length.

This additional condition ensures that major and minor axis constraints don't conflict in the case of small
(nearly) circular ellipses.

The is still a potential bug in the solver when the major length is just slightly larger than the minor, but this fix
makes it nigh impossible to reproduce.
(cherry picked from commit 7e274bc32d9aa1a12ab52bfa33ed80353540b062)

III. Code clean up

Remove redundant 3d vectors.

(cherry picked from commit c656d5165c8bae8f101a2b46af6b12348d06cefe)
2014-12-20 12:33:37 +01:00
cMake Update CMake config to work with smesh 6.5.3.1. 2014-12-19 11:23:38 +01:00
data remove support for automake 2014-11-26 10:26:30 +01:00
package Cleaned up the dependencies in debian control file 2014-11-07 09:34:28 -02:00
src Ellipse implementation: Several bug fixes 2014-12-20 12:33:37 +01:00
.gitattributes + Shared library of Mefisto2F 2014-01-18 00:08:25 +01:00
.gitignore ignore in src build directory 2014-11-15 21:18:52 +01:00
BuildAll.bat + unify DLL export defines to namespace names 2011-10-10 13:44:52 +00:00
BuildRelease.ini + unify DLL export defines to namespace names 2011-10-10 13:44:52 +00:00
BuildRelease.py + unify DLL export defines to namespace names 2011-10-10 13:44:52 +00:00
ChangeLog.txt + update ReadMe and ChangeLog 2014-06-30 13:51:10 +02:00
CMakeLists.txt + fix package failure 2014-12-19 18:53:23 +01:00
config.h.cmake + unify DLL export defines to namespace names 2011-10-10 13:44:52 +00:00
copying.lib Fix address of FSF in copyright notice 2012-07-05 22:59:12 +02:00
README Updated forum links to the new subdomain 2013-11-11 11:42:34 -02:00
README.Cygwin + unify DLL export defines to namespace names 2011-10-10 13:44:52 +00:00
README.Linux + update ReadMe and ChangeLog 2014-06-30 13:51:10 +02:00
README.MinGW Added pySide info to MingW readme 2014-01-09 12:02:49 -02:00
README.Win32 + Shared library of Mefisto2F 2014-01-18 00:08:25 +01:00

FreeCAD
=======

FreeCAD is a general purpose feature-based, parametric 3D modeler for CAD, MCAD,
CAx, CAE and PLM, aimed directly at mechanical engineering and product design but
also fits a wider range of uses in engineering, such as architecture or other engineering
specialties. It is 100% Open Source (LGPL2+ license) and extremely modular, allowing
for very advanced extension and customization.

FreeCAD is based on OpenCasCade, a powerful geometry kernel, features an Open Inventor-compliant
3D scene representation model provided by the Coin 3D library, and a broad Python API.
The interface is built with Qt. FreeCAD runs exactly the same way on Windows, Mac OSX, BSD and
Linux platforms.

Home page:                             http://www.freecadweb.org
Documentation wiki:                    http://www.freecadweb.org/wiki/
Forum:                                 http://forum.freecadweb.org/
Bug tracker:                           http://www.freecadweb.org/tracker/
Git repository:                        http://sourceforge.net/p/free-cad/code/ci/master/tree/

Installing
==========

Precompiled (installable) packages are usually available to you from several sources and are
described on the FreeCAD download page: http://www.freecadweb.org/wiki/index.php?title=Download

Compiling
=========

Compiling FreeCAD requires to install several heavyweight libraries and their development
files such as OpenCasCADe, Coin and Qt, listed in the pages below. Once this is done,
FreeCAD can be simply compiled with cMake. On windows, these libraries are bundled and
offeredby the FreeCAD team in a convenience package, on Linux they are usually found
in your distribution's repositories and on Mac OSX and other platforms you will usually
need to compile them yourself.

Note that autotools build system can still be used but will be obsoleted soon.

The pages below contain up-to-date build instructions:

For Linux:   http://www.freecadweb.org/wiki/index.php?title=CompileOnUnix
For windows: http://www.freecadweb.org/wiki/index.php?title=CompileOnWindows
For Mac OSX: http://www.freecadweb.org/wiki/index.php?title=CompileOnMac

In this folder you will also find additional README files, specific for each platform.

Usage
=====

The FreeCAD documentation wiki contains sections for each category of users, and a manual,
which is a compilation of the most useful articles of the wiki:

For users: General FreeCAD usage: http://www.freecadweb.org/wiki/index.php?title=User_hub
For power-users: Python scripting: http://www.freecadweb.org/wiki/index.php?title=Power_users_hub
For developers: C++ FreeCAD development: http://www.freecadweb.org/wiki/index.php?title=Developer_hub

The FreeCAD manual: http://www.freecadweb.org/wiki/index.php?title=Online_Help_Toc