Commit Graph

63 Commits

Author SHA1 Message Date
Andrej730 a0b81e333e black . 2026-01-16 17:16:25 +05:00
Ryan Schultz d79524b087 fix #7559: DirectionSense works again. 2026-01-15 14:21:39 -06:00
Andrej730 153de70a71 black . 2026-01-12 18:20:10 +05:00
Ryan Schultz 7f87f1fb89 fix #7537 - Layer thickness correct when slab is rotated and few other features...
- Add dual-rotation support for AXIS3 slabs (IFC angle + object rotation)
- Fix profile editing to display horizontal projection for tilted slabs
- Fix AXIS2 layer slicing to use local extrusion direction for walls
- Fix ChangeExtrusionDepth to refresh geometry after depth changes
- Remove rotation lock on slabs to allow free rotation
- Fix undefined variable bug in add_slab_representation.py
2026-01-11 18:43:07 -06:00
Dion Moult b68ce08811 Deprecate should_reload and is_global in switch representation as they don't do anything now.
Superseded by item editing mode, so always reload, and always global.
2025-10-06 16:57:54 +11:00
Dion Moult e662308665 Deprecate should_sync_changes_first for switching representation, since it is no longer relevant in item editing. 2025-10-06 16:19:39 +11:00
Bruno Perdigão f5220fba56 Add custom offset to walls IfcMaterialLayerSetUsage 2025-09-15 17:08:25 -03:00
Bruno Perdigão 365f4f114b Add custom offset to slab IfcMaterialLayerSetUsage 2025-09-15 17:08:25 -03:00
Andrej730 05a8824019 typing 2025-07-25 18:22:16 +05:00
Andrej730 a12bb343ca Fix RUF015 (next() instead of list comprehensions[0])
https://docs.astral.sh/ruff/rules/-iterable-allocation-for-first-element/
2025-06-16 19:55:25 +05:00
Andrej 1608677d40 ifcopenshell.api.run to use explicit kwargs instead of unpacking 2025-06-10 18:54:35 +05:00
Andrej 8b4683aef1 replace api.run with static methods 2025-06-09 18:03:19 +05:00
Dion Moult 56bfe80b3b Fix #6501. Fix #6104. Fix #6189. You can now change wall offset convention after drawing walls.
People kept on getting confused with the align tool thinking it changed
the baseline to reference line offset whereas it actually just aligned
the object bodies. This tool now does exactly that.

