Commit Graph

15839 Commits

Author SHA1 Message Date
Yorik van Havre
2177f4437b Arch: Fixed solar diagram for py3 2019-05-08 12:06:55 -03:00
Yorik van Havre
64d7ed3697 Merge branch 'Moult-fix-draft-edit-with-modifiers' 2019-05-08 11:52:05 -03:00
Dion Moult
dc284e4d4d Fix scale command and simplify UI, add support for scale subelements 2019-05-08 10:27:44 -03:00
Dion Moult
fc24bf1446 Add subelement ghosts in scale command, and minor code cleanup
I suspect the scale command itself is a little broken, so I need to fix that before adding subelement support
2019-05-08 10:27:44 -03:00
Dion Moult
fd4992cb9a Implement rotation with optional copy of draft subelements 2019-05-08 10:27:44 -03:00
Dion Moult
91438c1688 Add subelement support for rotating individual vertices 2019-05-08 10:27:44 -03:00
Dion Moult
bc3af1afbc Code simplification of move subelements command 2019-05-08 10:26:55 -03:00
Dion Moult
8501377119 Support copying subelements 2019-05-08 10:26:55 -03:00
Dion Moult
547851ccf6 If wires are merged, deleted, or otherwise had graph changing operations while edit mode is active, don't complain 2019-05-08 10:26:55 -03:00
Dion Moult
69646518df Show draft objects as an x-ray view, and edit bases if they exist. 2019-05-08 10:26:55 -03:00
Dion Moult
be65fbf8ff Fix move edge to work on closed wires 2019-05-08 10:26:55 -03:00
Dion Moult
985dbaead8 Clear existing preselects when setting a new preselect 2019-05-08 10:26:55 -03:00
Dion Moult
7da48b3307 Actually highlight preselected objects upon the selectionchange event, otherwise it only triggers on mousemove event 2019-05-08 10:26:55 -03:00
Dion Moult
7ecc9cfb21 Add python binding for setPreselect function via Selection.SetPreselection() 2019-05-08 10:26:55 -03:00
Dion Moult
ba1f045065 Make movement vector a class variable of the move command, show error for unmovable elements, and move action into a commit to allow undo/redo. 2019-05-08 10:26:55 -03:00
Dion Moult
60fa857b49 Add subelement mode to draft move command to allow movement of vertices and nodes 2019-05-08 10:26:55 -03:00
Dion Moult
6e6bdc04a0 Create functions for moving vertex and edges 2019-05-08 10:26:55 -03:00
Dion Moult
d392daefd2 Fix typo 2019-05-08 10:26:55 -03:00
Dion Moult
9e619d0e4b Make ghostTracker support showing nodes as well 2019-05-08 10:26:55 -03:00
Dion Moult
4c04d8ee94 Add new edit tool icon, shortcut, and basic modes.
* It allows you to select multiple objects to edit instead of just one.
 * It highlights the object lines and the points in red.
 * It stays in the mode and allows you to run other modifiers.
 * A very hackish hook into the move modifier is added as a proof of concept.
2019-05-08 10:26:54 -03:00
wandererfan
5eb38b0b56 Use icons from resource file
- [theme] option in Qt Designer does not work everywhere.
2019-05-07 22:18:33 -04:00
Yorik van Havre
b03aa051a4 Arch: Fixed error in roof - Fixes #3864 2019-05-07 22:47:15 -03:00
Yorik van Havre
9eef1b3e45 Arch: Fixed missing cmake/qt stuff for Arch Fence 2019-05-07 21:53:05 -03:00
furti
750d808918 Clip sections when too long
When the path wraps around a corner the section might be too long to fit
between the fence posts. So we clip it to the length so that it fits.
2019-05-07 21:31:12 -03:00
furti
41a4ef6674 Add Arch Fence builder
This tool can build a Fence by giving it a single Section, a single Post
and a Path.
It will calculate the number of posts and sections needed and repeat them
along the path so that a full fence is build.
2019-05-07 21:31:12 -03:00
furti
9cfb84d862 Extract Path Array logic into separate functions
The Path Array logic is pretty useful to be used directly by macros.
But until now it was encapsulated in the PathArray class and could only
be used by creating a full PathArray object. So we can't use it inside
other Objects to create a repeated shape.

