This is the official source code of FreeCAD
Go to file
DeepSOIC 43e8b30846 OpticConstraints: Adding Snell's law
Fix AngleViaPoint to support new derivative calculation technique.

OpticConstraints: Adding Snell's law. Fix AngleViaPoint to support new derivative calculation technique.

Snell's law constraint added to GCS, but not yet exposed and cannot be
tested.
Since the way CalculateNormal() returns derivatives had changed,
AngleViaPoint constraint needed modifications. Nothing serious.

OpticConstraints: SnellsLaw progress

Addable through python. Fix math. Some quick-and-dirty visual stuff to
get rid of hangs and to see the constraint in action.

OpticConstraints: SnellsLaw: flipping logic fix

OpticConstraints: SnellsLaw progress

Added toolbar button. Allowed editing a datum by doubleclick. New error
message approach during constraint creation.

OpticConstraints: SnellsLaw

OpticConstraints: SnellsLaw: list label improvement

OpticConstraints: SnellsLaw: fix after rebase

OpticConstraints: SnellsLaw: expose helper constraints

Snell's law internally is made of three constraints: point-on-object,
coincident and the Snell's sin/sin. They were all buried under one UI
constraint. Exposing them allows to construct reflection and
birefringence on the point (attempting to do so used to result in
redundant constraints and was often not functional at all).
This commit breaks compatibility with older files.

OpticConstraints: SnellsLaw: small refactor of math

Placing the duplicated code of error and gradient calculation into a
private method.

OpticConstraints: SnellsLaw: fix datum edit unit

OpticConstraints: SnellsLaw: fix datum edit bug

After previous fix, the dimensionless value was not accepted (the
constraint's value did not change, the changes were ignored).
2015-01-02 11:48:31 +01:00
cMake Fix duplicate 'optimized' when using new libpack 2014-12-28 19:04:31 -08:00
data Arch: Fixed Arch example - fixes #1789 2014-12-31 14:42:22 -02:00
package Cleaned up the dependencies in debian control file 2014-11-07 09:34:28 -02:00
src OpticConstraints: Adding Snell's law 2015-01-02 11:48:31 +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 OCE / OCC version detection. 2014-12-20 22:41:31 +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