View Issue Details

IDProjectCategoryView StatusLast Update
0001355DraftFeaturepublic2014-02-23 20:42
Reporterquick61 Assigned Toyorik  
PrioritylowSeverityfeatureReproducibilityhave not tried
Status closedResolutionfixed 
PlatformAllOSAllOS VersionAll
Product Version 
Target VersionFixed in Version0.14 
Summary0001355: Cubic Bezier Curve Tool For Draft Workbench
DescriptionAs mentioned in FreeCAD forum thread - http://forum.freecadweb.org/viewtopic.php?f=3&t=5348 - Bsplines and Bezier Curves...

This feature request is for the addition of a cubic Bezier curve tool to be included in the Draft Workbench.
TagsNo tags attached.
FreeCAD Information

Relationships

related to 0001272 closedwandererfan FreeCAD BezierCurve is not documented and not intuitive 

Activities

yorik

2014-01-14 15:34

administrator   ~0004078

I'll assign this to myself, but if anyone wants to work on it sooner than me, just say so. Basically the way I see it, it involves the following:

- creation of a new "_Bezier" object in Draft.py, similar to _BSpline (maybe derived from it)
- creation of a new makeBezier() function in Draft.py similar to makeBSpline
- creation of a new icon
- creation of a new Bezier command class in DraftTools.py, based (inherited?) on the BSpline class

wandererfan

2014-01-18 15:57

manager   ~0004097

I've started on it. https://github.com/WandererFan/freecad-dev/tree/BezierProto is a first hack made from bSpline. It makes Beziers, but not necessarily cubics, and I haven't figured out how to make traditional edit handles yet.

Goal is something along the lines of a "polyBezier" with individual edges made from cubic Beziers joined end to end into a wire. (much like Inkscape)

quick61

2014-01-18 21:09

reporter   ~0004099

Last edited: 2014-01-18 21:10

View 2 revisions

wandererfan, this is actually rather usable as is. As you mention, there is no edit yet, but the result so far is impressive. Works a treat.

yorik

2014-01-18 21:24

administrator   ~0004100

Just had a look, great work wandererfan!

One thing that is handy with the draft wire and bspline tools, is that the "real" object gets drawn while you are drawing, allowing things like snapping to itself, or closing by snapping to the first point. I don't know how useful that would be here, though, and I'm also curious about what you are planning with handles, so feel free to implement your own ideas instead. But for me too it is already pretty good as it is now!

shoogen

2014-01-19 12:39

developer   ~0004101

IMHO the editor should either finish the curve when enough poles (degree+1) have been entered or support piecewise bezier curves.
See git://github.com/5263/FreeCAD.git piecewise-bezier

wandererfan

2014-02-05 15:29

manager   ~0004153

should be linked to:
0001272: BezierCurve is not documented and not intuitive
http://www.freecadweb.org/tracker/view.php?id=1272

quick61

2014-02-23 16:31

reporter   ~0004277

This is merged and working. You can probably close at your leisure unless there is something to add.

shoogen

2014-02-23 17:14

developer   ~0004279

git show 2d43d61b921..49ba4de6b8

Related Changesets

FreeCAD: master 2d43d61b

2014-01-17 18:22:46

wandererfan


Committer: yorik Details Diff
Add Draft Bezier Curve draw & edit mockup using bSpline tools. Affected Issues
0001355
mod - src/Mod/Draft/Draft.py Diff File
mod - src/Mod/Draft/DraftGui.py Diff File
mod - src/Mod/Draft/DraftTools.py Diff File
mod - src/Mod/Draft/DraftTrackers.py Diff File
mod - src/Mod/Draft/Draft_rc.py Diff File
mod - src/Mod/Draft/InitGui.py Diff File
mod - src/Mod/Draft/Resources/Draft.qrc Diff File
add - src/Mod/Draft/Resources/icons/Draft_BezCurve.svg Diff File

FreeCAD: master 69b09448

2014-01-19 13:30:10

shoogen


Committer: yorik Details Diff
Draft Bezier Curves: Add functionality to mockup
- Split poles to multiple bezier segments
- set degree of bezier curve
- Close Draft bezier curves
- set Degree at creation
- implement addPoint for piecewise Bezier curves

Draft BezCurve bugfixes
- fix Close button for BexCurve Edit
- fix tracker behaviour in for BezCurve.undoLast

Draft Bezier Curve: use circle trackers for control points

Draft: prepare functions to make bezier knots tangent or symmetric
Affected Issues
0001355
mod - src/Mod/Draft/Draft.py Diff File
mod - src/Mod/Draft/DraftGeomUtils.py Diff File
mod - src/Mod/Draft/DraftTools.py Diff File
mod - src/Mod/Draft/DraftTrackers.py Diff File

