Compare commits

..

8 Commits

Author SHA1 Message Date
dependabot[bot] 99bc33af60 Bump actions/cache from 5.0.3 to 5.0.4
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.3 to 5.0.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/cdf6c1fa76f9f475f3d7449005a359c84ca0f306...668228422ae6a00e4ad889ee87cd7109ec5666a7)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 11:54:39 +00:00
Parag Debnath 8718bc28fe Part: add precise tooltips on Part/PartDesign General settings page (#27785)
* Part: add precise tooltips on Part/PartDesign General settings page

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com>

* added new tooltip

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Update src/Mod/Part/Gui/DlgSettingsGeneral.ui

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

---------

Co-authored-by: Parag Debnath <paragforwork@gmail.com>
Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>
Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com>
2026-03-19 04:57:30 +00:00
Chris Hennes 7886ebae10 Merge pull request #26716 from maxwxyz/spline-split
Part: Add method to split B-spline curve
2026-03-18 18:42:42 -05:00
sliptonic f22887868f Merge pull request #28431 from sliptonic/missinggrbl
CAM: Grbl post inadvertently dropped from cmake.  Fixing
2026-03-18 18:30:17 -05:00
Chris Hennes 2e7c16fccd Build: Update sign tool installation command in workflow
Cannot pin to a specific version since it is perpetually a "pre-release".
2026-03-19 00:02:41 +01:00
sliptonic b29db79928 Grbl post inadvertently dropped from cmake. Fixing 2026-03-18 16:11:51 -05:00
Chris Hennes 8a369481d6 Part: Add Python signature for B-spline curve split 2026-03-18 15:12:57 -05:00
wwmayer 603ec56151 Part: Add method to split B-spline curve
Add the method GeomBSplineCurve::split() to split a B-Spline curve into
two curves.
2026-03-18 15:12:57 -05:00
10 changed files with 86 additions and 8 deletions
+2 -2
View File
@@ -124,7 +124,7 @@ jobs:
- name: Restore Compiler Cache
id: cache-restore
if: always()
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.CCACHE_DIR }}
key: FC-${{ env.cacheKey }}-${{ github.ref }}-${{ github.run_id }}
@@ -209,7 +209,7 @@ jobs:
- name: Save Compiler Cache
id: cache-save
if: always()
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.CCACHE_DIR }}
key: FC-${{ env.cacheKey }}-${{ github.ref }}-${{ github.run_id }}
+2 -2
View File
@@ -116,7 +116,7 @@ jobs:
- name: Restore Compiler Cache
id: cache-restore
if: always()
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.CCACHE_DIR }}
key: FC-${{ steps.genCacheKey.outputs.cacheKey }}-${{ github.ref }}-${{ github.run_id }}
@@ -216,7 +216,7 @@ jobs:
- name: Save Compiler Cache
id: cache-save
if: always()
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.CCACHE_DIR }}
key: FC-${{ steps.genCacheKey.outputs.cacheKey }}-${{ github.ref }}-${{ github.run_id }}
+2 -2
View File
@@ -111,7 +111,7 @@ jobs:
- name: Restore compiler cache
id: cache-restore
if: always()
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.CCACHE_DIR }}
key: FC-${{ env.cacheKey }}-${{ github.ref }}-${{ github.run_id }}
@@ -169,7 +169,7 @@ jobs:
- name: Save Compiler Cache
id: cache-save
if: always()
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.CCACHE_DIR }}
key: FC-${{ env.cacheKey }}-${{ github.ref }}-${{ github.run_id }}
+1
View File
@@ -325,6 +325,7 @@ SET(PathPythonPostScripts_SRCS
Path/Post/scripts/gcode_pre.py
Path/Post/scripts/generic_post.py
Path/Post/scripts/generic_plasma_post.py
Path/Post/scripts/grbl_post.py
Path/Post/scripts/heidenhain_legacy_post.py
Path/Post/scripts/linuxcnc_post.py
Path/Post/scripts/linuxcnc_legacy_post.py
@@ -54,8 +54,6 @@ Defaults = Dict[str, bool]
Values = Dict[str, Any]
Visible = Dict[str, bool]
POST_TYPE = "machine"
class Grbl(PostProcessor):
"""The Grbl post processor class."""
+9
View File
@@ -195,6 +195,15 @@ class BSplineCurve(BoundedCurve):
"""
...
@constmethod
def split(self, u: float, tolerance: float = 0.0, /) -> tuple[BSplineCurve, BSplineCurve]:
"""
split(u, tolerance=0.0)
Splits this B-Spline curve at parameter u and returns the two resulting curves.
"""
...
def setKnot(self, knot: float, index: int, /) -> None:
"""
Set a knot of the B-Spline curve.
+20
View File
@@ -327,6 +327,26 @@ PyObject* BSplineCurvePy::segment(PyObject* args)
}
}
PyObject* BSplineCurvePy::split(PyObject* args) const
{
double u {};
double tolerance = 0.0;
if (!PyArg_ParseTuple(args, "d|d", &u, &tolerance)) {
return nullptr;
}
try {
auto curves = getGeomBSplineCurvePtr()->split(u, tolerance);
Py::Tuple tuple(2);
tuple.setItem(0, Py::asObject(std::get<0>(curves)->getPyObject()));
tuple.setItem(1, Py::asObject(std::get<1>(curves)->getPyObject()));
return Py::new_reference_to(tuple);
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return nullptr;
}
}
PyObject* BSplineCurvePy::setKnot(PyObject* args)
{
int Index, M = -1;
+12
View File
@@ -1711,6 +1711,18 @@ bool GeomBSplineCurve::join(const Handle(Geom_BoundedCurve) & other)
return true;
}
std::tuple<GeomBSplineCurvePtr, GeomBSplineCurvePtr> GeomBSplineCurve::split(double u, double tol) const
{
Handle(Geom_BSplineCurve) curveL
= GeomConvert::SplitBSplineCurve(myCurve, myCurve->FirstParameter(), u, tol, true);
Handle(Geom_BSplineCurve) curveR
= GeomConvert::SplitBSplineCurve(myCurve, u, myCurve->LastParameter(), tol, true);
return std::make_tuple(
std::make_shared<GeomBSplineCurve>(curveL),
std::make_shared<GeomBSplineCurve>(curveR)
);
}
void GeomBSplineCurve::interpolate(const std::vector<gp_Pnt>& p, Standard_Boolean periodic)
{
if (p.size() < 2) {
+2
View File
@@ -311,6 +311,7 @@ private:
Handle(Geom_BezierCurve) myCurve;
};
using GeomBSplineCurvePtr = std::shared_ptr<GeomBSplineCurve>;
class PartExport GeomBSplineCurve: public GeomBoundedCurve
{
TYPESYSTEM_HEADER_WITH_OVERRIDE();
@@ -377,6 +378,7 @@ public:
void setPeriodic() const;
bool isRational() const;
bool join(const Handle(Geom_BoundedCurve) &);
std::tuple<GeomBSplineCurvePtr, GeomBSplineCurvePtr> split(double u, double tol) const;
void makeC1Continuous(double, double);
std::list<Geometry*> toBiArcs(double tolerance) const;
+36
View File
@@ -22,6 +22,9 @@
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="Gui::PrefCheckBox" name="checkBooleanCheck">
<property name="toolTip">
<string>Runs a geometry validity check automatically after each Part boolean operation</string>
</property>
<property name="text">
<string>Automatically check model after boolean operation</string>
</property>
@@ -38,6 +41,9 @@
</item>
<item row="1" column="0">
<widget class="Gui::PrefCheckBox" name="checkBooleanRefine">
<property name="toolTip">
<string>Automatically refines the shape after each Part boolean operation to remove residual edges and faces</string>
</property>
<property name="text">
<string>Automatically refine model after boolean operation</string>
</property>
@@ -54,6 +60,9 @@
</item>
<item row="2" column="0">
<widget class="Gui::PrefCheckBox" name="checkSketchBaseRefine">
<property name="toolTip">
<string>Automatically refines Part Design features to remove residual edges and faces</string>
</property>
<property name="text">
<string>Automatically refine model after applying operations</string>
</property>
@@ -70,6 +79,9 @@
</item>
<item row="3" column="0">
<widget class="Gui::PrefCheckBox" name="checkAllowCompoundBody">
<property name="toolTip">
<string>Enables the multiple-solids Body option by default for newly created Part Design bodies</string>
</property>
<property name="text">
<string>Allow multiple solids in Part Design bodies by default</string>
</property>
@@ -101,6 +113,9 @@
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="Gui::PrefCheckBox" name="checkObjectNaming">
<property name="toolTip">
<string>Currently not implemented: this option does not yet modify automatically generated Part feature names</string>
</property>
<property name="text">
<string>Add name of base object</string>
</property>
@@ -131,6 +146,9 @@
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="toolTip">
<string>Specifies which profile geometry types are accepted by the Part Design Hole feature</string>
</property>
<property name="text">
<string>Default profile type for holes</string>
</property>
@@ -138,6 +156,9 @@
</item>
<item>
<widget class="Gui::PrefComboBox" name="comboDefaultProfileTypeForHole">
<property name="toolTip">
<string>Specifies which profile geometry types are accepted by the Part Design Hole feature</string>
</property>
<property name="currentIndex">
<number>1</number>
</property>
@@ -202,6 +223,9 @@
<layout class="QVBoxLayout" name="verticalLayout_31">
<item>
<widget class="Gui::PrefCheckBox" name="checkShowFinalPreview">
<property name="toolTip">
<string>Shows the final computed shape by default while editing Part Design features</string>
</property>
<property name="text">
<string>Show final result by default when editing features</string>
</property>
@@ -215,6 +239,9 @@
</item>
<item>
<widget class="Gui::PrefCheckBox" name="checkShowTransparentPreview">
<property name="toolTip">
<string>Displays a temporary transparent overlay preview while editing Part Design features</string>
</property>
<property name="text">
<string>Show transparent preview overlay by default when editing features</string>
</property>
@@ -231,6 +258,9 @@
</item>
<item>
<widget class="Gui::PrefCheckBox" name="checkShowProfilePreview">
<property name="toolTip">
<string>Highlights the sketch or profile geometry used by the feature currently being edited</string>
</property>
<property name="text">
<string>Highlight the profile used to create features</string>
</property>
@@ -272,6 +302,9 @@
</item>
<item>
<widget class="Gui::PrefCheckBox" name="enableGizmos">
<property name="toolTip">
<string>Enables draggers for interactive editing of supported feature parameters</string>
</property>
<property name="text">
<string>Show interactive draggers when editing features</string>
</property>
@@ -288,6 +321,9 @@
</item>
<item>
<widget class="Gui::PrefCheckBox" name="delayedGizmoUpdate">
<property name="toolTip">
<string>Delays recompute until dragging ends when using draggers, improving interaction speed</string>
</property>
<property name="text">
<string>Disable recompute while dragging</string>
</property>