Commit Graph

43243 Commits

Author SHA1 Message Date
David Kaufman
f156e467c9 [CAM] Fix ramp dressup performance (#21944)
* [CAM] fix biggest performance problems in ramp dressup

key items:

- finding the index of the current edge with edeges.index(edge) was very
  expensive; fixed by tracking the index while looping

- checking which edges were rapids with edge equality was also
  expensive; fixed by keeping a list of indexes of rapid input edges,
and tagging output edges with whether or not they are rapids

* [CAM] comment out Path.Log.debug in hot segments of ramping code

Even when low level logs are supposed to be suppressed, Path.Log.debug
takes take invoking traceback.extract_stack. This time adds up if logs
are invoked in frequently run loops.

* Fix CAM test

* [CAM] reimplment ramp method 1 with faster code

* [CAM] reimplement ramp methods 2, 3, and helix

* [CAM] patch to make output match original

* [CAM] ramping full performance + functionality fix
2025-09-02 10:32:03 -05:00
David Kaufman
540ce39cb1 [CAM] Add UI elements for viewing and editing tool controller parameters from within the operation edit UI (#23180)
* [CAM] extract tool controller ui elements into their own file

* [CAM] make the changes in the tool controller UI only apply when ok is clicked

* [CAM] Add tool controller edit panel to the Profile operation

* [CAM] Add copy button to in-operation tool controller editor

* [CAM] clean up changes

* [CAM] Add tool controller edit UI to all operations

Notes on changes that were not a simple copy/paste job from the changes
I made for Profile:

- Deburr: changed TC/coolant rows from 1 and 2 to 0 and 1

- Probe: didn't work at all initially due to bug in main where ShapeName
  changed to ShapeType. I added a utility for reading either a ShapeType
or a ShapeName (check for both properties, convert ShapeType to lower
case) and applied it to probe and camotics

- Drilling: moved Keep Tool Down checkbox up from row 8 to row 2 (all
  intermediate rows were missing) and added the edit checkbox in row 3
below it

- VBit, Probe (or anything else that requires a specific tool type): in
  Base.py setupToolController(), I added a check to see if the currently
selected tool is an invalid type, and if so and there is a valid tool,
then change to that one. This fixes two UI bugs. Plausibly pre-existing,
if there is one valid tool and an invalid tool is selected, it's
impossible to switch to the valid one because you can't generate a combo
box change event for the new tool. Definitely new: if an invalid tool is
selected and there are no valid tools, the combo box will be empty but
the new tool controller edit utility will let you edit the current TC
anyway.

- Thread Milling: replaced the Tool Controller GroupBox with the
  standard QFrame layout, and added the checkbox. Note that this
operation doesn't have a UI element for coolant -- likely a bug, but I
didn't look into it

- Surface: Changed from form layout to grid layout. Deleted an old
  SurfaceEdit.ui file -- it was replaced with PageOpSurfaceEdit.ui in
2017 but not deleted (commit 8637831132)

- Waterline: Changed from form layout to grid layout

* [CAM] Bug fixes

setupUi() wasn't called on the tool controller editor, preventing
changes in its UI from being written back to the object immediately.
This caused weird behavior where if you edited a field twice it would
reset the second time it was focused

Added a hook to automatically update the TC combo box when the TC name
(or anything else about it, since that was easier) changes

* Fix usage of QSignalBlockers

* [CAM] Block scroll events on tool number and spindle direction when not
focused

Specifically, if you mouse over either of these UI elements and use the
scroll wheel, it used to focus the element and change its value. This
commit makes it do neither of those things, for these specific elements,
as a measure against users accidentally changing these values.

* disable tcNumber edit field in operations panel

* Add "New tool controller" option to TC combo box

When selected, it opens (toggles, technically) the tool bit dock and
returns to the previous selection. Adding a new tool controller using
the dock (already, before this commit) automatically switches the
operation's tool controller to the new one

* Add "Copy" option to tool controller combo box

* Copy TC function only in combo box, no button

* [CAM] update in-operation "new tool controller" function to use a dialog

* [CAM] make the tool selector always a dialog and never a dock

* remove spacer from ToolControllerEdit.ui to fix exces white space

* [CAM] change tool dialog default sizing/spacing

* [CAM] fix bug where copying tool controller doesn't copy all values
2025-09-02 10:19:33 -05:00
Benjamin Nauck
3e73005653 Merge pull request #23519 from kadet1090/show-axis-cross-on-top
Gui: Show Axis Cross on top
2025-09-02 15:12:39 +02:00
PaddleStroke
a9065a33c5 Syntax error 2025-09-02 14:40:37 +02:00
luzpaz
e1dcb21165 AddonManager: ignore everything but dirs in getVerboseAddOnsInfo
Before this PR addon manager was displaying manifest.json files along with backup files. Now those are ignored.
Fixes #23545
2025-09-01 22:32:23 -05:00
Kacper Donat
6c49ff9b5b Merge pull request #23549 from captain0xff/gizmo
PartDesign: improve the interactive draggers
2025-09-02 00:25:55 +02:00
PaddleStroke
3ce9452771 Assembly: Solver message taskbox. UI setup, App not implemented yet. (#23420)
* Assembly: Solver message taskbox. UI setup, App not implemented yet.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update TaskAssemblyMessages.cpp

* Update ViewProviderAssembly.cpp

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-01 21:29:06 +00:00
Kacper Donat
821e79b58a Merge pull request #23552 from pieterhijma/delete-key-prop
Gui: Add a binding for the Delete key to remove a property
2025-09-01 23:18:15 +02:00
Kacper Donat
682ba64c46 Gui: Show Axis Cross on top 2025-09-01 23:07:53 +02:00
Kacper Donat
45103d866d Gui: SoFCPlacementIndicatorKit add missing headers 2025-09-01 23:07:32 +02:00
Benjamin Nauck
e5ed0b3cb9 Merge pull request #23399 from wwmayer/quick_measure
Measure: Fix quick measure command
2025-09-01 21:11:26 +02:00
captain0xff
afdeacee05 PartDesign: set the linear dragger increment based on the zoom level 2025-09-02 00:32:25 +05:30
Pieter Hijma
f552808811 Gui: Add Property View delete key binding
This commit adds a binding for the delete key to delete properties from
property containers.
2025-09-01 20:53:32 +02:00
captain0xff
37100c6179 PartDesign: fix draggers for chamfer with two dimensions 2025-09-01 23:20:18 +05:30
jffmichi
a353ef9307 CAM: use dict constructor for Command in VCarve 2025-09-01 11:24:32 -05:00
Chris Hennes
423ea14ff2 Core: Record module failure information during startup 2025-09-01 18:10:04 +02:00
drwho495
c01b12044a PartDesign: Fix revolution's Toponaming support (#23342)
* PartDesign: Fix revolution's Toponming support

* fix test
2025-09-01 10:56:43 -05:00
tetektoza
7c4131c4ef Sketcher: Disable autoscale if new constraint value is below precision
As the title says - we can get into a scenario where user can specify
constraint equal to 0.0, or similar small value and the scale factor
will become 0 as well, resulting in all geometry trying to be rescaled
to degenerate geometry.

So this patch filters those values out, and bails out from auto-scaling
leaving only solver to handle this value.
2025-09-01 10:55:12 -05:00
Edgar Robles
5287e3f4a6 BIM: Add T slot profile option (#23334)
* feat(profiles): Add square metric t-slot profiles

Request also allows to use profiles in quetzal workbench

* fix(ProfileTaskPanel): fix class name on proxy & sufix

* refactor(ArchProfile, Arch): Modify T-s to TSLOT

and also fix hole_diameter not assigned

* fix(ArchProfile,profiles): Change t slot profile class Name
2025-09-01 17:54:20 +02:00
Chris Hennes
d7e2c42f45 Update clang-tidy checks to remove avoid-do-while
While the advice is good, the overwhelming majority of "do-while" warnings that come up in our codebase are macros using a standard pattern using a do-while loop to encapsulate the macro's work.
2025-09-01 17:51:51 +02:00
Benjamin Nauck
14f9e85600 Merge pull request #23502 from maxwxyz/issue-20633
Part: Improve TopoShape::findPlane
2025-09-01 17:47:32 +02:00
Chris Hennes
e706122bbb Update translations 2025-08-30 2025-09-01 17:44:54 +02:00
Kacper Donat
767c3f1f67 PartDesign: Highlight profile for profile based features
This adds highlight for sketches etc that are used to create certain
featuires.
2025-09-01 10:44:29 -05:00
Roy-043
23691409e0 BIM: fix self.Type regression for Wall, Stairs and Structure (#23476)
* BIM: fix self.Type regression for Wall

* BIM: fix self.Type regression for Stairs

* BIM: fix self.Type regression for Structure
2025-09-01 17:44:10 +02:00
Adrian Insaurralde Avalos
ff91ce148f Mesh: fix #18801 - simply call gmsh if gmsh executable path is empty 2025-09-01 10:43:00 -05:00
PaddleStroke
f51e1eeb22 PartDesign: Enable selecting a sketch as base plane of another sketch (#23428)
* PartDesign: Enable selecting a sketch as base plane of another sketch

* to squash

* Part: Attacher: enable attaching to empty objects such as empty Sketch or Body.

* Update SketchWorkflow.cpp
2025-09-01 17:39:51 +02:00
David Balch
7d38cc45ec BIM: Remove wrong IfcType for Column/Beam
Removes check on function parameters for height & length (first
introduced in commit 5217b24), relying on values assigned in "obj".

If those params are present, they're assigned to "obj" anyway, so
the check is redundant.

Fixes #22585
2025-09-01 17:38:27 +02:00
FEA-eng
0a392c2a3f FEM: Add support for CalculiX truss elements (#23224)
* FEM: Update element_geometry1D.py

* FEM: Update write_femelement_geometry.py

* FEM: Update write_mesh.py

* FEM: Update solver.py

* FEM: Update solver_calculix.py

* FEM: Update element_geometry1D.py
2025-09-01 10:37:44 -05:00
FEA-eng
a5751e5a3b FEM: Update DlgSettingsFemZ88.ui 2025-09-01 17:18:57 +02:00
Pieter Hijma
14087606f6 Gui: Fix Property View copy bug
The context menu of the property view shows a "Copy" action for
properties with which the value of the property can be copied to the
clipboard.  When multiple properties are selected, this menu item
appears multiple times and in that case it copies the name of one of the
properties.  This commit fixes this.
2025-09-01 17:06:40 +02:00
Benjamin Nauck
baef697977 Merge pull request #23101 from 3x380V/td_fixes
TechDraw: random fixes
2025-09-01 15:58:01 +02:00
Ladislav Michl
7f2ddc5ac1 TD: remove unused clearLineSets()
d2ce7f8145 ("TD: Remove calls to now-empty clearLineSets() method")
removed last calls to clearLineSets(), so remove it entirely.
2025-09-01 14:12:58 +02:00
wmayer
2006480ae8 TD: Fix compiler warnings 2025-09-01 14:11:52 +02:00
wmayer
eb2c6bf73f TD: Fix loading project files
With PR 19941 there is a regression where parts of the document
won't be restored. This is caused by overriding the virtual method
handleChangedPropertyType() but not calling the method of the base class.

While searching for a fix another problem showed up where (due to the
incomplete loading) exceptions are thrown but not handled within TD.
Therefore the method recompute() is overridden in DrawView to also handle
OCC exceptions.
2025-09-01 14:11:52 +02:00
wmayer
cd31d0e698 TD: Fix crash on selecting 3D edge for dimension
Unlike in the bug description of issue 19654 the user doesn't have
to preselect an edge in the 3D view but first start the dimension
command and then select an edge.

This commit adds some security checks to TechDrawHandler::quit(),
TechDrawHandler::getPage() and TDHandlerDimension::onSelectionChanged()
to be on the safe side that no null pointers are dereferenced.

But the ultimative fix for this whole problem is to change
activateHandler() and immediately delete the passed TechDrawHandler if
it fails to find the appropriate QGVPage. This is needed as otherwise
the handler behaves like a ghost object that affects the selection
mechanism and disallows to select anything in the 3D view or the tree
view.

Fixes issue 19654
2025-09-01 14:11:51 +02:00
PaddleStroke
98ad0e9fd8 PartDesign: TaskExtrudeParameters improve ui by letting line visible 2025-09-01 08:40:29 +02:00
matthiasdanner
6d5800c862 Sketcher: Fix Assertion Crash when selecting a Constraint in a group (#23491)
* Sketcher: Fix Assertion Crash when selecting a Constraint in a group

* Update src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp

---------

Co-authored-by: Matthias Danner <28687794+matthiasdanner@users.noreply.github.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-09-01 06:28:13 +00:00
wandererfan
f5db0c6589 [TD]fix ISOLineSpacing preference not applied 2025-09-01 00:26:22 -05:00
FEA-eng
2244a16790 FEM: Add defined temperature field with CalculiX (*TEMPERATURE) (#23277)
* FEM: add write_constraint_finaltemperature.py

* FEM: Update CMakeLists.txt

* FEM: Update membertools.py

* FEM: Update FemConstraintInitialTemperature.cpp

* FEM: Update FemConstraintInitialTemperature.h

* FEM: Update write_constraint_initialtemperature.py

* FEM: Update write_femelement_material.py

* FEM: Update writer.py

* FEM: Update write_constraint_finaltemperature.py

* FEM: Update write_femelement_material.py

* FEM: Update write_femelement_material.py

* FEM: Update box_static.inp

* FEM: Update ccx_cantilever_beam_circle.inp

* FEM: Update ccx_cantilever_beam_pipe.inp

* FEM: Update ccx_cantilever_beam_rect.inp

* FEM: Update ccx_cantilever_ele_hexa20.inp

* FEM: Update ccx_cantilever_ele_quad4.inp

* FEM: Update ccx_cantilever_ele_quad8.inp

* FEM: Update ccx_cantilever_ele_seg2.inp

* FEM: Update ccx_cantilever_ele_seg3.inp

* FEM: Update ccx_cantilever_ele_tria3.inp

* FEM: Update ccx_cantilever_ele_tria6.inp

* FEM: Update ccx_cantilever_faceload.inp

* FEM: Update ccx_cantilever_nodeload.inp

* FEM: Update ccx_cantilever_prescribeddisplacement.inp

* FEM: Update constraint_contact_shell_shell.inp

* FEM: Update constraint_sectionprint.inp

* FEM: Update constraint_selfweight_cantilever.inp

* FEM: Update constraint_tie.inp

* FEM: Update constraint_transform_beam_hinged.inp

* FEM: Update constraint_transform_torque.inp

* FEM: Update material_multiple_bendingbeam_fiveboxes.inp

* FEM: Update material_multiple_bendingbeam_fivefaces.inp

* FEM: Update material_multiple_tensionrod_twoboxes.inp

* FEM: Update material_nonlinear.inp

* FEM: Update square_pipe_end_twisted_edgeforces.inp

* FEM: Update square_pipe_end_twisted_nodeforces.inp

* FEM: Update write_constraint_finaltemperature.py

* FEM: Update write_femelement_material.py

* FEM: Update write_constraint_finaltemperature.py

* FEM: Update FemConstraintInitialTemperature.cpp

* FEM: Update FemConstraintInitialTemperature.h
2025-08-31 23:28:56 -05:00
Roy-043
ad0606c69b Mesh: Gmsh dropdown to sentence case 2025-08-31 23:26:18 -05:00
Chris Hennes
8221ab77d7 Merge pull request #23503 from maxwxyz/issue-22123
Fix STEP import with bad string behavior
2025-08-31 23:23:25 -05:00
luzpaz
8f53b5164a BIM: fix trailing whitespace and refine source comment grammar (#23496)
* BIM: fix trailing whitespace and refine source comment grammar

* BIM: remove unnecessary newline
2025-08-31 23:22:39 -05:00
luzpaz
e30408eec7 Part: remove trailing whitespace 2025-08-31 23:21:13 -05:00
PaddleStroke
970f771127 Core: Datums: Make getDirection and getBasePoint aware of LCS position 2025-08-31 22:54:03 -05:00
Chris Hennes
2f9f8eda18 Merge pull request #22998 from Rexbas/prevent-showing-context-menu
Navigation: Prevent showing context menu after panning or rubber band selection
2025-08-31 22:41:05 -05:00
Kacper Donat
5669db8d8b Revert "Gui: Mark mouse move action handled to skip digging nodes"
This reverts commit ccb417e00d.
2025-09-01 05:33:02 +02:00
Mathieu GRENET
692101bd1b Assembly: Fix inconsistent positioning in distance joint validation
When validating distance joints, parts would move from preview position to
a different valid solution. This was caused by preSolve() being called
inconsistently - applied during offset changes for all joint types, but
distance joints are not in JointUsingPreSolve list.

Fix: Only call preSolve() for joint types that are designed to use it,
matching the logic used elsewhere in the codebase.
2025-08-31 21:31:45 -05:00
wandererfan
a0305388c3 [TD]allow finding child view outside clip rectangle 2025-08-31 20:56:14 -05:00
tetektoza
66e099aedb Merge pull request #23192 from tetektoza/fix/22253_fix_losing_expression_during_sketcher_tools_usage
Sketcher: Copy expressions when rotating/moving geometry
2025-08-31 20:12:22 -05:00
Chris Hennes
b898703841 Merge pull request #23310 from Roy-043/Draft-more-logical-placement-for-3-point-arcs
Draft: more logical placement for 3 point arcs
2025-08-31 18:44:02 -05:00