Arch/Bim Wall Bug?

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: Arch/Bim Wall Bug?

Post by Roy_043 »

Test file attached.
From left to right:
  1. Open trace with T-connections. This matches the examples from the OP.
  2. Closed self-crossing trace.
  3. Trace where the inner offset is self-crossing.
Attachments
ArchWall_test.png
ArchWall_test.png (11.42 KiB) Viewed 1419 times
ArchWall_test.FCStd
(23.82 KiB) Downloaded 43 times
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Arch/Bim Wall Bug?

Post by paullee »

Roy_043 wrote: Sat Mar 19, 2022 5:18 pm This line:
face = Part.Face([w1, w2])
Always produces a faulty face (actually it produces a shape).
And this is required:
face.fix(0.1, 0, 1)
IMO fix should be called in the bind function, not in ArchWall.py.
I see, thanks for explanation :)
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Arch/Bim Wall Bug?

Post by paullee »

Roy_043 wrote: Sat Mar 19, 2022 5:37 pm Test file attached.
From left to right:
  1. Open trace with T-connections. This matches the examples from the OP.
  2. Closed self-crossing trace.
  3. Trace where the inner offset is self-crossing.
Thanks for the test file, would test :)
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Arch/Bim Wall Bug?

Post by paullee »

Confirmed it works as expected, brilliant @Roy_043 8-)
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Arch/Bim Wall Bug?

Post by paullee »

Roy_043 wrote: Sat Mar 19, 2022 5:37 pm Ping
Would consider submitting a PR sometime later ? :D
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: Arch/Bim Wall Bug?

Post by Roy_043 »

I'll wait until after the release of V0.20.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: Arch/Bim Wall Bug?

Post by Roy_043 »

paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Arch/Bim Wall Bug?

Post by paullee »

paullee wrote: Sun Mar 20, 2022 10:57 pm Confirmed it works as expected, brilliant @Roy_043 8-)
Thanks @Roy_043 Finally ! Long awaited PR :D

A case comes to my mind, see someone has a gap to test if it can be handled as well.
  1. There is an Wall with several segment, with a Base Sketch of several edges
  2. The wall segments / edges are continuous, and have same direction
  3. With the Override Width attributes, the different wall segment get different width
  4. The demo model get 2 wall segment, wall segment with 200mm and 400mm width
Many thanks :D

Test_ ArchWall_ Various Width_ 34.FCStd
(9.41 KiB) Downloaded 25 times
Screenshot from 2022-09-04 08-38-12.png
Screenshot from 2022-09-04 08-38-12.png (202.36 KiB) Viewed 831 times
Screenshot from 2022-09-04 08-38-23.png
Screenshot from 2022-09-04 08-38-23.png (205.47 KiB) Viewed 831 times
Screenshot from 2022-09-04 08-38-31.png
Screenshot from 2022-09-04 08-38-31.png (218.96 KiB) Viewed 831 times
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: Arch/Bim Wall Bug?

Post by Roy_043 »

Thanks for that test case. It is handled OK by the new code. The new bind() function, with per_segment set to True, creates 3 faces for this wall, one of which has an area of 0 mm2, but that does not seem to be a problem.
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: Arch/Bim Wall Bug?

Post by paullee »

Roy_043 wrote: Sun Sep 04, 2022 12:32 pm Thanks for that test case. It is handled OK by the new code. The new bind() function, with per_segment set to True, creates 3 faces for this wall, one of which has an area of 0 mm2, but that does not seem to be a problem.
Brilliant !

I have a look at the code (DraftGeomUtils.offsetWire, draftgeoutils.intersections.connect) for another case but not sure -

  1. There is an Wall with several segment, with a Base Sketch of several edges
  2. The wall segments / edges are continuous
  3. The 2nd edges in Sketch are in Reverse direction
  4. The direction of edges are honoured in the ArchWall code, to determine the position of the Wall segment taking account of the Align attribute
    (i.e. with same e.g. Left Align, but an edge is in reverse direction, it will works like Right Align)
  5. The test model file has all edges with Center Align though
I read DraftGeomUtils.offsetWire, draftgeoutils.intersections.connect, which creates the w1 and w2, before bind. It should be fine but not sure without testing with the new code. Has a gap to test this as well ?

Many thanks :D

Screenshot from 2022-09-05 01-00-31.png
Screenshot from 2022-09-05 01-00-31.png (179.31 KiB) Viewed 727 times
Screenshot from 2022-09-05 01-00-54.png
Screenshot from 2022-09-05 01-00-54.png (182.64 KiB) Viewed 727 times
Screenshot from 2022-09-05 01-01-35.png
Screenshot from 2022-09-05 01-01-35.png (181.74 KiB) Viewed 727 times
Screenshot from 2022-09-05 01-01-53.png
Screenshot from 2022-09-05 01-01-53.png (182.09 KiB) Viewed 727 times
Screenshot from 2022-09-05 01-02-46.png
Screenshot from 2022-09-05 01-02-46.png (164.65 KiB) Viewed 727 times
Post Reply