FreeCAD: master 6f8c1c61

2014-01-30 11:14:15

shoogen


Committer: yorik Details Diff
Draft: added functions to edit tangent or symmetric bezier curves
changed icon Draft_BezTanNode
bugfix in Draft BezCurve modifytangentpole
move poles with knots for Bezier Curves with Degree >=3
make bezier curves symmetric/tangent when clicking on poles by
keeping the coordinates of the selected pole
Affected Issues
0001355
mod - src/Mod/Draft/Draft.py Diff File
mod - src/Mod/Draft/DraftTools.py Diff File
mod - src/Mod/Draft/Draft_rc.py Diff File
mod - src/Mod/Draft/Resources/icons/Draft_BezTanNode.svg Diff File

FreeCAD: master e60a77eb

2014-01-30 15:16:37

wandererfan


Committer: yorik Details Diff
Add BezCurve tangent/symmetric buttons to Draft.Edit Affected Issues
0001355
mod - src/Mod/Draft/DraftGui.py Diff File
mod - src/Mod/Draft/DraftTools.py Diff File
mod - src/Mod/Draft/Draft_rc.py Diff File
mod - src/Mod/Draft/Resources/Draft.qrc Diff File
add - src/Mod/Draft/Resources/icons/Draft_BezSymNode.svg Diff File
add - src/Mod/Draft/Resources/icons/Draft_BezTanNode.svg Diff File

FreeCAD: master 2dfabfdc

2014-02-02 18:22:27

shoogen


Committer: yorik Details Diff
Draft Bezier Curve: implemented Continuity Property

Draft: allow continuity on closed Bezier curves

Draft: BezCurve bugfixes
- smoothBezCurve
- edit mode
- avoid splitting points into segments as long as degree is zero
- increase the continuity when closing curve
- closed berzier curves
- Catch modifications of continuity of first and last knot on open curves
Affected Issues
0001355
mod - src/Mod/Draft/Draft.py Diff File
mod - src/Mod/Draft/DraftGui.py Diff File
mod - src/Mod/Draft/DraftTools.py Diff File
mod - src/Mod/Draft/Draft_rc.py Diff File
mod - src/Mod/Draft/Resources/Draft.qrc Diff File
add - src/Mod/Draft/Resources/icons/Draft_BezSharpNode.svg Diff File

FreeCAD: master 515449d3

2014-02-21 19:33:17

wandererfan


Committer: yorik Details Diff
Cosmetic change - remove "######" placemarkers Affected Issues
0001355
mod - src/Mod/Draft/Draft.py Diff File

FreeCAD: master 49ba4de6

2014-02-23 16:04:37

yorik

Details Diff
Arch: Added BezCurve to Arch WB Affected Issues
0001355
mod - src/Mod/Arch/InitGui.py Diff File

Issue History

Date Modified Username Field Change
2014-01-13 01:46 quick61 New Issue
2014-01-14 15:34 yorik Note Added: 0004078
2014-01-14 17:13 yorik Assigned To => yorik
2014-01-14 17:13 yorik Status new => assigned
2014-01-14 17:14 yorik Project FreeCAD => Draft
2014-01-18 15:57 wandererfan Note Added: 0004097
2014-01-18 21:09 quick61 Note Added: 0004099
2014-01-18 21:10 quick61 Note Edited: 0004099 View Revisions
2014-01-18 21:24 yorik Note Added: 0004100
2014-01-19 12:39 shoogen Note Added: 0004101
2014-02-05 15:29 wandererfan Note Added: 0004153
2014-02-05 16:26 yorik Relationship added related to 0001272
2014-02-23 16:31 quick61 Note Added: 0004277
2014-02-23 17:14 shoogen Note Added: 0004279
2014-02-23 17:14 shoogen Status assigned => closed
2014-02-23 17:14 shoogen Resolution open => fixed
2014-02-23 17:14 shoogen Fixed in Version => 0.14
2014-02-23 20:38 yorik Changeset attached => FreeCAD Master master 49ba4de6
2014-02-23 20:39 yorik Changeset attached => FreeCAD Master master 515449d3
2014-02-23 20:40 yorik Changeset attached => FreeCAD Master master 2dfabfdc
2014-02-23 20:41 yorik Changeset attached => FreeCAD Master master e60a77eb
2014-02-23 20:41 yorik Changeset attached => FreeCAD Master master 6f8c1c61
2014-02-23 20:42 yorik Changeset attached => FreeCAD Master master 69b09448
2014-02-23 20:42 yorik Changeset attached => FreeCAD Master master 2d43d61b