View Issue Details

IDProjectCategoryView StatusLast Update
0003163ArchBugpublic2018-01-11 16:13
ReporterHoWil Assigned Toyorik  
PriorityhighSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version0.17 
Target Version0.17 
Summary0003163: Draft Draft2Sketch does drop lines if there is a T-crossing of three lines
DescriptionDraft Draft2Sketch does drop lines if there is a Y-crossing of three or more lines in a single point as shown in the first row of the attached image.
There the right line going into the same point as the left and bottom line is dropped when converted to draft-lines or wires.
The white lines are the lines drawn in sketcher and the black lines are the results after the conversion.
  
Steps To ReproduceDraw three lines in sketcher where one end of each line is connected to the others to form a T or Y- junction as shown in the first row of the attached image.
Convert the drawn lines with the Draft Draft2Sketch tool.
Some lines are missing as Draft- wires or d-lines.

Additional InformationThis affects also the use of sketches with junctions for the wall tool in Arch.
TagsDraft, Sketch
FreeCAD Information

Activities

HoWil

2017-08-17 19:35

developer  

HoWil

2017-08-17 19:38

developer   ~0009945

The lines from sketcher are better seen in this additional screenshot.

HoWil

2017-08-17 19:46

developer   ~0009946

Here is link to the related discussion in the forum
https://forum.freecadweb.org/viewtopic.php?f=23&t=23932

lambda

2017-10-27 14:03

reporter   ~0010358

I think it would be fairly easy to fix the problem of ArchWalls by using Part.getSortedClusters() instead of Part.__sortEdges__() ...

However, given that this issue is tagged "Draft" and "Sketch", I'm unsure if this is the desired solution. Do you think there is a problem in the Sketcher?

I guess it could be argued that three edges of a wire should never share a vertex, but surprisingly I didn't find that spelled out anywhere in FreeCAD so far. OTOH basing ArchWalls on wires instead of clustered edges has the downside that an edge might be shared by two wires.

yorik

2017-10-27 16:44

administrator   ~0010359

I don't think it'sn issue in the sketcher, rather a matter of deciding what we want to do in Draft/Arch. Your suggestion of using getSortedClusters() is very good, Sketch2Draft could produce several objects, and Arch Walls could handle Y-situations more gracefully. I'll implement it.

yorik

2017-10-27 18:43

administrator   ~0010360

Implemented in https://github.com/FreeCAD/FreeCAD/commit/e16c152da424a7e9b94f4f50e7b4ddd9f4a4d030

But there is still a minor problem to solve, for some reason splitter removal doesn't work in Arch Walls...

yorik

2018-01-11 16:13

administrator   ~0010740

The splitter removal issue is not related to this problem (happens in other cases as well), so this issue can be closed

Related Changesets

FreeCAD: master e16c152d

2017-10-27 13:41:31

Yorik van Havre

Details Diff
Draft/Arch: Support for Y situations in sketches - issue 0003163 Affected Issues
0003163
mod - src/Mod/Arch/ArchWall.py Diff File
mod - src/Mod/Draft/Draft.py Diff File
mod - src/Mod/Draft/DraftGeomUtils.py Diff File

Issue History

Date Modified Username Field Change
2017-08-17 19:35 HoWil New Issue
2017-08-17 19:35 HoWil Status new => assigned
2017-08-17 19:35 HoWil Assigned To => yorik
2017-08-17 19:35 HoWil File Added: Y- and T-junction problem of sketcher-draft-converter.png
2017-08-17 19:35 HoWil File Added: Y-junction_sketcher-draft-converter.fcstd
2017-08-17 19:35 HoWil Tag Attached: Draft
2017-08-17 19:35 HoWil Tag Attached: Sketch
2017-08-17 19:38 HoWil File Added: Screenshot from 2017-08-17 21-36-46.png
2017-08-17 19:38 HoWil Note Added: 0009945
2017-08-17 19:46 HoWil Note Added: 0009946
2017-10-27 14:03 lambda Note Added: 0010358
2017-10-27 16:44 yorik Note Added: 0010359
2017-10-27 18:43 yorik Note Added: 0010360
2017-11-08 19:36 Kunda1 Changeset attached => FreeCAD master e16c152d
2018-01-11 16:13 yorik Note Added: 0010740
2018-01-11 16:13 yorik Status assigned => closed
2018-01-11 16:13 yorik Resolution open => fixed