View Issue Details

IDProjectCategoryView StatusLast Update
0001490SketcherFeaturepublic2014-04-19 09:35
ReportermdingerAssigned Towmayer 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product Versiontrunk 
Target VersionFixed in Version0.14 
Summary0001490: Implement a perimeter circle (3 point circle) similar to solidworks in sketcher
DescriptionSolidworks gives you a method to draw circles in sketches by placing 3 points on the rim of the arc. This bug is to implement it.

This is similar to bug 1475.
http://freecadweb.org/tracker/view.php?id=1475

Tested version:
https://github.com/FreeCAD/FreeCAD_sf_master/commit/3e80fa3

A 3 point circle takes 3 steps to construct:
1. Place the beginning point of circle
2. Place the end point of circle
3. Place a point on the rim of the circle

This fully defines the circle. Note that centerpoint is not picked and must be calculated.

I have this almost fully implemented.
TagsNo tags attached.

Activities

mdinger

2014-03-23 22:09

reporter  

3_point_circle.png (54,517 bytes)
3_point_circle.png (54,517 bytes)

mdinger

2014-03-23 22:10

reporter   ~0004486

Here is a picture of the tool in solidworks.

mdinger

2014-03-23 23:29

reporter   ~0004487

This is where it is implemented.

https://github.com/mdinger/FreeCAD_sf_master/tree/3_point_circle

mdinger

2014-03-24 02:47

reporter   ~0004488

I think I have it mostly implemented except for a better icon. The icon stacking seems to work fine but I don't really understand it well. However, it should be fine because it's copy paste from the 3 point arc tool. Regardless, you may want to look at it before you accept it (if you accept it).

It has these implemented:
1. Stacked icons
2. All 3 points auto-snap
3. Tool is enabled on the right click menu
4. Tool is in the Sketcher menu
5. Tool is in both "Part Design" and "Sketcher" toolbars

wmayer

2014-03-26 16:25

administrator   ~0004489

I'll have a look at it at the weekend...

mdinger

2014-03-26 23:06

reporter   ~0004491

I don't think it needs to merge yet. I still want to make a few modifications.

wmayer

2014-03-27 09:54

administrator   ~0004494

OK, just post here when it's ready for merge.

mdinger

2014-03-27 23:01

reporter   ~0004504

I state below why I disabled tangency on the first 2 points:

Here is a video where I point out some differences between how Creo and SolidWorks implement their 3 point circle tool. Once subtitles get in the way of the video. I tried to move them and succeeded but couldn't get it into a format youtube accepts. Took me so long I decided to leave it as is.

http://youtu.be/1p6BjqYXRPU

Solidworks, to allow tangency on the first 2 auto-snaps, modifies their preview type (between tangent or not) on the fly. This can make the tool jump around a lot depending on what passes under the mouse. Sometimes it will make it hard to use.

Creo avoids it entirely by first, not allowing tangent on the first 2 points. Second, they allow it on the last point _only_ when the _arc_ is already tangent. This makes the tool predictable. Creo also provides a different too, a 3_tangent_circle_tool if 3 tangents are specifically desired.

Creo's design does have a downside. The arc snaps instead of the mouse which makes it snap much more often because the arc is bigger. This can make the mouse feel really sluggish/jittery.

I can make it behave like SolidWorks but I think it can be unpredictable and that isn't good. Since the circle preview won't look tangent for the first 2 points, I am disabling it for them. I can allow the third to be tangent because it is the last and unlikely to adjust the curve as much.

On another note, it might be a good idea to make objects snap like Creo instead of only the mouse. I'm not sure if they should but it might be good.

Recap SolidWorks/Creo:
1. SolidWorks' tangency preview accurately shows the resulting circle
2. SolidWorks' tangency preview can make sometimes make drawing difficult
3. Creo doesn't allow tangency on the first 2 points
4. Creo auto-snaps on the circle and not on the mouse
5. Creo is more predictable because of these choices

Recap FreeCAD:
1. Don't allow tangency on first 2 points
2. Allow tangency on the third
3. Possibly enable snapping on the circle instead of the on the mouse in the future

mdinger

2014-03-28 16:18

reporter   ~0004507

I submitted a pull request here. Please merge:
https://github.com/FreeCAD/FreeCAD_sf_master/pull/20

Here is the forum thread which discussed this feature for future reference:
http://forum.freecadweb.org/viewtopic.php?f=10&t=6146

mdinger

2014-04-17 17:12

reporter   ~0004566

Please mark "Fixed in Version" 0.14

Related Changesets

FreeCAD: master ce7a3eca

2014-03-29 12:03:17

wmayer

Details Diff
+ fixes 0001490: Implement a perimeter circle (3 point circle) similar to solidworks in sketcher (mdinger) Affected Issues
0001490
mod - src/Mod/Complete/Gui/Workbench.cpp Diff File
mod - src/Mod/PartDesign/Gui/Workbench.cpp Diff File
mod - src/Mod/Sketcher/Gui/CommandCreateGeo.cpp Diff File
mod - src/Mod/Sketcher/Gui/Resources/Makefile.am Diff File
mod - src/Mod/Sketcher/Gui/Resources/Sketcher.qrc Diff File
add - src/Mod/Sketcher/Gui/Resources/icons/Sketcher_Create3PointCircle.svg Diff File
mod - src/Mod/Sketcher/Gui/ViewProviderSketch.cpp Diff File
mod - src/Mod/Sketcher/Gui/Workbench.cpp Diff File

Issue History

Date Modified Username Field Change
2014-03-23 22:06 mdinger New Issue
2014-03-23 22:09 mdinger File Added: 3_point_circle.png
2014-03-23 22:10 mdinger Note Added: 0004486
2014-03-23 23:29 mdinger Note Added: 0004487
2014-03-24 02:47 mdinger Note Added: 0004488
2014-03-26 16:25 wmayer Note Added: 0004489
2014-03-26 23:06 mdinger Note Added: 0004491
2014-03-27 09:54 wmayer Note Added: 0004494
2014-03-27 23:01 mdinger Note Added: 0004504
2014-03-28 16:18 mdinger Note Added: 0004507
2014-03-29 11:29 wmayer Changeset attached => FreeCAD Master master ce7a3eca
2014-03-29 11:29 wmayer Assigned To => wmayer
2014-03-29 11:29 wmayer Status new => closed
2014-03-29 11:29 wmayer Resolution open => fixed
2014-04-17 17:12 mdinger Note Added: 0004566
2014-04-17 17:12 mdinger Status closed => feedback
2014-04-17 17:12 mdinger Resolution fixed => reopened
2014-04-19 09:35 wmayer Status feedback => closed
2014-04-19 09:35 wmayer Resolution reopened => fixed
2014-04-19 09:35 wmayer Fixed in Version => 0.14