This commit extracts the logic into a separate function that returns a
list of placements. One can use this placements now to copy a shape and
place it accordingly.
2019-05-07 21:31:12 -03:00
Russell Johnson
aaae829704 Path: Integrate 4th-axis feature to PathPocketShape and 3D Surface ops (#2114)
* PathSurface: Add StepDown support

Add StepDown support for PathSurface operation.
A low-level optimization algorithm is included.

* Update PageOpSurfaceEdit.ui

* PathSurface: Activate CompletionMode input

Update code to use CompletionMode selection from user.

* PathSurfaceGui: Add Completion Mode selection box

Add Completion Mode selection box for user input.

* PathSurface: Use depth_params() for step control

Implemented PathUtils.depth_params() for control of step downs to maintain consistency throughout PathWB.
Suggested by Sliptonic.

* PathSurface: Improve stability - Rev3

Organized code better, improved path optimization algorithm

* PathSurface: Add XY rotational surfacing

Add options to perform 3D surfacing by rotating object around X or Y axis.

* PathSurface: update setup function

Add properties to setup function

* PathSurface: Remove extraneous code

removed commented lines that consume processing time

* PathSurface: Correct nxt.z point assignment

Corrected error in nxt.z value assignment. Was assigning value to pnt.z instead of nxt.z

* PathSurface: Update 4th axis operation

Provided both parallel and perpendicular to axis  scans when performing rotational operation.

* PathSurface: Corrected Y-axis rotation to gcode

Inverted Y-axis scan values in gcode to produce correct result

* PathSurface: Adjust gcode feed rates

Adjust feed rates for axial rotations

* PathSurface: Implement waterline alternative

Used OCL dropcutter scan as data base for python algorithm to extract a waterline.  Waterline also incorporates step down feature.

* PathSurface: Update to 3m-Usable

stability improvements
fixed step on multi-pass 4th axis scans
initiate code to accommodate cut modes: zigzag, line
initiate code to accommodate offset cutter on 4th axis scans to simulate a tilted cutter for ball end mills

* PathSurface: Update 3m-Usable_r1

change instantiated static class attributes from value None, to 0.0

* PathSurface: Revert to 3i-Usable_r1

Further testing needed for 3m-Usable release

* PathSurface: Update to Rev. 3s Usable

fixed step over in rotational scans
start/stop indexes
tilt cutter adaptation for ball end mill
cut pattern: zigzag, line partially implemented
ignore waste option initiated for planar scans
cut mode partially implemented: conventional & climb

* PathSurface: Update to Rev. 3t Usable

Corrected rotational errors
corrected cutter tilt rotation
added "ignore waste" feature for planar surface operation

* Implement 4th-axis feature

Implement 4th-axis feature:
add gcode commands for rotation
re-compute operation heights, to consider rotation radii

* Deleted reference to undeclared variable

* Added missing class attributes/variables

* Added missing class variables/attributes

* Relocate class variables to higher class

* Remove references to undeclared variables

relocated class variables here
delete references to undeclared variables

* Correct rotation direction for normal-to-Y faces

* Remove X oriented 180 degree rotation adjustment

Probable error in FreeCAD gcode renderer, producing incorrect B axis rotation

* Update 4th-axis integration

Address FC error with B axis rotation rendering: user input to override error for visual alignment with model.
Correct pocket depths with Final Depth input enforced.
Add Reverse Direction flag input for reversing direction of pocket: necessary in some use cases.
NOTE: 4th-axis throws errors with Extension Corners feature.  EC feature needs 4th-axis rotation integration when calculating extensions for a particular part feature/face.
General testing needed.

* PathSurface: Add StepDown support

Add StepDown support for PathSurface operation.
A low-level optimization algorithm is included.

* Update PageOpSurfaceEdit.ui

* PathSurface: Activate CompletionMode input

Update code to use CompletionMode selection from user.

* PathSurfaceGui: Add Completion Mode selection box

Add Completion Mode selection box for user input.

* PathSurface: Use depth_params() for step control

Implemented PathUtils.depth_params() for control of step downs to maintain consistency throughout PathWB.
Suggested by Sliptonic.

* PathSurface: Improve stability - Rev3

Organized code better, improved path optimization algorithm

* PathSurface: Add XY rotational surfacing

Add options to perform 3D surfacing by rotating object around X or Y axis.

* PathSurface: update setup function

Add properties to setup function

* PathSurface: Remove extraneous code

removed commented lines that consume processing time

* PathSurface: Correct nxt.z point assignment

Corrected error in nxt.z value assignment. Was assigning value to pnt.z instead of nxt.z

* PathSurface: Update 4th axis operation

Provided both parallel and perpendicular to axis  scans when performing rotational operation.

* PathSurface: Corrected Y-axis rotation to gcode

Inverted Y-axis scan values in gcode to produce correct result

* PathSurface: Adjust gcode feed rates

Adjust feed rates for axial rotations

* PathSurface: Implement waterline alternative

Used OCL dropcutter scan as data base for python algorithm to extract a waterline.  Waterline also incorporates step down feature.

* PathSurface: Update to 3m-Usable

stability improvements
fixed step on multi-pass 4th axis scans
initiate code to accommodate cut modes: zigzag, line
initiate code to accommodate offset cutter on 4th axis scans to simulate a tilted cutter for ball end mills

* PathSurface: Update 3m-Usable_r1

change instantiated static class attributes from value None, to 0.0

* PathSurface: Revert to 3i-Usable_r1

Further testing needed for 3m-Usable release

* PathSurface: Update to Rev. 3s Usable

fixed step over in rotational scans
start/stop indexes
tilt cutter adaptation for ball end mill
cut pattern: zigzag, line partially implemented
ignore waste option initiated for planar scans
cut mode partially implemented: conventional & climb

* PathSurface: Update to Rev. 3t Usable

Corrected rotational errors
corrected cutter tilt rotation
added "ignore waste" feature for planar surface operation

* Implement 4th-axis feature

Implement 4th-axis feature:
add gcode commands for rotation
re-compute operation heights, to consider rotation radii

* Deleted reference to undeclared variable

* Added missing class attributes/variables

* Added missing class variables/attributes

* Relocate class variables to higher class

* Remove references to undeclared variables

relocated class variables here
delete references to undeclared variables

* Remove X oriented 180 degree rotation adjustment

Probable error in FreeCAD gcode renderer, producing incorrect B axis rotation

* Correct rotation direction for normal-to-Y faces

* Update 4th-axis integration

Address FC error with B axis rotation rendering: user input to override error for visual alignment with model.
Correct pocket depths with Final Depth input enforced.
Add Reverse Direction flag input for reversing direction of pocket: necessary in some use cases.
NOTE: 4th-axis throws errors with Extension Corners feature.  EC feature needs 4th-axis rotation integration when calculating extensions for a particular part feature/face.
General testing needed.

* Apply XYZ Model translations to paths; Add rotation axis selection property

* Spelling correction

ln 110

* Geometry list box: shrink height

560 to 400 height

* Update 4th-axis integration

Clean up code
Add comments for visionary elements
Apply axis selection to opHeights rotational calculations

* Update 4th-axis integration

Prepare sorting of vertical faces per axis_angle grouping, just as horizontal faces are sorted, for analysis as connected shapes

* Reset to FreeCAD master current

* Reset to current FreeCAD master version

* Update PathPocketBase.py

* Reset to current FreeCAD master

* Corrected __created__ date

* Convert all print() to PathLog.debug()

* Convert print() to PathLog.debug(); Clean up code

Use PathLog.debug over print() for troubleshooting
Clean up large commented sections of code.

* Convert print() to PathLog.debug(); combine duplicate methods

* Update last modified stamp

* Update last mofified timestamp

Also, removed commented-out code

* Typo corrected: "selt." to "self."

Discovered in https://api.travis-ci.org/v3/job/526456071/log.txt
on 30 April 2019 while searching for errors related to failure of PR #2114

* Restore initialization of self.depthparams

PR is failing Travis CI build test. Previous deletion of this code appears to be the reason.
See report at: https://api.travis-ci.org/v3/job/526492709/log.txt

* Convert tuple sizes from other PathWB ops

* B-axis rotation: render correction

* Revert "rebase to FC master 2019-05-02"

* Correct depthparams opOnDocumentRestored() issue

* Relocate "UseRotation" property from PathAreaOp.py

* Improve meshFromShape() calculation per @sliptonic

faster mesh creation
helps smooth jagged lines in path results

* Part: Make 3rd party libraries into PCH

* PartDesign: 3rdParty to PCH

* Sketcher: PCH

* PartDesign: PCH GUI

* Sketcher: GUI PCH

* Travis windows build (#2110)

Travis windows build

* Travis: enable clcache debug

* disable travis clcache debug

* respect user settings for dialog used in merge-document command

* msbuild verbose and logo

* Travis force wait 60 minutes

* Travis: Use & between vars sourcing and msbuild

* Travis: Move building to external batch script (#2131)

* Travis: Move building to external batch script

* Travis: double quotes to escape route

* Travis: use cmd.exe to call batch file

* Crowdin: fix grammatical error + whitespace 

https://crowdin.com/translate/freecad/569/en-fi#6498705

* Crowdin: experiment to fix crowdin 'ghost' strings

The following translation strings still perpetuate after updating crowdin translations. This commit experiments with removing their source counterparts in the FC .ts files. I'm not sure why they are not rendered obsolete by the normal operations. 
  
* https://crowdin.com/translate/freecad/6766/en-en#6499472  
* https://crowdin.com/translate/freecad/6766/en-en#6573450

* fix for edit tracker draw styles

* deleted commented code

* Travis: filter out

* AddonManager: allow to add custom repositories

* Revert "rebase to FC master 2019-05-02"

* Draft: Fixed Draft text justification

* Arch: Fixed bug in arch windows creation

* Arch: Fixed export of windows colors to IFC

* Draft: Fixed 0.18.1 bug in DXF importer

* Arch: Fixed wrong exported objects in IFC export

* Arch: Fixed export of sites to IFC

* Start: Fixed bad default icon in start page

* Correct depthparams opOnDocumentRestored() issue

* Relocate "UseRotation" property from PathAreaOp.py

* Improve meshFromShape() calculation per @sliptonic

faster mesh creation
helps smooth jagged lines in path results

* Relocate "UseRotation" property in PathAreaOp.py

* Syntax correction

Travis CI python 3.7 build test fails regularly due to syntax error at this point

* Correct rebase issue: PR #2114

* Correct rebase issue: PR #2114

* Correct rebase issue: PR #2114

* Correct rebase issue: PR #2114

* Correct rebase issue: PR #2114

* Correct rebase issue: PR #2114

* path pep8 cleanup

* Multi-face geometry selection repaired

Previous version broke ability to select process multiple faces selected by user in geometry tab in operation task window.
Also performed some syntax cleaning per PEP8 linter

* Update script version info
2019-05-06 21:29:08 -05:00
Mikael Lindqvist
2d2b5f3e19 When using fcbt.py to generate a python module, use FreeCAD.getUserAppDataDir() rather than FreeCAD.getHomeDir() to specify the module icon 2019-05-06 10:26:10 -03:00
carlopav
49ed29cd0b Update DraftGui.py
found another bug: when aligning to y axis while tracing a line, the focus is not set on the length if the option is checked in preferences. this should fix it.
2019-05-06 10:23:37 -03:00
carlopav
c17a89973f Draft GUI setfocus if lengthValue is not visible
If set focus on length instead of x coordinate is checked, Draft set the focus on it also if the lengthValue is not visible
2019-05-06 10:23:37 -03:00
luz.paz
fa1a429367 src/Tools/updatets.py: modernization tweeks
Made CLI output more user-friendly especially since we're transitioning to py3/qt5 and the translation tools have different standards (minor changes).  
+ added Changelog
+ bumped version and added authors
2019-05-06 10:21:58 -03:00
luz.paz
519bbfe503 Misc. source comment typo and whitespace fixes 2019-05-06 13:42:30 +02:00
sliptonic
56953251ad Merge pull request #2101 from Schildkroet/master
G2 arcs for helix ramp in PathAdaptive operation
2019-05-06 05:35:45 -05:00
wandererfan
d078f901c7 Pass font/fontsize to RT editor 2019-05-05 21:01:31 -04:00
wandererfan
6c699887c0 Leader and RichText block improvements 2019-05-05 21:01:31 -04:00
wandererfan
7f07195f93 Text Leader initial version 2019-05-05 21:01:31 -04:00
sliptonic
8118359fdd Merge branch 'master' into master 2019-05-05 17:05:50 -05:00
brad
6bd378b0e1 Path: refactor PathEngrave.py 2019-05-04 17:27:45 -05:00
easyw
6a7649d2f0 fix stpZ file exporting (six & py3 issue) 2019-05-04 14:34:30 -03:00
easyw
dd62a3e66b fixing locale issue for Image WB
https://forum.freecadweb.org/viewtopic.php?f=3&t=36069#p305570
2019-05-04 14:33:01 -03:00
Yorik van Havre
8d237da7cb Draft: Keep using the already set working plane, if existing 2019-05-04 14:31:43 -03:00
Syres916
fad8fa4071 importDXF draftWPlane Fix
To fix error:
    w.Placement = placementFromDXFOCS(polyline)
  File "E:\Data\My Downloads\FreeCAD_0.19.16587_x64_Conda_Py3QT5-WinVS2015\FreeCAD_0.19.16587_x64_Conda_Py3QT5-WinVS2015\Mod\Draft\importDXF.py", line 422, in placementFromDXFOCS
    draftWPlane = FreeCAD.DraftWorkingPlane
<class 'AttributeError'>: module 'FreeCAD' has no attribute 'DraftWorkingPlane'
2019-05-04 14:31:43 -03:00
wmayer
222ae7305f revert 3a133ee0 to fix build failure 2019-05-04 12:36:00 +02:00
Abdullah Tahiri
df38102017 PCH: Part GUI 2019-05-03 23:15:25 +02:00
Abdullah Tahiri
3a133ee0cb Path: Add libarea to PCH 2019-05-03 23:15:09 +02:00
Abdullah Tahiri
5866306efd Path: PathSimulator PCH 2019-05-03 23:15:09 +02:00
Abdullah Tahiri
1bb08559d4 PCH: Path GUI 2019-05-03 23:15:09 +02:00
Abdullah Tahiri
b22d59c0aa PCH: Path App 2019-05-03 23:15:09 +02:00
wmayer
c373a58746 fix warning 2019-05-03 18:20:36 +02:00
Yorik van Havre
d4ed08f75a Start: Fixed bad default icon in start page 2019-05-02 18:01:08 -03:00