FreeCAD / FreeCAD/FreeCAD

Sketcher: Add a direction marker to sketch lines for better UI/UX with direction sensitive tools and views

Open
#24,253 59 comments 2 reactions 0 assignees View on GitHub
Mod: Sketcher Requires: UI/UX review Topic: User Interface Type: Feature
Dominant language
C++
Stars
33.6k
Forks
6k
Avg merge
3d 17h
Merged PRs (30d)
196

Description

### Is there an existing issue for this?

- [x] I have searched the existing issues

### Problem description

Currently, there's no way to identify the start and end of a line segment.
While this was previously only important for BIM objects (like walls), the sketcher itself now has direction-sensitive tools (clockwise or counterclockwise).

In this video, I demonstrate how sketch direction affects the offset tool.

If the directions match, the offset is constructed without problems.
If the directions differ, the offset is created incorrectly.

https://github.com/user-attachments/assets/ee365973-1052-46f9-8227-648ef789cdba

It's likely a long and arduous process to improve the offset algorithms. BUT! We could enable users to "fix" sketches themselves.

This requires two things:
1) Line direction markers.
This option may be optional and can be enabled in the element filter.
![Image](https://github.com/user-attachments/assets/c2ebe206-93be-4593-8a47-c0049f444138)

2) Add a direction change tool.
I described its operation in another issue. https://github.com/FreeCAD/FreeCAD/issues/11957

All this will allow the user to analyze directions and change them independently WITHOUT rebuilding the entire geometry anew.

A test file is attached. Remove the .zip extension.

[SketchLineDirection.FCStd.zip](https://github.com/user-attachments/files/22560270/SketchLineDirection.FCStd.zip)

### Full version info

```shell
OS: Manjaro Linux (KDE/plasma/xcb)
Architecture: x86_64
Version: 1.1.0dev.14555 (Git shallow) AppImage
Build date: 2025/09/23 18:47:15
Build type: Release
Branch: main
Hash: e9ce06155d8d47aad7d6c079bfa8ba54df2b6081
Python 3.11.13, Qt 6.8.3, Coin 4.0.3, Vtk 9.3.1, boost 1_86, Eigen3 3.4.0, PySide 6.8.3
shiboken 6.8.3, xerces-c 3.3.0, IfcOpenShell 0.8.2, OCC 7.8.1
Locale: Russian/Russia (ru_RU)
Navigation Style/Orbit Style/Rotation Mode: Revit/Turntable/Drag at cursor
Stylesheet/Theme/QtStyle: unset/FreeCAD Classic/fusion
Logical DPI/Physical DPI/Pixel Ratio: 96/91.7938/1
Installed mods:
* addFC-main 1.6.2
* Reinforcement
* SvgWorkbench-main 1.0.0.dev5
* PitchedRoof
* LyapinWorkbrench
* FreeCAD_FastenersWB-master 0.5.42
* FreeCAD_SketchArch-master
* FrameForge 0.1.3
* Road 2025.2.22
* Curves 0.6.70
* freecad.gears 1.3.0
* CurvedShapesWorkbench-master 1.0.13
* sheetmetal 0.7.53
* OpenTheme 2025.5.20
* FreeCAD_ThreadProfile-master 1.97.0
```

### Subproject(s) affected?

Sketcher

### Anything else?

_No response_

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.