diff --git a/common/bitmap_info.cpp b/common/bitmap_info.cpp index 0a5589b528..4bc79ec4cc 100644 --- a/common/bitmap_info.cpp +++ b/common/bitmap_info.cpp @@ -5036,6 +5036,7 @@ void BuildBitmapInfo( std::unordered_map>& aBi aBitmapInfoCache[BITMAPS::constraint_basic_clearance].emplace_back( BITMAPS::constraint_basic_clearance, wxT( "constraint_basic_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_board_outline_clearance].emplace_back( BITMAPS::constraint_board_outline_clearance, wxT( "constraint_board_outline_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_clearance].emplace_back( BITMAPS::constraint_clearance, wxT( "constraint_clearance.png" ), -1, wxT( "light" ) ); + aBitmapInfoCache[BITMAPS::constraint_courtyard_clearance].emplace_back( BITMAPS::constraint_courtyard_clearance, wxT( "constraint_courtyard_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_copper_to_edge_clearance].emplace_back( BITMAPS::constraint_copper_to_edge_clearance, wxT( "constraint_copper_to_edge_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_copper_to_hole_clearance].emplace_back( BITMAPS::constraint_copper_to_hole_clearance, wxT( "constraint_copper_to_hole_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_creepage_distance].emplace_back( BITMAPS::constraint_creepage_distance, wxT( "constraint_creepage_distance.png" ), -1, wxT( "light" ) ); @@ -5052,9 +5053,7 @@ void BuildBitmapInfo( std::unordered_map>& aBi aBitmapInfoCache[BITMAPS::constraint_minimum_clearance].emplace_back( BITMAPS::constraint_minimum_clearance, wxT( "constraint_minimum_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_connection_width].emplace_back( BITMAPS::constraint_minimum_connection_width, wxT( "constraint_minimum_connection_width.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_silk_to_silk_clearance].emplace_back( BITMAPS::constraint_silk_to_silk_clearance, wxT( "constraint_silk_to_silk_clearance.png" ), -1, wxT( "light" ) ); - aBitmapInfoCache[BITMAPS::constraint_minimum_soldermask_sliver].emplace_back( - BITMAPS::constraint_minimum_soldermask_sliver, wxT( "constraint_minimum_soldermask_sliver.png" ), -1, - wxT( "light" ) ); + aBitmapInfoCache[BITMAPS::constraint_minimum_soldermask_sliver].emplace_back( BITMAPS::constraint_minimum_soldermask_sliver, wxT( "constraint_minimum_soldermask_sliver.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_text_height_and_thickness].emplace_back( BITMAPS::constraint_minimum_text_height_and_thickness, wxT( "constraint_minimum_text_height_and_thickness.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_thermal_relief_spoke_count].emplace_back( BITMAPS::constraint_minimum_thermal_relief_spoke_count, wxT( "constraint_minimum_thermal_relief_spoke_count.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_drill_size].emplace_back( BITMAPS::constraint_minimum_drill_size, wxT( "constraint_minimum_drill_size.png" ), -1, wxT( "light" ) ); @@ -5066,9 +5065,7 @@ void BuildBitmapInfo( std::unordered_map>& aBi aBitmapInfoCache[BITMAPS::constraint_silk_clearance].emplace_back( BITMAPS::constraint_silk_clearance, wxT( "constraint_silk_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_silk_to_soldermask_clearance].emplace_back( BITMAPS::constraint_silk_to_soldermask_clearance, wxT( "constraint_silk_to_soldermask_clearance.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_soldermask_expansion].emplace_back( BITMAPS::constraint_soldermask_expansion, wxT( "constraint_soldermask_expansion.png" ), -1, wxT( "light" ) ); - aBitmapInfoCache[BITMAPS::constraint_solderpaste_expansion].emplace_back( - BITMAPS::constraint_solderpaste_expansion, wxT( "constraint_solderpaste_expansion.png" ), -1, - wxT( "light" ) ); + aBitmapInfoCache[BITMAPS::constraint_solderpaste_expansion].emplace_back( BITMAPS::constraint_solderpaste_expansion, wxT( "constraint_solderpaste_expansion.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_via_style].emplace_back( BITMAPS::constraint_via_style, wxT( "constraint_via_style.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_vias_under_smd].emplace_back( BITMAPS::constraint_vias_under_smd, wxT( "constraint_vias_under_smd.png" ), -1, wxT( "light" ) ); aBitmapInfoCache[BITMAPS::constraint_absolute_length_2].emplace_back( BITMAPS::constraint_absolute_length_2, wxT( "constraint_absolute_length_2_dark.png" ), -1, wxT( "dark" ) ); @@ -5076,6 +5073,7 @@ void BuildBitmapInfo( std::unordered_map>& aBi aBitmapInfoCache[BITMAPS::constraint_basic_clearance].emplace_back( BITMAPS::constraint_basic_clearance, wxT( "constraint_basic_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_board_outline_clearance].emplace_back( BITMAPS::constraint_board_outline_clearance, wxT( "constraint_board_outline_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_clearance].emplace_back( BITMAPS::constraint_clearance, wxT( "constraint_clearance_dark.png" ), -1, wxT( "dark" ) ); + aBitmapInfoCache[BITMAPS::constraint_courtyard_clearance].emplace_back( BITMAPS::constraint_courtyard_clearance, wxT( "constraint_courtyard_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_copper_to_edge_clearance].emplace_back( BITMAPS::constraint_copper_to_edge_clearance, wxT( "constraint_copper_to_edge_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_copper_to_hole_clearance].emplace_back( BITMAPS::constraint_copper_to_hole_clearance, wxT( "constraint_copper_to_hole_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_creepage_distance].emplace_back( BITMAPS::constraint_creepage_distance, wxT( "constraint_creepage_distance_dark.png" ), -1, wxT( "dark" ) ); @@ -5092,9 +5090,7 @@ void BuildBitmapInfo( std::unordered_map>& aBi aBitmapInfoCache[BITMAPS::constraint_minimum_clearance].emplace_back( BITMAPS::constraint_minimum_clearance, wxT( "constraint_minimum_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_connection_width].emplace_back( BITMAPS::constraint_minimum_connection_width, wxT( "constraint_minimum_connection_width_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_silk_to_silk_clearance].emplace_back( BITMAPS::constraint_silk_to_silk_clearance, wxT( "constraint_silk_to_silk_clearance_dark.png" ), -1, wxT( "dark" ) ); - aBitmapInfoCache[BITMAPS::constraint_minimum_soldermask_sliver].emplace_back( - BITMAPS::constraint_minimum_soldermask_sliver, wxT( "constraint_minimum_soldermask_sliver_dark.png" ), -1, - wxT( "dark" ) ); + aBitmapInfoCache[BITMAPS::constraint_minimum_soldermask_sliver].emplace_back( BITMAPS::constraint_minimum_soldermask_sliver, wxT( "constraint_minimum_soldermask_sliver_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_text_height_and_thickness].emplace_back( BITMAPS::constraint_minimum_text_height_and_thickness, wxT( "constraint_minimum_text_height_and_thickness_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_thermal_relief_spoke_count].emplace_back( BITMAPS::constraint_minimum_thermal_relief_spoke_count, wxT( "constraint_minimum_thermal_relief_spoke_count_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_minimum_drill_size].emplace_back( BITMAPS::constraint_minimum_drill_size, wxT( "constraint_minimum_drill_size_dark.png" ), -1, wxT( "dark" ) ); @@ -5106,9 +5102,7 @@ void BuildBitmapInfo( std::unordered_map>& aBi aBitmapInfoCache[BITMAPS::constraint_silk_clearance].emplace_back( BITMAPS::constraint_silk_clearance, wxT( "constraint_silk_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_silk_to_soldermask_clearance].emplace_back( BITMAPS::constraint_silk_to_soldermask_clearance, wxT( "constraint_silk_to_soldermask_clearance_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_soldermask_expansion].emplace_back( BITMAPS::constraint_soldermask_expansion, wxT( "constraint_soldermask_expansion_dark.png" ), -1, wxT( "dark" ) ); - aBitmapInfoCache[BITMAPS::constraint_solderpaste_expansion].emplace_back( - BITMAPS::constraint_solderpaste_expansion, wxT( "constraint_solderpaste_expansion_dark.png" ), -1, - wxT( "dark" ) ); + aBitmapInfoCache[BITMAPS::constraint_solderpaste_expansion].emplace_back( BITMAPS::constraint_solderpaste_expansion, wxT( "constraint_solderpaste_expansion_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_via_style].emplace_back( BITMAPS::constraint_via_style, wxT( "constraint_via_style_dark.png" ), -1, wxT( "dark" ) ); aBitmapInfoCache[BITMAPS::constraint_vias_under_smd].emplace_back( BITMAPS::constraint_vias_under_smd, wxT( "constraint_vias_under_smd_dark.png" ), -1, wxT( "dark" ) ); diff --git a/include/bitmaps/bitmaps_list.h b/include/bitmaps/bitmaps_list.h index afb5ee7f33..275a1ae8ec 100644 --- a/include/bitmaps/bitmaps_list.h +++ b/include/bitmaps/bitmaps_list.h @@ -700,6 +700,7 @@ enum class BITMAPS : unsigned int constraint_creepage_distance, constraint_minimum_connection_width, constraint_silk_to_silk_clearance, + constraint_courtyard_clearance, constraint_minimum_track_width, constraint_copper_to_hole_clearance, constraint_minimum_thermal_relief_spoke_count, diff --git a/pcbnew/drc/rule_editor/drc_re_numeric_constraint_types.h b/pcbnew/drc/rule_editor/drc_re_numeric_constraint_types.h index 1097aac824..484288ae47 100644 --- a/pcbnew/drc/rule_editor/drc_re_numeric_constraint_types.h +++ b/pcbnew/drc/rule_editor/drc_re_numeric_constraint_types.h @@ -55,10 +55,10 @@ class DRC_RE_COURTYARD_CLEARANCE_CONSTRAINT_DATA : public DRC_RE_NUMERIC_INPUT_C { public: using DRC_RE_NUMERIC_INPUT_CONSTRAINT_DATA::DRC_RE_NUMERIC_INPUT_CONSTRAINT_DATA; - BITMAPS GetOverlayBitmap() const override { return BITMAPS::constraint_clearance; } + BITMAPS GetOverlayBitmap() const override { return BITMAPS::constraint_courtyard_clearance; } std::vector GetFieldPositions() const override { - return { { 160 + DRC_RE_OVERLAY_XO, 200 + DRC_RE_OVERLAY_XO, 202 + DRC_RE_OVERLAY_YO, 1, wxS( "mm" ), LABEL_POSITION::RIGHT } }; + return { { 260 + DRC_RE_OVERLAY_XO, 300 + DRC_RE_OVERLAY_XO, 117 + DRC_RE_OVERLAY_YO, 1, wxS( "mm" ), LABEL_POSITION::RIGHT } }; } }; diff --git a/resources/bitmaps_png/CMakeLists.txt b/resources/bitmaps_png/CMakeLists.txt index fe7a8e61c4..8bd74920a9 100644 --- a/resources/bitmaps_png/CMakeLists.txt +++ b/resources/bitmaps_png/CMakeLists.txt @@ -724,6 +724,7 @@ set( BMAPS_CONSTRAINTS basic-clearance board-outline-clearance clearance + courtyard-clearance copper_to_edge_clearance copper-to-hole-clearance creepage-distance diff --git a/resources/bitmaps_png/generate_themed_constraints.py b/resources/bitmaps_png/generate_themed_constraints.py index 4e384f41ac..36cdd35cb5 100644 --- a/resources/bitmaps_png/generate_themed_constraints.py +++ b/resources/bitmaps_png/generate_themed_constraints.py @@ -60,6 +60,7 @@ CONSTRAINT_FILES = { "matched-length-diff-pair-v2.svg": "matched-length-diff-pair-v2.svg", 'routing-diff-pair.svg': 'routing-diff-pair.svg', 'routing-width.svg': 'routing-width.svg', + 'courtyard-clearance.svg': 'courtyard-clearance.svg', } diff --git a/resources/bitmaps_png/png/constraint_courtyard_clearance.png b/resources/bitmaps_png/png/constraint_courtyard_clearance.png new file mode 100644 index 0000000000..74e8abaff7 Binary files /dev/null and b/resources/bitmaps_png/png/constraint_courtyard_clearance.png differ diff --git a/resources/bitmaps_png/png/constraint_courtyard_clearance_dark.png b/resources/bitmaps_png/png/constraint_courtyard_clearance_dark.png new file mode 100644 index 0000000000..8c27d08e23 Binary files /dev/null and b/resources/bitmaps_png/png/constraint_courtyard_clearance_dark.png differ diff --git a/resources/bitmaps_png/sources/constraints/courtyard-clearance.svg b/resources/bitmaps_png/sources/constraints/courtyard-clearance.svg new file mode 100644 index 0000000000..e782ad8478 --- /dev/null +++ b/resources/bitmaps_png/sources/constraints/courtyard-clearance.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + SVG Image created as SVG_imageProject-B_Adhesive.svg date 2026-03-19T12:16:19 + Image generated by PCBNEW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SVG Image created as SVG_imageProject-B_Adhesive.svg date 2026-03-19T12:16:19 + + + + diff --git a/resources/bitmaps_png/sources/dark/constraints/courtyard-clearance.svg b/resources/bitmaps_png/sources/dark/constraints/courtyard-clearance.svg new file mode 100644 index 0000000000..47411cc7d7 --- /dev/null +++ b/resources/bitmaps_png/sources/dark/constraints/courtyard-clearance.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + SVG Image created as SVG_imageProject-B_Adhesive.svg date 2026-03-19T12:16:19 + Image generated by PCBNEW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SVG Image created as SVG_imageProject-B_Adhesive.svg date 2026-03-19T12:16:19 + + + + diff --git a/resources/bitmaps_png/sources/light/constraints/courtyard-clearance.svg b/resources/bitmaps_png/sources/light/constraints/courtyard-clearance.svg new file mode 100644 index 0000000000..e782ad8478 --- /dev/null +++ b/resources/bitmaps_png/sources/light/constraints/courtyard-clearance.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + SVG Image created as SVG_imageProject-B_Adhesive.svg date 2026-03-19T12:16:19 + Image generated by PCBNEW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SVG Image created as SVG_imageProject-B_Adhesive.svg date 2026-03-19T12:16:19 + + + +