==============================================================================
Now you can switch from one tool to the next just by clicking on the next tool
==================================================================================
Geometry button:
- if no object selected, the legacy toggle icon has a new functionality, switch to/from creating in construction mode
- if object selected, it has the legacy functionality
- the button can be clicked during "continuos creation mode" to switch from creating to/from creating in construction mode
Constraint button:
- The button is not selectable if nothing is selected (it would be impossible to determine the effect)
- When constraints are selected, the button toggles the constraints to/from Driving.
- When geometry is selected, the button switches from/to reference mode, the change is apparent from the color of the constraint icons.
Continuous creation mode:
- Default changed so that it is active unless you change it in settings
Updated terminology
======================================================================
- Changing from Driving to reference does not include unnecessary solvings.
- Added some checks to avoid making Driving constraints when calling directly from python and involving only external geometry (would give redundant constraints).
- New python command toggleDriving to just change the status from reference to Driving
- New UI toolbar Command to toggle constraints
- Fix to allow switching from/to construction mode during continuous mode creation.
- Enable/Disable for constraints in constraints widget has changed to operate on multiselection and now effects "toggle" instead of enable/disable.
- Disable the option to directly create a SnellsLaw non-driving constraint (this constraint does not support direct creation, it can be toggled to non-driving after creation though).
==============================================
The fillet applied to construction lines generates normal (not construction) geometry.
How to replicate?
1.Make a square and make all lines construction lines.
2.Apply fillet tool, there result will be a white line fillet connecting two blue constructions lines.
===================================================================
It allows to create constraints directly into Reference or Driving mode.
It does not include icons
===============================================
It allows to select whether the geometry will be created as construction geometry or normal geometry.
This commit includes an important bug fix to reduce the number of times the sketcher solver is called when toggling
geometry. It makes an important difference in the creation during construction mode and InternalAligment geometry like the ellipse.
This commit does not include icons.
You have a button next to toggle that after having been clicked, switches from Normal to Construction geometry and vice versa
============================================================
It lifts the need of clicking on the external geometry icon upon importing each external geometry element.
All the elements on which the user clicks are imported until the user right clicks with the mouse or presses ESC, like the Trim or Fillet tools.
===============================================
When creating a type of geometric element, the user can create as many elements of that type he wishes without having to click the button before each insertion.
The insertion of that type of elements ends by pressing ESC or clicking the right button of the mouse.
This mode is by default disabled and can be enabled in Preferences->Display->Sketch->Geometry Creation "Continue Mode".
===================================================================================================
This fixes a bug in the original implementation, that a non-driving constraint value could be
edited by double clicking on it in the 3D view.
It also includes minimal documentation on some functions.
It also includes:
- Color setting for non-driving constraints was not working.
- Settle UI terminology dispute:
* Driving Constraint (normal red constraint)
* Reference Constraint (non-driving constraint)
====================================================================================
It allows to enable and disable a constraint in the constraint list.
When disabled, the constraints current value is shown, but its value is not enforced (it is driven by the other constraints and user interaction).
A disabled constraint can be enabled (as far as it is enforceable, see non-driving constraints to external geometry below).
The sketcher functionality has been extended to support non-driving constraints to external geometry elements. This were previously excluded from
the possibility of creating a constraint on them (as their values depend on other sketches and would be redundant with the unchanged value or conflicting when value is changed).
Now these constraints are created as non-driving, but as they are not enforceable, the UI does not allow you to make them driving.
The constraint filter has been extended to include a Non-Driving constraints category.
Thanks again to Werner for his continuous support, and specially in this case to DeepSOIC, as he pointed towards a much better implementation solution than my original idea.
=========================================
The autoconstraints on creation of an hexagon were not working.
How to reproduce?
1. In a sketch make a couple of lines
2. Create an hexagon (or other polygon of your choice) with center in one end of a line and with side coincident with the end point of the other line
Result:
Neither the center nor the side autoconstraints are properly created.
Fix:
Straightforward. Just correct the indexes. Last is always the circle. Last but one is always a side.
========================================================================================
How to replicate:
1. Go to Preferences->Display->Sketch and disable that checkbox.
2. Create a distance constraint (radius, distance, ...)
It will ask for the value regardless of whether the checkbox is clicked or not.
Why?
In SketcherSettings.ui the prefpath is "Mod/Sketcher"
The code refered to ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher/General");
=============================================================
This function is like this from 2011 according to git blame.
The original code makes no sense. I assume that what is intended in this
function (in accordance with SketchPy.xml) is call the method clear in
Sketch.cpp.
Existing code was producing invalid results:
a = 9876543212346789864323456.9543234578986432345678
>>> print "{:.13}".format(repr(a))
9.87654321234
>>> a
9.87654321234679e+24
The new converision should work fine:
>>> print "{:.13E}".format(a)
9.8765432123468E+24
Reported & fixed by ulrich1a
getccxVolumesByFace returns std::map<int, int> with ID of volume
and a number of face as per CalculiX definition. The same function is
accessible for python and returns list with the same information, like
this: [[229, 3], [230, 3], [233, 2], [238, 2]]
write_face_load produces something like this in the .inp file:
***********************************************************
** element + CalculiX face + load in [MPa]
** written by write_face_load function
*DLOAD
** Load on face Face2
229,P3,10.0
230,P3,10.0
233,P2,10.0
238,P2,10.0
Optimised by wmayer
Signed-off-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Adding detailed information which function is responsible for
creating a proticular section of the .inp file should save
some guesswork. An example from the .inp file:
[..]
***********************************************************
** node sets for loads
** written by write_load_node_sets function
*NSET,NSET=FemConstraintForce
1,
3,
[..]
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
The reason behind that change is that auxiliary variables,
like a file handle, should not be too visible. inpfile was
a good description, but we're handling only one file and there
is no need to use a descriptive variable name for it in every function.
It's enough that is used in write_calculix_input_file
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Also, there is no need to print material parameters to the console.
User can see that info in dialog box, in .inp file and it's also printed
to console after material has been set.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Showing ccx output during short colculations doesn't make any sense.
During long calculations user is flooded with messages, that ccx
produced empty output.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
That function won't be used as there is a plan to merge material
handling with Arch wb and Arch wb already has material editor.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
That commit fixes inconsistent behaviour of Young's modulus input field
units in FEM material dialog window.
Reported-by: sgrogan
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
By enabling the setting in IFC preferences, the IFC
importer can now detect if an input shape is a normal
extrusion, and create the object as a Part::Extrusion.
CalculiX documentation tells that maximum alowed material name length
is 80 characters, so we have to respect that. Also ccx quietly fails if
that limit is not honoured.
Reported-by: bernd
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
ConfigParser changes option capital letters in keys to small letters.
That commit changes it to generate verbatim keys as read from FCMat
files. Also Section names are no longer used to generate material
dictionary.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Identification of selected result item is no longer based
on the item string, but on a separate userData. This method
is language agnostic.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
ccx crashes when a force has too many digits like this:
FemConstraintForce,2,1.5966711853290134e-18
but it's OK with that format:
FemConstraintForce,2,1.5966711853e-18
An example of ccx error:
*ERROR reading *CLOAD. Card image:
FEMCONSTRAINTFORCE,3,1.5966711853290134E-18
This commits adds formatting to make sure the numbers are within ccx
limits.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Printing FEM console message could fail if ccx was compiled in March
and standard output contained double dotted a.
"You are using an executable made on Mi 4. Mär 19:49:02 CET 2015"
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
This commit moves checking prerequisites to function. The function
is called before writing .inp file to make sure all required objects
are included in the analysis. "open editor" and "run ccx" buttons are
if check_prerequisites runs successfully.
Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Adding material was using by default transient None material that
has no properties assigned. If use accepted that type of material
an attempt to write CalculiX input file was ending up with a crash.
Using built-in None material prevents that situation.
Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Defaulting to False was causing problems during migration. The default
checkbox of linked FEM preferences is True, but for the first time users
there was nothing stored in UseBuiltInMaterials, UseMaterialsFromConfigDir
and UseMaterialsFromCustomDir, so the materials were not showing up in
the material ComboBox.
Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Previous method was prone to UnicodeDecodeError. The try-catch for
UnicodeDecodeError stays in as additional safety net.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
get_material_name provides material name in a safe way, so there is
no need to check in General_name exists in material definition
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
It doesn't make sense to pull preferences in __init__ for later use as
they change dependin on user action.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
On-demand import is no longer good enough as we have 3 different
material directories and materials may have non-unique names.
A material is now identified by a full file path.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Add icons to distinguish where the material is from. FreeCAD icon for
build-in materials, notmal material icon for materials from user
preferences directory which is "~/.FreeCAD/Materials" on linux or
from an user defined location defined in FEM preferences.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Displacement related elements (factor, slider max and the slider itself)
are now only active when "Show" is selected. Previously they were active
even when "Show" wasn't checked and it was potentially confusing for the
user as nothing was changing when chacnging slider settings.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
The "-->choose Material" has been replaced with a not defined material.
That makes setting/retrieving material to/from the object much easier
and allows user to have a "not defined" material. Previously it wasn't
possible to change i.e. form Steel to "not defined".
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
* Added utility to make non-parametric Arch component
* Ability for all Arch components to be a clone of another Arch component of same type
* Modified the Draft Clone tool to produce Arch Clones if applicable
* Fixed Arch Roofs so they can be based on a solid shape like other Arch objects
* Ability to change the Root element to be imported in IFC preferences
* Ability to import IFC files also as compounds, Part shapes or non-parametric Arch objects
* Added an "only" parameter to importIFC.open() to import only a certain object ID.
* Ability to read colors (IfcSurfaceStyle) from IFC objects
Fixed a bug where starting tilting with LMB+RMB with LMB in sketcher
caused odd behavior.
No more messagebox upon hitting H key when the cursor is over nothing
(replaced with a warning). The messagebox was very annoying when trying
to hunt a point with touch input.
Navigation by gestures didn't work after double-clicking a constraint in
sketcher to edit a value. This was probably caused by the last mouse
button release event not reaching the viewer.
This patch add FEM preferrences dialog. There is currently only
one option to define if internal or external editor should be used to
open CalculiX input .inp files. Disabling internal editor allows to
define path to external editor.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Squashed commit of the following:
commit e158a2049b922cead90cee4a9d3814093db8d00d
Merge: e7c5c06 d545f5b
Author: Ian Rees <ian.rees@gmail.com>
Date: Wed Mar 25 17:08:56 2015 +1300
Merge branch 'mac-app-bundle' into macports-build-1
commit d545f5b0de0efa6a0fd020ac98bb6809d9254019
Author: Ian Rees <ian.rees@gmail.com>
Date: Thu Mar 19 22:30:20 2015 +1300
Minor fixes to Mac application bundle creation
commit e7c5c0630b47e89fc719259f3d81be724627f915
Author: Ian Rees <ian.rees@gmail.com>
Date: Thu Mar 19 16:35:34 2015 +1300
Report error if no OpenCasCADe found
commit 976b51c13a1619acf66b9d4fad5594fee292aa76
Author: Ian Rees <ian.rees@gmail.com>
Date: Thu Mar 19 16:30:47 2015 +1300
Detects OCE automatically on Homebrew and MacPorts
commit 1cc477f77f388f2ccb26f3884320819f8cb33249
Author: Ian Rees <ian.rees@gmail.com>
Date: Tue Mar 17 15:00:34 2015 +1300
Find PySide and Shiboken automagically on MacPorts
commit 8bf2ebf7397a1c8c4b1b6f1d97e303f335ab47d7
Author: Ian Rees <ian.rees@gmail.com>
Date: Mon Mar 16 23:05:35 2015 +1300
Finds the Python include dir and library on OSX
commit 8bba9b2c78cfe65d7c295c4c99f0a176e1281539
Author: Ian Rees <ian.rees@gmail.com>
Date: Mon Mar 16 17:31:43 2015 +1300
Detects Python executable in MacPorts or Homebrew
commit 349a2e0e5c4d370c331bdb54d80d8f4323db8a6b
Author: Ian Rees <ian.rees@gmail.com>
Date: Mon Mar 16 08:25:16 2015 +1300
Missing correct Python lib is error on cmake-ing
commit 1625fe7c1c7fb2d944b04d93be8cf90d5c829be9
Author: Ian Rees <ian.rees@gmail.com>
Date: Sun Mar 15 21:06:08 2015 +1300
Find PySide's UIC and RCC tools properly on MacPorts
fix Draft._clone output
export Shape2DViews
export Part::MultiFuse with single boolean operation like done in c2ce8f5eba
make DRAWEXE ouput more readable
* omit unessary parameters of spheres, cylinders, cones and tori
* denormalize the rotation axis in placements
* use the extension .tcl for the output
That non-critical part was quite often silently crashing with
UnicodeDecodeError and as a side effect FreeCAD wasn't loading perfectly
valid CalculiX result file. In long run that function should be replaced
with a write-to-log counterpart and the CalculiX stdout should be shown
to the user only upon request.
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
FEM wb was throwing errors:
X Error: BadCursor (invalid Cursor parameter) 6
Major opcode: 2 (X_ChangeWindowAttributes)
Resource id: 0x3
X Error: BadCursor (invalid Cursor parameter) 6
Major opcode: 2 (X_ChangeWindowAttributes)
Resource id: 0x3
X Error: BadCursor (invalid Cursor parameter) 6
Major opcode: 95 (X_FreeCursor)
Resource id: 0x3
according to this [1] that patch should not make any change for windows
and fixes the problem on linux.
[1] https://bugreports.qt.io/browse/PYSIDE-243
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Fixes the issue where, when a sketch is cloned, and selected for
padding, the clone gets padded instead of the sketch.
It also allows padding of a sketch that is already used by anything
else, except for PartDesign features.
+ the same fix for PartDesign Revolution.
- Refactoring/clean-up of code
- Dependency tracking of aliased cells
- Various resolution errors
- Rewriting of ranges when columns/rows are inserted/removed
- References to aliases keep their units.
Added buttons to port sketches to CCW-emulation Sketcher.
Bonus =) : Added constraint orientation lock/unlock buttons (affects
point-wise modes of tangent and perpendicular constraints so far)
Fixes a bug where an arc, ellipse, or arc-of-ellipse, being reversed in
XY plane, behaved badly in sketcher (see forum thread "Sketch: how to
handle reversed external arcs?"
http://forum.freecadweb.org/viewtopic.php?f=10&t=9130 ).
Also fixes a problem with rotated arcs (see forum thread "Rotating Arc
in Sketcher"
http://forum.freecadweb.org/viewtopic.php?f=22&t=9145#p74262 ).
This is done by adding an emulation flag to a few methods in
Part::GeomXXX, which makes the shape to pretend being non-reversed
(CCW). This causes endpoints of reversed arcs of circles lineked as
external geometry to swap, causing broken sketches sometimes.
This commit solves the problem that a ellipse appears rotated when added as external geometry, if the face having the
elliptical shape has a direction vector in the -z axis.
This solves the problem. However, the issue with CW and CCW shapes in the sketcher shall be further investigated in order
to arrive to a general acceptable solution.
Squashed following commits:
* Arch: Adapted IFC importer for IfcOpenShell6
* Arch: further fixes for ifcopenshell6 compatibility
* Arch: IFC importer now converts to/from meters for better compatibility with IfcOpenShell
* Arch: further fixes with ifcopenshell6
* Arch: precision adjustments in IFC exporter
* Arch: small fix in makeRoof
- (error) va_list '<var>' was opened but not closed by va_end()
- (style) Same expression on both sides of '||'
- (style) Same expression on both sides of '!='
Sketcher Ellipse: porting tangent-line to DeriVector2
Replacing a ton of unreadable, sage generated math code with
easy-to-manage C++ code.
Sketcher Ellipse: porting internal align-t to DeriVector2
Sketcher Ellipse: small math refactor; const members
Moving the repeating code computing deriv+value of major radius to a
method of GCS::Ellipse.
Marking several methods of DeriVector2 as const member functions.
Sketcher Ellipse: porting arc angle rules to DeriVector2
Just porting.
Probably a complete remake of the concept is worth... Angles can be
calculated explicitly, there's no need to load the solver. I see no
benefits whatsoever on using the solver to keep track of angle values.
Sketcher Ellipse: porting equality to DeriVector2
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).
GCS::Vector2D was morphed into a DeriVector2, a derivative-aware vector.
A bunch of vector math methods were added that implicitly calculate
respective derivatives. Now, there is no need to calculate the partials
- most is done implicitly.
AngleViaPoint: fixes in UI routines + new messages
Goofed undo message in tangency via point is fixed.
Forgotten updateActive, clearSelection have been added.
New more informative error messages for tangent constraint.
AngleViaPoint: using it instead of via line tangency
* replaced the helper construction line for ellipse-to-ellipse and
similar tangency with a point. Using tangent-via-point there
* deleted tangency via line for point-to-point on
(cherry picked from commit 9e3fa8c8de0f49c0ef3c978e015eb905358dbdd9)
AngleViaPoint: internal/external tangency locking
*Added automatic tangency type lockdown for all new constraints (only
for point-wise tangency).
Tangency type is stored in the constraint datum field, as an angle value
shifted by Pi/2 (to be able to treat 0.0 as undefined type).
Added ability to switch the tangency by setting datum value from python
(can be abused by passing arbitrary angle).
Further simplified the tangency related code in Sketch.cpp.
AngleViaPoint: added license to Geo.cpp
AngleViaPoint: renames in Constraints.cpp/.h
Changed some names to increase self-explanatoryness:
bool "remapped" renamed to "pvecChangedFlag"
"ReconstructEverything()" renamed to "ReconstructGeomPointers()"
AngleViaPoint: renames in Constraints.cpp/.h
Changed some names to increase self-explanatoryness:
bool "remapped" renamed to "pvecChangedFlag"
"ReconstructEverything()" renamed to "ReconstructGeomPointers()"
AngleViaPoint: using for endpoint perpendicularity
+ direction lockdown, just as with tangency.
+ quite a lot of old code is gone because of that
AngleViaPoint: perp-ty UI routine made similar to tangent
(Git has made a very messy diff.)
The changes are:
* Perpendicularity-via-point (3-element selection) support added.
* Endpoint-to-curve and endpoint-to-endpoint supports all shape
combinations.
* a bit of code cleanup and clarifications.
AngleViaPoint: placement of perpendicular icon in 3d view
AngleViaPoint: fix: allow setDatum of perpendicular constraint
AngleViaPoint: fix: centers of ellipses are not endpoints
isSimpleVertex used to return false for centers of ellipses and arcs of
ellipses, which made them being accepted for point-to-point tangency.
Should be fixed forever, mo more changes are expected to be necessary
for new types of geometry.
AngleViaPoint: precalc with OCC (work in progress)
Work in progress (not yet working).
Using OCC's tangent to replace implementation of
SketchObject::calculateAngleViaPoint.
AngleViaPoint: fix math: normal now points inwards, where it was intended initially and goofed up.
AngleViaPoint: adding comments to the code
AngleViaPoint: using GeomCurve::closestParameterToBasicCurve for angle precalculation
AngleViaPoint: Py method: changeConstraintsLocking
changeConstraintsLocking(True) - locks/re-locks all lockable
tangency/perpendicularity constraints of the sketch (applicable to
existing sketches).
changeConstraintsLocking(False) - removes locking information from
lockable constraints
AngleViaPoint: final SketchObject::calculateAngleViaPoint
Now, finally, using OCC functionality (thanks Abdullah!), without
composing temporary Sketch object.
Solver iteration limit independent of system size (reduces hangs when
solver fails to converge).
Repaint() instead of update() to force render for every movePoint.
Sketcher: New Constraint AngleViaPoint
* Adding generic CalculateNormal() method
* Reconfiguration of GCS geometry classes: adding a base class "Curve",
that has a pure virtual function CalculateNormal().
* Initial inplementation of the new function.
* adding Vector2D class (I wanted to reuse the existing, but got wierd
compile errors, so implemented a new one... TODO.)
* Adding redirection support into GCS shapes. Adding a Copy method to
GCS::Curve.
* Automatic point-on-object
* Angle precalculation: when AngleViaPoint is added, angle is properly calculated based on
existing geometry.
* Added tangency-via-point using one.
* Implemented placement of tangency-via-point icon in 3d view. Also
affected is the placement of point-on-object icon (since it is very
similar code, it is now shared with tangency-via-point)
* Placement and moving of angle datum
Functions: calculateAngleViaPoint, isPointOnCurve,
calculateConstraintError exposed to python
* Endpoint tangency: All endpoint-to-endpoint and endpoint-to-curve tangency now works
through AngleViaPoint constraint and obsolete code clean up (most procedures
addConstraintTangentXXX2YYY)
Part: Extension of Geometry::Curve to wrap more functions of OCC
Apart from:
bool tangent(double u, gp_Dir&) const;
that was already implemented, now it also implements:
Base::Vector3d pointAtParameter(double u) const;
Base::Vector3d firstDerivativeAtParameter(double u) const;
Base::Vector3d secondDerivativeAtParameter(double u) const;
bool normal(double u, gp_Dir& dir) const;
bool closestParameter(Base::Vector3d point, double &u);
i.e. apart from giving the tangent vector for a given curve at parameter value u,
it also gives:
- The point cartesian coordinates of the curve point at parameter value u
- The vector of the first derivative at parameter value u
- The vector of the second derivative at parameter value u
- The normal vector to the curve at parameter value u
- The parameter value of a curve closest ot a given point
Code cleanup: Changing Trim functionality of Ellipse to use OCC calculations
Part Curve functions extension: closestParameterToBasicCurve
It provides the parameter of the curve closest to a given point. If the curve is a Trimmed curve, the parameter of the basic underlaying curve closest to the point is provided.
When using a CLbundler libpack, PYTHON_LIBRARY has both optimized and debug
libs, but it doesn't when using an old libpack, which was the reason for
commit f5a4e680
export Names as "id" attributes and Lables to "title" elements.
avoid duplicate path names in SVG export
handle faces with holes in SVG export
sort the edges in given wires using fixWire()
Select a draft object and a view on a drawing page, then the view created for
the draft object will have the same projection settings as the selected view.
- ArcOfEllipse enhancement: Tangency ArcOfEllipse to ArcOfEllipse or ArcOfCircle by selecting end/starting points...
- Minor bug corrections (Thanks DeepSOIC)
- ExposeInternalGeometry python command
- DeleteUnusedInternalGeometry python command
- On deletion of an Ellipse/ArcOfEllipse all further unconstrained internal geometry is also deleted.
- This cleans up the code by eliminating code repetition in the creation methods.
- Major bug fix for autoconstraints for ellipse and arc of ellipse creation (for both creation methods)
- Major bug fix Start and Endpoint constraints of an arc of ellipse where not taking into account that Sketcher arcs are always CCW, so they have to be exchanged if we convert a CW arc into a CCW arc.
Sketcher: General bug fix: Tangency wrongly suggested
What?
=====
- On creation of a shape autoconstraints are suggested.
- Tangent autoconstraint was suggested even with lines perpendicular to the tangency direction
Reproduce
=========
- Make a circle on the origin and move the mouse along the X axis, it will suggest a tangency that is impossible
- Click on the axis and no circle will be created
Solution
========
- The SeekConstraint now can use the parameter dir to give a direction that is substantially perpendicular to the expected tangency, so that
if an object having a direction (a line) is hit, a tangency will not be suggested if within around 6 degrees of being parallel.
- Additionally, if such a line is an X,Y axis of the sketch, tangency will only be suggested if the direction is within 6 degrees of being perpendicular (i.e. it is almost tangent already while sketching).
- This difference is due to the fact that an X or Y axis can not "move" to meet the object under creation, whereas a line can.
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)
--Center, major radius, minor radius
--Periapsis, apoapsis, minor radius
Artist: We need an icon for periapsis, apoapsis, minor radius method.
(cherry picked from commit f0a4339621b0bf901754af14c3cd36c95ca55966)
Elements that have internal geometry are created with the internal geometry on creation.
It has been under discussion for a long time. Ulrich was in favour (asked for it several times).
DeepSOIC implemented the focus because he hated the poor dragging of the ellipse when empty.
- Visual representation of equality constraint: Separate circle and arcofcircle implementation from ellipse and arcofellipse implementation
- Fix for Alignment constraint: Now it allows to assign a second element, one by one
- Box selection for ArcOfEllipses
Fixes the bug that vertex far away got selected due to lack of sync between the selection and draw loops.
- Minor changes to alignment constraint selection to avoid to create objects just for simple calculations
- Equality constraint of Ellipse, ArcOfEllipse and combinations of those elements
- Bugfix for internalalignment creation of major and minor of ellipse and extension to arcofellipse
- Trim support for ellipses
- Solver threshold for rank calculation set at 1e-13.
- Trim support for arc of ellipse
- Ellipses and ArcOfEllipses as external geometry
- Validate Sketch now supports arcs of ellipse
- Tangents of Ellipse or ArcOfEllipse to any of ArcOfcircle, circle and Ellipse (using construction elements)
- Perpendicularity constraint
- Bug fix: Show/hide internal geometry not working for external geometry
- Visualization of Internal alignment constraints when selecting in the constraint widget
- Equality for ellipses and arc of ellipses
- Fix of internal geometry creation
- Fix swapped negative and positive ends of major radius line on creation
- Removing the fudge factor (no longer needed)
- Fix to restore internal alignment - autodecide on constraint creation which point of the line is closer to the position
- Change mode so that focus1 is not a point, but two doubles so that visual model and solver model match in number of points.
- Solver fix to deal with reduced constraint partials accuracy (threshold for matrix rank calculation tweak)
- Changes suggested by logari81
- Ellipse introduction button via (center,majaxis extreme, a point in edge), ellipse is always CCW so that Z axis goes in the positive direction of the sketch
- Backwards compatibility with files of previous versions of ellipse not defining a phi angle
- Art by Jim (all the icons you see and the XPMs shown on creation of an ellipse)
- Element Widget support for ellipses
- Box selection for ellipses
- Point on Ellipse constraint based on the gardener's method based on Ulrich's function proposal (radcan simplified, i.e. with simplify_radical sage function)
- Tangent: Ellipse to Line based on DeepSOIC's geometric formulation (radcan simplified)
Sketcher New Feature: Internal Alignment Constraint
- The element to which internal alignment is applied has to be selected last.
- All other elements are added in the order of priority, taking into account existing elements
- Art by Jim (beautiful icons).
Sketcher New Feature: Tool to show/hide/restore the internal geometry of an element
- New functionality for show/hide internal geometry:
toggles between hiding all unused internal geometry elements and showing all internal geometry.
The restore function is implicit to the showing all internal geometry
Sketcher New Feature: Arc of Ellipse support
- Part::Geometry + Python implementation
- ArcOfEllipse creation method
- Art by Jim (all the icons you see and the XPMs shown on creation of arc of ellipse elements)
- Sketcher Element widget for ArcOfEllipse.
Bug fix: Select elements associated to constraints works now for foci internal alignment constraints
to a number for those commits common with the blessed master and a number for
those ahead of the current master
choose the url from available remotes
remove ssh username
accept ssh://[...].sf.net as origin
- It copies the geometry and associated constraints of a plurality of sketches into a new sketch
- The functionality is accessible from outside sketch edit mode, directly from the menu Sketch
* New 'UseLibPack' cmake file sets CMAKE_PREFIX_PATH so that find_package
can be used for most packages.
* Mimic fc_wrap_cpp defined in other 'UseLibPack' files. Some file
dependencies did not get set correctly otherwise.
* OCE 0.16 does not have Standard_ctype.hxx
* shfolder.h can't be used with Win SDK 7.0
Returns a list of wires obtained by offsetting the wires of the given
shape by the given amount (outer wire inside, inner wires outside) and
resolving intersections
As the QGraphicsScene overlay does not work for all cards/drivers we disable the possible buffer swap of the qpainter, as this could be a potential source of the flickering. If the painter swaps buffers and we do it again the user will see first the correct picture (first swap) and then something uninitalized (second swap)
Be aware that stereo rendering based on SoRenderManager does not allow background colors as the opengl buffers are cleared before rendering. As FreeCAD draws the background before the standart coin rendering the background gets erased again.
As quarter is not wrapped by SWIG we need to expose our own python interface class.
This is a start with the most important functions to access the render and event
manager. Furthermore all extra functions available next to the swig wrapper functions
are exposed. Everything else can be added when needed.
Quarter Widget soes not allow to switch of multisampling on the fly, therefore we need to use glgraphicsitem instead of direct opengl xor rendering for mouse selection
-removes all soqtviewer references
-create a quarter adaptor class which implements missing functionality
-adopts freecad code to make use of SoRenderManager and changed View3DInventorViewer interface
The arrows were there in the code, but at a certain point, code was written to set the this->imgHeight value programatically, based on
whether it had text or not. As symmetry constraint does not have text the variable failed to initialize. Being zero, it did not pass
the ASSERT in the render function, so it was not rendered.
This includes Werner's fix for improver cast of a SoRayPickAction to SoGLRenderAction:
SbVec2s vp_size = static_cast<SoGLRenderAction*>(action)->getViewportRegion().getWindowSize();
to
SbVec2s vp_size = SoViewportRegionElement::get(state).getWindowSize();
At least sometimes tt is a SoRayPickAction because:
When you move with the mouse over the sketcher (when in edit mode) you enter the method ViewProviderSketch::mouseMove.
Inside there the method getPointOnRay is called to get a picked point underneath the cursor. Inside the latter method
an instance of SoRayPickAction is created to traverse the scene graph. After a long cascade of function calls you
finally enter SoDatumLabel::generatePrimitives(SoAction*).
Do not add a symmetry constraint icon to a group of icons, so that it lies on the line or point providing the symmetry (symmetry axis/point),
as it is more clear to the user which line this is.
Based (and solves) Mantis ticket:
http://www.freecadweb.org/tracker/view.php?id=1643
The ticket refers only to redundant, and ask for deletion.
Two commands are created, one for redundant constraints and other for conflicting constraints.
As usually removing one constraint of the "at least one" is sufficient, the implementation selects the constraints (but does not delete them).
The user therefore easily identify the constraints involved and decide to delete them.
This implementation takes into account the edit->Actsketch that ViewProvidedSketch creates for solving, as it is this instance the one that generates the messages in the Sketcher Taskbar.
No buttons in the toolbar by default (can be added by the user), but an hyperlink in the solver messages which triggers the selection of the appropriate command (conflicting or redundant).
Ex 1: User selects constraints from the list => right click => select "select elements" from the contextual menu => The elements (edges,vertex) involved in the constraint(s) are selected.
Ex 2: User selects (a) constraint(s) => Clicks button in toolbar (if included by the user) => The elements (edges,vertex) involved in the constraint(s) are selected.
Intended as visual aid to see which elements are being affected by a constraint.
Requested by Jim on thread:
http://forum.freecadweb.org/viewtopic.php?f=19&t=6875&start=10
Solving another Mantis ticket I can not find now.
inherit Base.FreeCADError form RuntimeError
inherit Part.OCCError from Base.FreeCADError
inherit OCCDomainError from Part.OCCError
inherit OCCRangeError from Part.OCCError
inherit OCCConstructionError from OCCDomainError
inherit OCCDimensionError from OCCDomainError
Added PY_CATCH_OCC macro
replace PyExc_Exception
use FreeCADError in makeWireString
catch exception in BSplineCurve.increasedegree
After loading, the startpage now checks for
http://www.freecadweb.org/version.php and compares
with current version, and displays a message accordingly.
Feature requested by nahshon.
- In auto-switch to edge mode, actually switch to first valid type, which is always
edge, except for a point. It reduces the amount of clicks when dealing with points.
- Correction of a typo.
The purpose of this tool is to handle standalone objects such as
furniture or sanitary equipment in a building. It is mesh-based,
and accepts either a mesh or a part shape as its base object.
a. Use scale to calculate max distance
b. Consider only circle/arc that actually touch the newly created line
c. Use of arc angles correctly
d. Find nearest touch point (not nearest center)
e. some optimization
load only MODELING module instead of ALL
show TypeId of unsupported Objects
use angel of revolution for cones
improve sweep output
support for point, vertex, Part and Draft Polygon
cache object names to reuse them in DRAWEXE
do not expode spine which are allready edges
don't try to make faces from arcs (if this failed in FreeCAD allready)
use rounded floats if they safe digits
Sometimes the floats seems to be rounded to twelve decimal
places. we round them if it allows so safe digigts.
round angles
* Uses DXF algos of the Drawing module instead of the Draft dxf library
* Uses a DXF template with the same name as the SVG template, if existing
* Only Draft, Arch, Part and Annotation views are currently supported
* Drawing module's projectToDXF() now returns only a fragment instead of a full DXF file
bugfix to Loft in exportDRAWEXE
added Extrusion
ability to clean shapes from teselation before export
support for Fillet in exportDRAWEXE
name shapes with restore command
remove trailing dot from decimals
include version information in output
allow to test if a suboject is supported
explode sections of loft and sweep and edges for fillet
- Varios minor bug fixes.
- Added the other commands to the toolbar.
- Bug fix: missing AbortCommand().
- Mode Auto-switch to edge (Sponssi mode) has selection combo disabled to avoid interferring with this mode.
However, if auto-switch checkbox is unchecked (Jim-Abdullah mode), the combo is enabled and selection of
element type can be effected via the combo with the mouse.
In any case "z" shortcut iterates round robin the "valid types" of the preselected (hovered) element.
commit 695becbbfff961b13e3edb5a4e1e4487bc53b4bb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Mon Aug 4 15:24:33 2014 +0200
- Making combo disable state.
- Updating Art (Thanks Jim!)
commit d5391d40ace450fa2e65fe2b4ab8029ad37cacf8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Fri Aug 1 00:40:15 2014 +0200
- Adaptation of code to Workbench's new Template structure.
- Minor adaptation of new ViewProvideSketch code to new constraint code (only in code extensions needed for element Widget)
commit ecdec20afa33c9a950e6054e80e4aa9c72aad8b6
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Thu Jul 31 15:31:38 2014 +0200
Fix so that when applying a coincident constraint to a plurality of points,
if one constraint on a couple of points exists, no new coincident constraint is
added to this couple.
Fixes: http://forum.freecadweb.org/viewtopic.php?f=3&t=6890
commit 32ef59d76e6c63356f5d36598ca11eb47c2e52af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Thu Jul 31 14:13:58 2014 +0200
Add some placeholder art for icons to avoid having a cross icon and annoying icon not found messages.
commit ccb60a3a7e71a0eb8ad5d896542314a98ef314a8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Mon Jul 28 20:15:29 2014 +0200
- Fixed Length Constraint accelerator (D) to SHIFT+D to avoid colision with other higher level FreeCAD accelerator assignment.
- Selection Accelerators now toggle on shortcut execution, and act when no other element is selected (fixed bug)
TODO: Art+Toolbar
commit 791358d046e8eeb03fa00272f5627c75254c48eb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Mon Jul 28 15:12:07 2014 +0200
Fixing shortcut system:
- Take shortcuts automatically from CommandManager.
- Fixed two shortcuts in CommandConstraints (Point on Object - O and
Parallel Constraint - P to SHIFT+O and SHIFT+P to avoid collision with other constraints)
- Fixed shortcuts in CommandConstraintAccel to non-already-existing combinations
- Fixed Sketcher Menu to show accelerators
commit 12d366406a45038ce1a4f725a98e4f570475084b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Mon Jul 28 11:53:37 2014 +0200
Implemented SHIFT multiple selection functionality in listwidget.
commit 0606ea7dfe38fdf8924f65f14382f1b327145c80
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Mon Jul 28 11:02:02 2014 +0200
Added Sketcher Accelerators for:
- Selection of H Axis
- V Axis
- Origin
Main TODO: Shortcuts and Shift in list widget implementation
commit 297464807fc56fbcf31efadff9625fc05bb20c41
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Wed Jul 23 11:37:21 2014 +0200
Implementation of:
- Switch on 'Z' instead of 'Shift'
- Checkbox to select whether element internal name (e.g. Edge10) should be presented on list or not (Sponssi requested)
- Checkbox to force going back to "Edge" type on change from one element to the next (Sponssi requested)
commit c8764b116acdcfdc7ef7658dc6009fb8db807906
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Wed Jul 23 07:57:11 2014 +0200
TaskSketcher Elements:
- Store Vertex within elements for optimization (reduce loops searching for vertex in every function call)
- Added the accelerators described below + Toggle Construction as context menu commands
- Fixed bug (Thanks sponssi!): After some element has been preselected from the list and the cursor moved to the drawing area,
the preselection doesn't seem to be resetted in the widget or whereever it is handled.
Tapping shift still swaps the preselection between the points of the previously selected element.
The left mouse button has to be clicked in the draw area to get rid of this.
http://forum.freecadweb.org/viewtopic.php?f=10&t=6861&sid=7eea4adc7ecf4cebd561b357601866a2&start=20
- Extended naming of elements, to facilitate writing python code (as requested by sponssi).
- Minor modifications (creation of utility fuctions, code readibility, ...)
Sketcher Workbench:
- First effort to add a toolbar with the accelerators.
Sketcher Accelerators: (Perform actions on existing elements, as opposed to Geometry Creation, not restricted to applying constraints)
- Close Shape : of selected edges (i.e. lines and arcs)
- Connect : selected edges (connect endpoint edge with starting point of next edge according to selection order)
- Select Constraints : associated with currently selected edges
commit 1dc18204a4e2e38f71d729a7692383f50a7d4654
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Sat Jul 12 16:06:48 2014 +0200
New alternative implementation of the Sketch Element List.
This version comprises:
- Identification via icon of type of geometric element (Point, Arc, Line, Circle) and
Type of selection (Edge, Starting Point, End Point, Center Point)
- Corrected a bug where upon selection from the combobox, the icons were not updated (Thanks Jim!)
- Implementation of jump to next valid type of last preselected element (aka fast-forward) for all the types.
commit 4d472ef796362405c3982355f86489fa92cbfe6d
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Thu Jun 26 17:15:51 2014 +0200
Feature request by jmaustpc
- When an object does not have an element, lets put a different icon.
- Currently the constraint lock icon is used until availability of a new one.
commit 6d15478f6533ff3805520a8ca36d1c41908cb0af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Thu Jun 26 14:54:23 2014 +0200
Bug fix (preselection not disappearing on changing element without the element Type).
commit e33043e17781fcf6399257696f115f68ab4580ec
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Thu Jun 26 14:39:20 2014 +0200
New nicer icons by jmaustpc. They look much nicer :-)
commit 2ce2d6ff1ad2d81b0b1e30ffcbe9f2cc445f2e5b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Thu Jun 26 14:37:21 2014 +0200
Fast-Forward functionality:
- If an element not having "midpoint" is preselected, then on pressing SHIFT the
Type will jump from EndPoint to Line skipping midpoint.
- This is intended as a productivity feature, as most sketch elements usually are lines
commit 1865d06d06582a49da10ddc123133807a4593060
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Wed Jun 25 15:47:22 2014 +0200
Bug fix (thanks jmaustpc)
- Preselection is maintained even though the geometric element does not have the "Type".
- Fix involves calling for remove preselection in TaskSketcherElement
- Implementing the response to the message RmvPreselection in ViewProviderSketch
commit 14e21da4b4ed0e9a2b3e846a4e51f6745d5e0ab7
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Mon Jun 23 14:25:35 2014 +0200
Fix Bug with null pointer (thanks jmaustpc!)
Clean up code
commit 0d99eb633f1bca45d4e7bb22c57bd4892767a390
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date: Wed Jun 11 16:32:48 2014 +0200
New widget for the Taskbar of the Sketcher WB.
The objectives of this widget are:
1. Allow editing of sketches when they have (partially) overlapping lines of any type
(construction/external/normal).
2. Allow the construction of sketches using the keyboard (less mouse intensive)
The widget works as follows:
1. A QListWidget presents a list of elements, element is here a geometric element
formed Types edges, starting points, end points and midpoints (e.g. circles, arcs)
2. On hovering/Entering one item in the list, it is preselected for easy identification.
3. The selection can be switched from one type to another using the SHIFT key
(press and release) in a round-robin fashion (or you can select it using the droplist)
4. Selection of different types is possible (e.g. two points and a line).
5. The contextual menu accessible by right click allow to apply a constraint to the
selection.
6. The constraints in the contextual menu have shortcuts, so you can actually use the
shortcut directly from the QListWidget.
Additional features introduced to other parts during development...
- New color introduced for Types that are selected and preselected at the same time
- Edges is a SoLineSet. You can not apply many So modifiers (width,offset) to parts of a SoLineSet.
An edge part of a SoLineSet that is drawn after another one, covers it unless it is closer to the
camera. The system of manual offsets already in place for points has been extended to properly
handle (i.e. show) overlapping lines part of a SoLineSet.
* makeCompoundFromSelected: creates a compound object from selected subobjects
* cleanArchSplitter: cleans the splitters on imported Arch objects
* rebuildArchShape: tries to rebuild a solid from the faces of an invalid shape
* The new IFC importer uses excusively the newest ifcopenshell.py module
* Renamed old importer to importIFClegacy.py
* Included the now deprecated ifcReader and ifcWriter modules into importIFClegacy
* The new IFC importer falls back on the older one if the ifcopenshell module is not found
commit 8853bf442b6e1a98699fa90fca5eb30b3f6d3a5e
Author: Ian Rees <ian.rees@gmail.com>
Date: Tue Jul 29 15:46:59 2014 +1200
Refactoring and small fix in constraint icon bounding boxes
commit c03e4c13d8fd657e18e3c78d16bbdef209f8c779
Author: Ian Rees <ian.rees@gmail.com>
Date: Mon Jul 28 15:41:15 2014 +1200
Implemented picking of individual constraints from combined icons
commit 254aaab450fe6646bee7542c532c454af91b6597
Author: Ian Rees <ian.rees@gmail.com>
Date: Mon Jul 28 13:04:18 2014 +1200
Added bounding boxes for combined constraint icons
commit 4f0738ec30220fbf1abdea14dd121d0a134e5dfd
Author: Ian Rees <ian.rees@gmail.com>
Date: Sat Jul 26 18:53:33 2014 +1200
Added screenCoordsOfPath() to View3DInventorViewer
commit 14e2dc7b4aa79db97cbacd2c848728a66276d644
Author: Ian Rees <ian.rees@gmail.com>
Date: Sun Jul 20 14:24:27 2014 +1200
Bit of code to make constraint icon text rendering nicer.
This won't be useful unless the font changes, but wanted to add it while
I was thinking about it.
commit 8020d2d62214d71875cbae101d5ac5e96d998201
Author: Ian Rees <ian.rees@gmail.com>
Date: Sun Jul 20 13:54:51 2014 +1200
Fixed an off-by-one in ViewProviderSketch::combineConstratintIcons
Bug resulted in icons occasionally not being combined into groups,
when they should've been.
commit 20d92a3ccc1f795be1cb86f6f92045518dc8eb81
Author: Ian Rees <ian.rees@gmail.com>
Date: Tue Jul 15 19:38:20 2014 +1200
Fixed a bug that was introduced two commits ago.
commit 69e1ea848e3bc3c8c372c539f30a7b4d2a563aa2
Author: Ian Rees <ian.rees@gmail.com>
Date: Tue Jul 15 15:33:30 2014 +1200
Fixed dumb copy-and-paste error
commit a998b75a905cc31e1f4f49869e81ecaef5858b69
Author: Ian Rees <ian.rees@gmail.com>
Date: Sun Jul 13 18:39:22 2014 +1200
Fixed crash reported by sponssi
More info at http://forum.freecadweb.org/viewtopic.php?f=10&t=6965&p=56590
commit 27b7b804790dda5164c7ef0b9418f6c160228859
Author: Ian Rees <ian.rees@gmail.com>
Date: Thu Jul 10 13:32:16 2014 +1200
Cleaning up my git repo for FreeCAD.
This branch now has just the Sketcher icon fixes, plus a few random comment edits.
* Removed roundings in exported objects
* Added toggleIfcBrepFlag command to force export as BREP
* Prepared Arch objects for Materials and custom IFC attributes
* Supported latest developement version of IfcOpenShell
* Cleanup of IFC exporter
* Export of Arch Sites as IfcSite
* Export of Groups as IfcGroup