Sketcher: Only autoscale if the datum being edited is the scale defining datum (#22419)

This commit is contained in:
theo-vt
2025-07-18 10:58:30 -04:00
committed by GitHub
parent 48785dfd0e
commit b0dcce6c66
3 changed files with 19 additions and 10 deletions

View File

@@ -409,8 +409,15 @@ void EditDatumDialog::performAutoScale(double newDatum)
|| (autoScaleMode
== static_cast<int>(SketcherGui::AutoScaleMode::WhenNoScaleFeatureIsVisible)
&& !hasVisualFeature(sketch, nullptr, Gui::Application::Instance->activeDocument())))
&& sketch->getExternalGeometryCount() <= 2 && sketch->hasSingleScaleDefiningConstraint()) {
&& sketch->getExternalGeometryCount() <= 2) {
try {
// Handle the case where multiple datum constraints are present but only one is scale
// defining e.g. a bunch of angle constraints and a single length constraint
int scaleDefiningConstraint = sketch->getSingleScaleDefiningConstraint();
if (scaleDefiningConstraint != ConstrNbr) {
return;
}
double oldDatum = sketch->getDatum(ConstrNbr);
double scaleFactor = newDatum / oldDatum;
float initLabelDistance = sketch->Constraints[ConstrNbr]->LabelDistance;