|
|
|
@ -16,8 +16,8 @@ msgstr "" |
|
|
|
"MIME-Version: 1.0\n" |
|
|
|
"Content-Type: text/plain; charset=UTF-8\n" |
|
|
|
"Content-Transfer-Encoding: 8bit\n" |
|
|
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " |
|
|
|
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
|
|
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" |
|
|
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
|
|
|
"X-Generator: Weblate 4.16-dev\n" |
|
|
|
|
|
|
|
#: 3d-viewer/3d_cache/3d_plugin_manager.cpp:58 |
|
|
|
@ -7953,12 +7953,12 @@ msgid "" |
|
|
|
"python <script file name> <input filename> <output filename>\n" |
|
|
|
"```\n" |
|
|
|
"\n" |
|
|
|
"On Windows, if the desired generator script for a CSV BOM is `C:" |
|
|
|
"\\Users\\username\\kicad\\my_python_script.py`, the command line would be:\n" |
|
|
|
"On Windows, if the desired generator script for a CSV BOM is `C:\\Users" |
|
|
|
"\\username\\kicad\\my_python_script.py`, the command line would be:\n" |
|
|
|
"\n" |
|
|
|
"```\n" |
|
|
|
"python.exe C:\\Users\\username\\kicad\\my_python_script.py \"%I\" \"%O." |
|
|
|
"csv\"\n" |
|
|
|
"python.exe C:\\Users\\username\\kicad\\my_python_script.py \"%I\" \"%O.csv" |
|
|
|
"\"\n" |
|
|
|
"```\n" |
|
|
|
"\n" |
|
|
|
"On Linux, if the desired generator script for a CSV BOM is `/home/username/" |
|
|
|
@ -8032,12 +8032,12 @@ msgstr "" |
|
|
|
"python <script file name> <input filename> <output filename>\n" |
|
|
|
"```\n" |
|
|
|
"\n" |
|
|
|
"У Windows, якщо потрібний сценарій генератора для CSV BOM є `C:" |
|
|
|
"\\Users\\username\\kicad\\my_python_script.py`, командний рядок буде:\n" |
|
|
|
"У Windows, якщо потрібний сценарій генератора для CSV BOM є `C:\\Users" |
|
|
|
"\\username\\kicad\\my_python_script.py`, командний рядок буде:\n" |
|
|
|
"\n" |
|
|
|
"```\n" |
|
|
|
"python.exe C:\\Users\\username\\kicad\\my_python_script.py \"%I\" \"%O." |
|
|
|
"csv\"\n" |
|
|
|
"python.exe C:\\Users\\username\\kicad\\my_python_script.py \"%I\" \"%O.csv" |
|
|
|
"\"\n" |
|
|
|
"```\n" |
|
|
|
"\n" |
|
|
|
"У Linux, , якщо потрібний сценарій генератора для CSV BOM є `/home/username/" |
|
|
|
@ -16282,8 +16282,8 @@ msgstr "" |
|
|
|
#: eeschema/symbol_checker.cpp:146 |
|
|
|
#, c-format |
|
|
|
msgid "" |
|
|
|
"<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b> conflicts with pin " |
|
|
|
"%s%s at location <b>(%s, %s)</b>." |
|
|
|
"<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b> conflicts with pin %s" |
|
|
|
"%s at location <b>(%s, %s)</b>." |
|
|
|
msgstr "" |
|
|
|
"<b>Дублікат виводу %s</b> %s на позиції <b>(%s, %s)</b> що конфліктує з " |
|
|
|
"виводом %s%s на позиції <b>(%s, %s)</b>." |
|
|
|
@ -16291,8 +16291,8 @@ msgstr "" |
|
|
|
#: eeschema/symbol_checker.cpp:159 |
|
|
|
#, c-format |
|
|
|
msgid "" |
|
|
|
"<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b> conflicts with pin " |
|
|
|
"%s%s at location <b>(%s, %s)</b> in units %s and %s." |
|
|
|
"<b>Duplicate pin %s</b> %s at location <b>(%s, %s)</b> conflicts with pin %s" |
|
|
|
"%s at location <b>(%s, %s)</b> in units %s and %s." |
|
|
|
msgstr "" |
|
|
|
"<b>Дублікат виводу %s</b> %s на позиції <b>(%s, %s)</b> що конфліктує з " |
|
|
|
"виводом %s%s а позиції <b>(%s, %s)</b> в одиницях %s і %s." |
|
|
|
@ -19936,9 +19936,8 @@ msgid "Schematic file does not exist or is not accessible\n" |
|
|
|
msgstr "Файл схеми не існує або недоступний\n" |
|
|
|
|
|
|
|
#: kicad/cli/command_export_sch_pdf.cpp:38 |
|
|
|
#, fuzzy |
|
|
|
msgid "Color theme to use (will default to schematic settings)" |
|
|
|
msgstr "Використати кольорову тему (по замовчуванню pcbnew налаштування)" |
|
|
|
msgstr "Використати кольорову тему (типову для налаштувань схеми)" |
|
|
|
|
|
|
|
#: kicad/cli/command_export_sch_pdf.cpp:51 |
|
|
|
#: kicad/cli/command_export_sch_svg.cpp:51 |
|
|
|
@ -31716,13 +31715,13 @@ msgid "" |
|
|
|
"\n" |
|
|
|
" (rule \"Distance between Vias of Different Nets\"\n" |
|
|
|
" (constraint hole_to_hole (min 0.254mm))\n" |
|
|
|
" (condition \"A.Type == 'Via' && B.Type == 'Via' && A.Net != B." |
|
|
|
"Net\"))\n" |
|
|
|
" (condition \"A.Type == 'Via' && B.Type == 'Via' && A.Net != B.Net" |
|
|
|
"\"))\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Clearance between Pads of Different Nets\"\n" |
|
|
|
" (constraint clearance (min 3.0mm))\n" |
|
|
|
" (condition \"A.Type == 'Pad' && B.Type == 'Pad' && A.Net != B." |
|
|
|
"Net\"))\n" |
|
|
|
" (condition \"A.Type == 'Pad' && B.Type == 'Pad' && A.Net != B.Net" |
|
|
|
"\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Via Hole to Track Clearance\"\n" |
|
|
|
@ -41164,6 +41163,674 @@ msgstr "KiCad схема" |
|
|
|
msgid "KiCad Printed Circuit Board" |
|
|
|
msgstr "Друкована плата KiCad" |
|
|
|
|
|
|
|
#: eeschema/sim/kibis/ibis_parser.cpp:613 |
|
|
|
msgid "Checking Header... " |
|
|
|
msgstr "Перевірка заголовку... " |
|
|
|
|
|
|
|
#: pcbnew/dialogs/panel_setup_rules_help_md.h:2 |
|
|
|
msgid "" |
|
|
|
"### Top-level Clauses\n" |
|
|
|
"\n" |
|
|
|
" (version <number>)\n" |
|
|
|
"\n" |
|
|
|
" (rule <rule_name> <rule_clause> ...)\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Rule Clauses\n" |
|
|
|
"\n" |
|
|
|
" (constraint <constraint_type> ...)\n" |
|
|
|
"\n" |
|
|
|
" (condition \"<expression>\")\n" |
|
|
|
"\n" |
|
|
|
" (layer \"<layer_name>\")\n" |
|
|
|
"\n" |
|
|
|
" (severity <severity_name>)\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Constraint Types\n" |
|
|
|
"\n" |
|
|
|
" * annular\\_width\n" |
|
|
|
" * assertion\n" |
|
|
|
" * clearance\n" |
|
|
|
" * connection\\_width\n" |
|
|
|
" * courtyard_clearance\n" |
|
|
|
" * diff\\_pair\\_gap\n" |
|
|
|
" * diff\\_pair\\_uncoupled\n" |
|
|
|
" * disallow\n" |
|
|
|
" * edge\\_clearance\n" |
|
|
|
" * length\n" |
|
|
|
" * hole\\_clearance\n" |
|
|
|
" * hole\\_size\n" |
|
|
|
" * min\\_resolved\\_spokes\n" |
|
|
|
" * physical\\_clearance\n" |
|
|
|
" * physical\\_hole\\_clearance\n" |
|
|
|
" * silk\\_clearance\n" |
|
|
|
" * skew\n" |
|
|
|
" * text\\_height\n" |
|
|
|
" * text\\_thickness\n" |
|
|
|
" * thermal\\_relief\\_gap\n" |
|
|
|
" * thermal\\_spoke\\_width\n" |
|
|
|
" * track\\_width\n" |
|
|
|
" * via\\_count\n" |
|
|
|
" * via\\_diameter\n" |
|
|
|
" * zone\\_connection\n" |
|
|
|
"\n" |
|
|
|
"Note: `clearance` and `hole_clearance` rules are not run against items of " |
|
|
|
"the same net; `physical_clearance` and `physical_hole_clearance` rules are.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Items\n" |
|
|
|
"\n" |
|
|
|
" * `A` _the first (or only) item under test_\n" |
|
|
|
" * `B` _the second item under test (for binary tests)_\n" |
|
|
|
" * `L` _the layer currently under test_\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Item Types\n" |
|
|
|
"\n" |
|
|
|
" * buried\\_via\n" |
|
|
|
" * graphic\n" |
|
|
|
" * hole\n" |
|
|
|
" * micro\\_via\n" |
|
|
|
" * pad\n" |
|
|
|
" * text\n" |
|
|
|
" * track\n" |
|
|
|
" * via\n" |
|
|
|
" * zone\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Zone Connections\n" |
|
|
|
"\n" |
|
|
|
" * solid\n" |
|
|
|
" * thermal\\_reliefs\n" |
|
|
|
" * none\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Severity Names\n" |
|
|
|
"\n" |
|
|
|
" * warning\n" |
|
|
|
" * error\n" |
|
|
|
" * exclusion\n" |
|
|
|
" * ignore\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Examples\n" |
|
|
|
"\n" |
|
|
|
" (version 1)\n" |
|
|
|
"\n" |
|
|
|
" (rule HV\n" |
|
|
|
" (constraint clearance (min 1.5mm))\n" |
|
|
|
" (condition \"A.NetClass == 'HV'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule HV\n" |
|
|
|
" (layer outer)\n" |
|
|
|
" (constraint clearance (min 1.5mm))\n" |
|
|
|
" (condition \"A.NetClass == 'HV'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule HV_HV\n" |
|
|
|
" # wider clearance between HV tracks\n" |
|
|
|
" (constraint clearance (min \"1.5mm + 2.0mm\"))\n" |
|
|
|
" (condition \"A.NetClass == 'HV' && B.NetClass == 'HV'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule HV_unshielded\n" |
|
|
|
" (constraint clearance (min 2mm))\n" |
|
|
|
" (condition \"A.NetClass == 'HV' && !A.enclosedByArea('Shield*')\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule heavy_thermals\n" |
|
|
|
" (constraint thermal_spoke_width (min 0.5mm))\n" |
|
|
|
" (condition \"A.NetClass == 'HV'\"))\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Notes\n" |
|
|
|
"\n" |
|
|
|
"Version clause must be the first clause. It indicates the syntax version of " |
|
|
|
"the file so that \n" |
|
|
|
"future rules parsers can perform automatic updates. It should be\n" |
|
|
|
"set to \"1\".\n" |
|
|
|
"\n" |
|
|
|
"Rules should be ordered by specificity. Later rules take\n" |
|
|
|
"precedence over earlier rules; once a matching rule is found\n" |
|
|
|
"no further rules will be checked.\n" |
|
|
|
"\n" |
|
|
|
"Use Ctrl+/ to comment or uncomment line(s).\n" |
|
|
|
"<br><br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Expression functions\n" |
|
|
|
"\n" |
|
|
|
"All function parameters support simple wildcards (`*` and `?`).\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsCourtyard('<footprint_refdes>')\n" |
|
|
|
"True if any part of `A` lies within the given footprint's principal " |
|
|
|
"courtyard.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsFrontCourtyard('<footprint_refdes>')\n" |
|
|
|
"True if any part of `A` lies within the given footprint's front courtyard.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsBackCourtyard('<footprint_refdes>')\n" |
|
|
|
"True if any part of `A` lies within the given footprint's back courtyard.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsArea('<zone_name>')\n" |
|
|
|
"True if any part of `A` lies within the given zone's outline.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.enclosedByArea('<zone_name>')\n" |
|
|
|
"True if all of `A` lies within the given zone's outline. \n" |
|
|
|
"\n" |
|
|
|
"NB: this is potentially a more expensive call than `intersectsArea()`. Use " |
|
|
|
"`intersectsArea()` \n" |
|
|
|
"where possible.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.isPlated()\n" |
|
|
|
"True if `A` has a hole which is plated.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.inDiffPair('<net_name>')\n" |
|
|
|
"True if `A` has a net that is part of the specified differential pair.\n" |
|
|
|
"`<net_name>` is the base name of the differential pair. For example, " |
|
|
|
"`inDiffPair('/CLK')`\n" |
|
|
|
"matches items in the `/CLK_P` and `/CLK_N` nets.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" AB.isCoupledDiffPair()\n" |
|
|
|
"True if `A` and `B` are members of the same diff pair.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.memberOf('<group_name>')\n" |
|
|
|
"True if `A` is a member of the given group. Includes nested membership.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.existsOnLayer('<layer_name>')\n" |
|
|
|
"True if `A` exists on the given layer. The layer name can be\n" |
|
|
|
"either the name assigned in Board Setup > Board Editor Layers or\n" |
|
|
|
"the canonical name (ie: `F.Cu`).\n" |
|
|
|
"\n" |
|
|
|
"NB: this returns true if `A` is on the given layer, independently\n" |
|
|
|
"of whether or not the rule is being evaluated for that layer.\n" |
|
|
|
"For the latter use a `(layer \"layer_name\")` clause in the rule.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideCourtyard('<footprint_refdes>') !!!\n" |
|
|
|
"Deprecated; use `intersectsCourtyard()` instead.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideFrontCourtyard('<footprint_refdes>') !!!\n" |
|
|
|
"Deprecated; use `intersectsFrontCourtyard()` instead.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideBackCourtyard('<footprint_refdes>') !!!\n" |
|
|
|
"Deprecated; use `intersectsBackCourtyard()` instead.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideArea('<zone_name>') !!!\n" |
|
|
|
"Deprecated; use `intersectsArea()` instead.\n" |
|
|
|
"<br><br><br>\n" |
|
|
|
"\n" |
|
|
|
"### More Examples\n" |
|
|
|
"\n" |
|
|
|
" (rule \"copper keepout\"\n" |
|
|
|
" (constraint disallow track via zone)\n" |
|
|
|
" (condition \"A.intersectsArea('zone3')\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule \"BGA neckdown\"\n" |
|
|
|
" (constraint track_width (min 0.2mm) (opt 0.25mm))\n" |
|
|
|
" (constraint clearance (min 0.05mm) (opt 0.08mm))\n" |
|
|
|
" (condition \"A.intersectsCourtyard('U3')\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # prevent silk over tented vias\n" |
|
|
|
" (rule silk_over_via\n" |
|
|
|
" (constraint silk_clearance (min 0.2mm))\n" |
|
|
|
" (condition \"A.Type == '*Text' && B.Type == 'Via'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Distance between Vias of Different Nets\"\n" |
|
|
|
" (constraint hole_to_hole (min 0.254mm))\n" |
|
|
|
" (condition \"A.Type == 'Via' && B.Type == 'Via' && A.Net != B.Net" |
|
|
|
"\"))\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Clearance between Pads of Different Nets\"\n" |
|
|
|
" (constraint clearance (min 3.0mm))\n" |
|
|
|
" (condition \"A.Type == 'Pad' && B.Type == 'Pad' && A.Net != B.Net" |
|
|
|
"\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Via Hole to Track Clearance\"\n" |
|
|
|
" (constraint hole_clearance (min 0.254mm))\n" |
|
|
|
" (condition \"A.Type == 'Via' && B.Type == 'Track'\"))\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Pad to Track Clearance\"\n" |
|
|
|
" (constraint clearance (min 0.2mm))\n" |
|
|
|
" (condition \"A.Type == 'Pad' && B.Type == 'Track'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule \"clearance-to-1mm-cutout\"\n" |
|
|
|
" (constraint clearance (min 0.8mm))\n" |
|
|
|
" (condition \"A.Layer == 'Edge.Cuts' && A.Thickness == 1.0mm\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Max Drill Hole Size Mechanical\"\n" |
|
|
|
" (constraint hole_size (max 6.3mm))\n" |
|
|
|
" (condition \"A.Pad_Type == 'NPTH, mechanical'\"))\n" |
|
|
|
"\n" |
|
|
|
" (rule \"Max Drill Hole Size PTH\"\n" |
|
|
|
" (constraint hole_size (max 6.35mm))\n" |
|
|
|
" (condition \"A.Pad_Type == 'Through-hole'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Specify an optimal gap for a particular diff-pair\n" |
|
|
|
" (rule \"dp clock gap\"\n" |
|
|
|
" (constraint diff_pair_gap (opt \"0.8mm\"))\n" |
|
|
|
" (condition \"A.inDiffPair('/CLK')\"))\n" |
|
|
|
"\n" |
|
|
|
" # Specify a larger clearance around any diff-pair\n" |
|
|
|
" (rule \"dp clearance\"\n" |
|
|
|
" (constraint clearance (min \"1.5mm\"))\n" |
|
|
|
" (condition \"A.inDiffPair('*') && !AB.isCoupledDiffPair()\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Don't use thermal reliefs on heatsink pads\n" |
|
|
|
" (rule heat_sink_pad\n" |
|
|
|
" (constraint zone_connection solid)\n" |
|
|
|
" (condition \"A.Fabrication_Property == 'Heatsink pad'\"))\n" |
|
|
|
"\n" |
|
|
|
" # Require all four thermal relief spokes to connect to parent zone\n" |
|
|
|
" (rule fully_spoked_pads\n" |
|
|
|
" (constraint min_resolved_spokes 4))\n" |
|
|
|
"\n" |
|
|
|
" # Set thermal relief gap & spoke width for all zones\n" |
|
|
|
" (rule defined_relief\n" |
|
|
|
" (constraint thermal_relief_gap (min 10mil))\n" |
|
|
|
" (constraint thermal_spoke_width (min 12mil)))\n" |
|
|
|
"\n" |
|
|
|
" # Override thermal relief gap & spoke width for GND and PWR zones\n" |
|
|
|
" (rule defined_relief_pwr\n" |
|
|
|
" (constraint thermal_relief_gap (min 10mil))\n" |
|
|
|
" (constraint thermal_spoke_width (min 12mil))\n" |
|
|
|
" (condition \"A.Name == 'zone_GND' || A.Name == 'zone_PWR'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Prevent solder wicking from SMD pads\n" |
|
|
|
" (rule holes_in_pads\n" |
|
|
|
" (constraint physical_hole_clearance (min 0.2mm))\n" |
|
|
|
" (condition \"B.Pad_Type == 'SMD'\"))\n" |
|
|
|
"\n" |
|
|
|
" # Disallow solder mask margin overrides\n" |
|
|
|
" (rule \"disallow solder mask margin overrides\"\n" |
|
|
|
" (constraint assertion \"A.Soldermask_Margin_Override == 0mm\")\n" |
|
|
|
" (condition \"A.Type == 'Pad'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Enforce a mechanical clearance between components and board edge\n" |
|
|
|
" (rule front_mechanical_board_edge_clearance\n" |
|
|
|
" (layer \"F.Courtyard\")\n" |
|
|
|
" (constraint physical_clearance (min 3mm))\n" |
|
|
|
" (condition \"B.Layer == 'Edge.Cuts'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Check current-carrying capacity\n" |
|
|
|
" (rule high-current\n" |
|
|
|
" (constraint track_width (min 1.0mm))\n" |
|
|
|
" (constraint connection_width (min 0.8mm))\n" |
|
|
|
" (condition \"A.NetClass == 'Power'\"))\n" |
|
|
|
"\n" |
|
|
|
"### Documentation\n" |
|
|
|
"\n" |
|
|
|
"For the full documentation see [https://docs.kicad.org](https://docs.kicad." |
|
|
|
"org/GetMajorMinorVersion/pcbnew/#custom_design_rules)." |
|
|
|
msgstr "" |
|
|
|
"### Застереження верхнього рівня\n" |
|
|
|
"\n" |
|
|
|
" (версія <number>)\n" |
|
|
|
"\n" |
|
|
|
" (правило <rule_name> <rule_clause> ...)\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Пункти правила\n" |
|
|
|
"\n" |
|
|
|
" (константи <constraint_type> ...)\n" |
|
|
|
"\n" |
|
|
|
" (застереження\"<expression>\")\n" |
|
|
|
"\n" |
|
|
|
" (шар \"<layer_name>\")\n" |
|
|
|
"\n" |
|
|
|
" (ретельність <severity_name>)\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Типи констант\n" |
|
|
|
"\n" |
|
|
|
" * annular\\_width\n" |
|
|
|
" * assertion\n" |
|
|
|
" * clearance\n" |
|
|
|
" * connection\\_width\n" |
|
|
|
" * courtyard_clearance\n" |
|
|
|
" * diff\\_pair\\_gap\n" |
|
|
|
" * diff\\_pair\\_uncoupled\n" |
|
|
|
" * disallow\n" |
|
|
|
" * edge\\_clearance\n" |
|
|
|
" * length\n" |
|
|
|
" * hole\\_clearance\n" |
|
|
|
" * hole\\_size\n" |
|
|
|
" * min\\_resolved\\_spokes\n" |
|
|
|
" * physical\\_clearance\n" |
|
|
|
" * physical\\_hole\\_clearance\n" |
|
|
|
" * silk\\_clearance\n" |
|
|
|
" * skew\n" |
|
|
|
" * text\\_height\n" |
|
|
|
" * text\\_thickness\n" |
|
|
|
" * thermal\\_relief\\_gap\n" |
|
|
|
" * thermal\\_spoke\\_width\n" |
|
|
|
" * track\\_width\n" |
|
|
|
" * via\\_count\n" |
|
|
|
" * via\\_diameter\n" |
|
|
|
" * zone\\_connection\n" |
|
|
|
"\n" |
|
|
|
"Примітка: правила `clearance` і `hole_clearance` не застосовуються до " |
|
|
|
"елементів однієї мережі; правила `physical_clearance` і " |
|
|
|
"`physical_hole_clearance`.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Елементи\n" |
|
|
|
"\n" |
|
|
|
" * `A` _перший (або єдиний) тестовий елемент_\n" |
|
|
|
" * `B` _другий тестований елемент (для бінарних тестів)_\n" |
|
|
|
" * `L` _шар, який зараз тестується_\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Тип елементів\n" |
|
|
|
"\n" |
|
|
|
" * buried\\_via\n" |
|
|
|
" * graphic\n" |
|
|
|
" * hole\n" |
|
|
|
" * micro\\_via\n" |
|
|
|
" * pad\n" |
|
|
|
" * text\n" |
|
|
|
" * track\n" |
|
|
|
" * via\n" |
|
|
|
" * zone\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Зона підключень\n" |
|
|
|
"\n" |
|
|
|
" * solid\n" |
|
|
|
" * thermal\\_reliefs\n" |
|
|
|
" * none\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### Назви попереджень\n" |
|
|
|
"\n" |
|
|
|
" * warning\n" |
|
|
|
" * error\n" |
|
|
|
" * exclusion\n" |
|
|
|
" * ignore\n" |
|
|
|
"\n" |
|
|
|
"<br>\n" |
|
|
|
"\n" |
|
|
|
"### .Приклади\n" |
|
|
|
"\n" |
|
|
|
" (версія 1)\n" |
|
|
|
"\n" |
|
|
|
" (правило HV\n" |
|
|
|
" (зазор по замовчуванню(min 1.5mm))\n" |
|
|
|
" (застереження \"A.NetClass == 'HV'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило HV\n" |
|
|
|
" (зовнішній шар)\n" |
|
|
|
" (зазор по замовчуванню (min 1.5mm))\n" |
|
|
|
" (застереження \"A.NetClass == 'HV'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило HV_HV\n" |
|
|
|
" # більш широкий просвіт між доріжками HV\n" |
|
|
|
" (зазор по замовчуванню (min \"1.5mm + 2.0mm\"))\n" |
|
|
|
" (застереження \"A.NetClass == 'HV' && B.NetClass == 'HV'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило HV_unshielded\n" |
|
|
|
" (зазор по замовчуванню (мін 2mm))\n" |
|
|
|
" (застереження \"A.NetClass == 'HV' && !A." |
|
|
|
"enclosedByArea('Shield*')\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило heavy_thermals\n" |
|
|
|
" (по замовчуванню thermal_spoke_width (мін 0.5mm))\n" |
|
|
|
" (застереження \"A.NetClass == 'HV'\"))\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Замітки\n" |
|
|
|
"\n" |
|
|
|
"Речення версії має бути першим реченням. Він вказує синтаксичну версію " |
|
|
|
"файлу, щоб\n" |
|
|
|
"аналізатори майбутніх правил можуть виконувати автоматичні оновлення. Вона " |
|
|
|
"повинна бути\n" |
|
|
|
"встановлений в \"1\".\n" |
|
|
|
"\n" |
|
|
|
"Правила мають бути впорядковані за специфікою. Пізніше приймають правила\n" |
|
|
|
"пріоритет над попередніми правилами; як тільки відповідне правило знайдено\n" |
|
|
|
"подальші правила перевірятися не будуть.\n" |
|
|
|
"\n" |
|
|
|
"Використовуйте Ctrl+/ щоб прокоментувати або роз коментувати рядок(рядки).\n" |
|
|
|
"<br><br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Функції вираження\n" |
|
|
|
"\n" |
|
|
|
"Усі параметри функції підтримують прості символи підстановки (`*` і `?`).\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsCourtyard('<footprint_refdes>')\n" |
|
|
|
"Допустимо, якщо будь-яка частина \"A\" лежить у межах основного внутрішнього " |
|
|
|
"контору заданого контуру.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsFrontCourtyard('<footprint_refdes>')\n" |
|
|
|
"Допустимо, якщо будь-яка частина \"A\" лежить у передньому контурі поточного " |
|
|
|
"посадкового місця.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsBackCourtyard('<footprint_refdes>')\n" |
|
|
|
"Допустимо, якщо будь-яка частина \"A\" лежить нижнього контурі поточного " |
|
|
|
"посадкового місця.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.intersectsArea('<zone_name>')\n" |
|
|
|
"Допустимо, якщо будь-яка частина `A` знаходиться в межах заданої зони.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.enclosedByArea('<zone_name>')\n" |
|
|
|
"Допустимо, якщо весь `A` лежить в межах заданої зони. \n" |
|
|
|
"\n" |
|
|
|
"NB: це потенційно дорожчий виклик, ніж `intersectsArea()`. Використовуйте " |
|
|
|
"`intersectsArea()` \n" |
|
|
|
"де можливо.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.isPlated()\n" |
|
|
|
"Допустимо, якщо `A` має отвір, який покритий.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.inDiffPair('<net_name>')\n" |
|
|
|
"Допустимо, якщо `A` має зв'язок, яка є частиною вказаної диференційної " |
|
|
|
"пари.\n" |
|
|
|
"`<net_name>` є базовою назвою диференційної пари. Для прикладу, " |
|
|
|
"`inDiffPair('/CLK')`\n" |
|
|
|
"відповідає елементам у `/CLK_P` і `/CLK_N` зв'язки.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" AB.isCoupledDiffPair()\n" |
|
|
|
"Допустимо, якщо `A` і `B` є членами однієї відмінних пар.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.memberOf('<group_name>')\n" |
|
|
|
"Допустимо, if `A` is a member of the given group. Includes nested " |
|
|
|
"membership.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" A.existsOnLayer('<layer_name>')\n" |
|
|
|
"Допустимо, якщо `A` існує на даному шарі. Назва шару може бути\n" |
|
|
|
"ім’я, призначене в «Налаштування дошки» > Редактор шару плати або\n" |
|
|
|
"канонічна назва (тобто: `F.Cu`).\n" |
|
|
|
"\n" |
|
|
|
"NB: це повертає true якщо `A`знаходиться на даному шарі незалежно\n" |
|
|
|
"чи оцінюється правило для цього рівня.\n" |
|
|
|
"Для останнього використовуйте пункт `(шар \"layer_name\")` в правилі.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideCourtyard('<footprint_refdes>') !!!\n" |
|
|
|
"Застаріле; використовуйте `intersectsCourtyard()` замість цього.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideFrontCourtyard('<footprint_refdes>') !!!\n" |
|
|
|
"Застаріле; використовуйте `intersectsFrontCourtyard()` замість цього.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideBackCourtyard('<footprint_refdes>') !!!\n" |
|
|
|
"Застаріле; використовуйте `intersectsBackCourtyard()` замість цього.\n" |
|
|
|
"<br><br>\n" |
|
|
|
"\n" |
|
|
|
" !!! A.insideArea('<zone_name>') !!!\n" |
|
|
|
"Застаріле; використовуйте `intersectsArea()` замість цього.\n" |
|
|
|
"<br><br><br>\n" |
|
|
|
"\n" |
|
|
|
"### Більше прикладів\n" |
|
|
|
"\n" |
|
|
|
" (правило \"зони не заповнюються міддю\"\n" |
|
|
|
" (обмеження заборони треку через зону)\n" |
|
|
|
" (умова \"A.intersectsArea('zone3')\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило \"BGA перехід\"\n" |
|
|
|
" (обмеження track_width (мін 0.2mm) (опт 0.25mm))\n" |
|
|
|
" (обмеження зазору (мін 0.05mm) (опт 0.08mm))\n" |
|
|
|
" (умова \"A.intersectsCourtyard('U3')\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # запобігти шару шовкографії над перехідними отворами\n" |
|
|
|
" (правило silk_over_via\n" |
|
|
|
" (обмеження silk_clearance (мін 0.2mm))\n" |
|
|
|
" (умова \"A.Type == '*Text' && B.Type == 'Via'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило \"Дистанція між перехідними отворами і різними зв'язками\"\n" |
|
|
|
" (обмеження hole_to_hole (мін 0.254mm))\n" |
|
|
|
" (умова \"A.Type == 'Via' && B.Type == 'Via' && A.Net != B.Net\"))\n" |
|
|
|
"\n" |
|
|
|
" (правило \"Зазор між контактними площадками і різними зв'язками\"\n" |
|
|
|
" (обмеження clearance (мін 3.0mm))\n" |
|
|
|
" (умова \"A.Type == 'Pad' && B.Type == 'Pad' && A.Net != B.Net\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило \"Via Hole to Track Clearance\"\n" |
|
|
|
" (обмеження hole_clearance (мін 0.254mm))\n" |
|
|
|
" (умова \"A.Type == 'Via' && B.Type == 'Track'\"))\n" |
|
|
|
"\n" |
|
|
|
" (правило \"Зазор між контактною площадкою і доріжкою\"\n" |
|
|
|
" (обмеження зазору (мін 0.2mm))\n" |
|
|
|
" (умова \"A.Type == 'Pad' && B.Type == 'Track'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило \"clearance-to-1mm-cutout\"\n" |
|
|
|
" (обмеження зазору (мін 0.8mm))\n" |
|
|
|
" (умова \"A.Layer == 'Edge.Cuts' && A.Thickness == 1.0mm\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" (правило \"Максимальний діаметр отвору для механічного шару\"\n" |
|
|
|
" (обмеження hole_size (макс 6.3mm))\n" |
|
|
|
" (умова \"A.Pad_Type == 'NPTH, mechanical'\"))\n" |
|
|
|
"\n" |
|
|
|
" (правило \"Максимальный діаметр отвору для PTH\"\n" |
|
|
|
" (обмеження hole_size (макс 6.35mm))\n" |
|
|
|
" (умова \"A.Pad_Type == 'Through-hole'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Вкажіть оптимальний розрив для конкретної диф-пари\n" |
|
|
|
" (правило \"dp clock gap\"\n" |
|
|
|
" (обмеження diff_pair_gap (опт \"0.8mm\"))\n" |
|
|
|
" (умова \"A.inDiffPair('/CLK')\"))\n" |
|
|
|
"\n" |
|
|
|
" # Вкажіть більший зазор навколо будь-якої диф-пари\n" |
|
|
|
" (правило \"dp clearance\"\n" |
|
|
|
" (обмеження зазору (мін \"1.5mm\"))\n" |
|
|
|
" (умова \"A.inDiffPair('*') && !AB.isCoupledDiffPair()\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Не використовуйте терморельєфи на колодках радіатора\n" |
|
|
|
" (правило heat_sink_pad\n" |
|
|
|
" (обмеження zone_connection solid)\n" |
|
|
|
" (умова \"A.Fabrication_Property == 'Тепловідвід контактної " |
|
|
|
"площадки'\"))\n" |
|
|
|
"\n" |
|
|
|
" # Вимагайте, щоб усі чотири термозахисні переходи були підключені до " |
|
|
|
"батьківської зони\n" |
|
|
|
" (правило fully_spoked_pads\n" |
|
|
|
" (обмеження min_resolved_spokes 4))\n" |
|
|
|
"\n" |
|
|
|
" # Встановіть температурний зазор і ширину переходів для всіх зон\n" |
|
|
|
" (правило defined_relief\n" |
|
|
|
" (обмеження thermal_relief_gap (мін 10mil))\n" |
|
|
|
" (обмеження thermal_spoke_width (мін 12mil)))\n" |
|
|
|
"\n" |
|
|
|
" # Повторно визначити температурний зазор і ширину переходів для зон GND " |
|
|
|
"і PWR\n" |
|
|
|
" (правило defined_relief_pwr\n" |
|
|
|
" (обмеження thermal_relief_gap (мін 10mil))\n" |
|
|
|
" (обмеження thermal_spoke_width (мін 12mil))\n" |
|
|
|
" (умова \"A.Name == 'zone_GND' || A.Name == 'zone_PWR'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Запобігання витікання припою з контактних площадок SMD\n" |
|
|
|
" (правило holes_in_pads\n" |
|
|
|
" (обмеження physical_hole_clearance (мін 0.2mm))\n" |
|
|
|
" (умова \"B.Pad_Type == 'SMD'\"))\n" |
|
|
|
"\n" |
|
|
|
" # Заборонити повторне визначення поля паяльної маски\n" |
|
|
|
" (правило \"заборонити повторне визначення поля паяльної маски\"\n" |
|
|
|
" (обмеження \"A.Soldermask_Margin_Override == 0mm\")\n" |
|
|
|
" (умова \"A.Type == 'Pad'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Забезпечте механічний зазор між компонентами та краєм плати\n" |
|
|
|
" (правило front_mechanical_board_edge_clearance\n" |
|
|
|
" (шар \"F.Courtyard\")\n" |
|
|
|
" (обмеження physical_clearance (мін 3mm))\n" |
|
|
|
" (умова \"B.Layer == 'Edge.Cuts'\"))\n" |
|
|
|
"\n" |
|
|
|
"\n" |
|
|
|
" # Перевірити пропускну здатність по струму\n" |
|
|
|
" (правило сильного струму\n" |
|
|
|
" (обмеження track_width (мін 1.0mm))\n" |
|
|
|
" (обмеження connection_width (мін 0.8mm))\n" |
|
|
|
" (умова \"A.NetClass == 'Живлення'\"))\n" |
|
|
|
"\n" |
|
|
|
"### Документація\n" |
|
|
|
"\n" |
|
|
|
"Всю документацію дивіться на [https://docs.kicad.org](https://docs.kicad.org/" |
|
|
|
"GetMajorMinorVersion/pcbnew/#custom_design_rules)." |
|
|
|
|
|
|
|
#~ msgid "Reading file " |
|
|
|
#~ msgstr "Читання файлу " |
|
|
|
|
|
|
|
@ -41543,8 +42210,8 @@ msgstr "Друкована плата KiCad" |
|
|
|
#~ "\n" |
|
|
|
#~ "On Linux:\n" |
|
|
|
#~ "```\n" |
|
|
|
#~ "python /usr/local/kicad/bin/plugins/bom-in-python/my_python_script.py " |
|
|
|
#~ "\"%I\" \"%O.csv\"\n" |
|
|
|
#~ "python /usr/local/kicad/bin/plugins/bom-in-python/my_python_script.py \"%I" |
|
|
|
#~ "\" \"%O.csv\"\n" |
|
|
|
#~ "```\n" |
|
|
|
#~ msgstr "" |
|
|
|
#~ "# 1 - Повна документація\n" |
|
|
|
@ -41731,8 +42398,8 @@ msgstr "Друкована плата KiCad" |
|
|
|
#~ "\n" |
|
|
|
#~ "On Linux:\n" |
|
|
|
#~ "```\n" |
|
|
|
#~ "python /usr/local/kicad/bin/plugins/bom-in-python/my_python_script.py " |
|
|
|
#~ "\"%I\" \"%O.csv\"\n" |
|
|
|
#~ "python /usr/local/kicad/bin/plugins/bom-in-python/my_python_script.py \"%I" |
|
|
|
#~ "\" \"%O.csv\"\n" |
|
|
|
#~ "```\n" |
|
|
|
|
|
|
|
#, c-format |
|
|
|
|