Also start refactoring the "DumbWall" classes into the tools so we can
test them properly.
2025-04-21 17:17:09 +10:00
Bruno Perdigão 0eb70b7fc3 See #6397 - Fix extrusion profile editing issue.
Profile transformations now correctly use the perpendicular value of the offset.
2025-04-08 20:07:46 -03:00
Andrej730 31c9f60bca Fix errors creating objects if default container is hidden #6456 2025-04-01 11:32:14 +05:00
Andrej730 f2283e5895 Fix Blender 4.4 errors starting some operators #6399 #6396
Ping @brunoperdigao just in case.
2025-03-21 12:02:53 +05:00
Andrej730 210257de8e black . 2025-03-17 11:57:26 +05:00
Bruno Perdigão 67b0ab6685 Fix #6366. Improve extrusion x_angle and direction handling.
This solution brings new questions to #5938.
Currently, we lack a reliable way to calculate the existing x_angle only based solely on the extrusion direction. For example, a 30 degree angled extrusion with positive direction has the same extrusion direction as a -150 degree angled extrusion with negative direction. The difference lies in the object's rotation.
This means that things can get messy if the user changes the object x angle somehow. We may need to explore alternative approaches.
2025-03-15 21:00:57 -03:00
Andrej730 3886c79a2c black . 2025-03-10 18:52:39 +05:00
Bruno Perdigão 01b63d87d0 Fix issue with updating slab offset with negative direction sense. 2025-03-07 15:42:09 -03:00
Andrej730 9076deddbc Consider ifc2x3 in a358cff1b7 #6255
In ifc2x3 position is not optional, so we should reset it's coordinates instead.
2025-03-07 17:12:59 +05:00
Andrej730 590288496e typing 2025-03-07 17:12:58 +05:00
Andrej730 a358cff1b7 Fix extrusion position update on OffsetFromReferenceLine changed #6255
Also fixed an issue when previously there was an offset and now it was set to 0 but slab did not reset it's position.
2025-03-06 18:43:54 +05:00
Andrej730 e1e51cbf26 black . 2025-03-05 18:53:56 +05:00
Bruno Perdigão 0eb32ed7b7 Refactor ChangeExtrusionXAngle to support obtuse x_angle for slabs.
To support obtuse x_angle a refactoring had to be made, which helped
improve the general code for slab addition. This is challenging because
there are a few features that interact with each other to create slabs,
like `depth`, `direction_sense`, `offset` and `x_angle`. In addition,
these interactions can happen in different parts of the code. This
commit addresses `ChangeExtrusionXAngle` in `model/wall.py`.
See e8e88c25fdcef55826443fe6b000aec1baa6f25a for more information.
2025-02-28 13:02:02 -03:00
Bruno Perdigão 1855ac421c Refactor slab addition to support obtuse x_angle. See #5938
To support obtuse x_angle a refactoring had to be made, which helped
improve the general code for slab addition.
This is challenging because there are a few features that interact
with each other to create slabs, like `depth`, `direction_sense`, `offset`
and `x_angle`. In addition, these interactions can happen in different parts
of the code. This refactor improves the coherence between those different parts.
Files changed:
- `api/geometry/add_slab_representation.py`
- `model/slab.py` - inside the function `change_thickness()`
File to be changed in a following commit:
- `model/wall.py` - inside the operator `ChangeExtrusionXAngle` - To-do
2025-02-28 13:02:02 -03:00
Bruno Perdigão c11060b46a Fix #6185 issue when trying to create a slab with only two points. 2025-02-20 21:13:39 -03:00
Andrej730 43cc7a0304 Replace direct access to IfcStore with tool.Ifc 2025-02-19 18:31:07 +05:00
Andrej730 67bac441ad typing 2025-02-19 18:31:06 +05:00
Dion Moult b226a79ee8 See #5888. Fix bug where polyline tools weren't part of the undo system. 2025-02-16 11:48:51 +11:00
Bruno Perdigão 06c6fa5dff Fix #6064
Slabs offset are now measured perpendicularly.
2025-02-11 10:33:29 -03:00
Andrej730 4c0a7e1ca9 typing 2025-02-10 16:47:13 +05:00
Bruno Perdigão 03267a441a Fix #6058 2025-01-29 14:01:23 -03:00
Andrej730 7b94a8d1f5 black . 2025-01-28 17:22:25 +05:00
Bruno Perdigão a4a52d6576 Make slab's editing profile to horizontal orientation when x_angle is present. 2025-01-27 15:16:22 -03:00
Bruno Perdigão 2b1a59a4f8 Refactor how offset and direction sense interact for wall and slabs. 2025-01-25 16:05:04 -03:00
Dion Moult 83368d7ee1 Fix #6014. Incorrect units used for position matrix when detecting profiles. Fix by @brunoperdigao 2025-01-25 15:20:01 +11:00
Andrej730 c12636f4cc black . 2025-01-24 18:45:12 +05:00
Dion Moult 755d178b6b Fix bug where adding / removing layers never triggered a regeneration of walls.
Continue our slow, ongoing purge of listeners.
2025-01-24 17:28:45 +11:00
Bruno Perdigão 5ec5594c69 Polyline slab tool - You can now change offset and direction
As it was implemented in Polyline wall tool, the user can press "O" to
change offset and "F" to flip the direction
2025-01-23 15:33:39 -03:00
Bruno Perdigão 4f77df99a5 Add slab preview decorator 2025-01-23 15:33:39 -03:00
Andrej730 a774a75509 black . 2025-01-22 16:00:11 +05:00
Bruno Perdigão c72f17068c Add support for direction sense and offset in slabs with x_angle 2025-01-21 10:49:29 -03:00
Bruno Perdigão 372654267c Fix issues with add/remove layer handler when using "Quick Create Type". 2025-01-21 10:49:29 -03:00
Bruno Perdigão 5cf4740f8e Add direction sense and offset support for slabs 2025-01-21 10:49:29 -03:00
Bruno Perdigão 3740b86678 Add handlers to update layer when adding and removing material layer 2025-01-21 10:49:29 -03:00
Dion Moult a63f67ad32 Fix #5841. Incorrect axis usage when generating LAYER2 elements from polyline. 2025-01-16 23:19:11 +11:00
Dion Moult aeba2885e4 Fix #5984. Incorrect axis usage when generating slabs. 2025-01-16 23:11:51 +11:00
Andrej730 f62b8073c6 black . 2024-12-25 15:20:40 +05:00
Bruno Perdigão 75483edb22 Fix limitations in AddSlabFromWalls operator.
- The operator is now unaffected by the order in which walls are joined.
- It has been updated to support split walls.
2024-12-23 18:12:29 -03:00