Шаблоны основных надписей (рамок) чертежей по ГОСТ

См. Правила создания шаблона для верстака TechDraw.
Обратите внимание, в кокнце страницы сказано, что очень нежелательно использовать при создании шаблона слои и трансформации!

Общими усилиями в 2019 году русскоязычным сообществом созданы как минимум 2 работоспособных набора ГОСТ-шаблонов для модуля TechDraw.

Участник сообщества под ником -=SpV=- создал Шаблоны ГОСТ для TechDraw, в репозиторий он их пока не выкладывал.
Шаблоны имеют очень качественную XML-SVG разметку (без мусора в коде).
Изначально в его шаблонах использовался шрифт «GOST type А» компании Аскон, лицензия на который накладывает некоторые ограничения на свободное использование. После обсуждения, был найден другой свободный для использования шрифт: «GOSTRUS» под лицензией «SIL Open Font License (OFL)».

Участник сообщества под ником Abrosimov-a-a создал и выложил шаблоны в репозиторий: https://github.com/FreeCAD/FreeCAD/tree/master/src/Mod/TechDraw/Templates/RU_GOST — можно использовать, но некоторые элементы в шаблонах отсутствуют, и важнее, что в шаблонах много "xml-мусора" (хотя, с Уважением к Abrosimov-a-a, отмечу, что это не самые замусоренные шаблоны, что видел), оставленного Inkscape. В этих шаблонах используется шрифт «Arial».

В итоге получается имеет смысл спокойно доработать и разместить в репозитории 2 набора шаблонов на основе созданных -=SpV=-:

  1. Набор со шрифтом «GOSTRUS»;
  2. Набор со шрифтом «Arial» (в некоторых организациях может быть внутренний стандарт использовать только проверенные открытые шрифты).

Проблема мусора в SVG-файлах

В программировании есть «Золотое правило»: Никогда ничего не усложнять без необходимости!

Почему это так важно?? Это правило написано жизнью. Если Вы хотите развивать любой проект, то изначально следует продумывать грамотную архитектуру всех составляющих. Чистый код позволяет на своём фундаменте дальше строить всё что нужно, чистый код — это экономия всех ресурсов наверное на 98%! Грязный код отнимает колоссальное количество времени, сил, мешает развиваться, ошибки наслаиваются, затрудняют отладку и в конечном итоге всё-равно приходится делать выбор: либо отказываться от проекта, либо чистить код!

Наверное все векторные редакторы AI, Corel, наш любимый Inkscape и прочие вставляют в сохраняемый в формате SVG файл очень много "мусора" в виде тегов, принадлежащих только пространству имён этого редактора, слоёв, градиентов и т. п.

Избавляемся от мусора в SVG-файлах

На мой восторженный отзыв о чистоте кода -=SpV=- ответил, что «…писал по образцу в блокноте весь файл шаблона, поэтому такой результат
Наверное, действительно только вручную можно очистить код до идеала. Но не многие знают, что в Inkscape есть очень полезная функция, которая позволяет удалить из файла наверное 99% мусора!!!:
"Сохранить как Optimized SVG" (не путайте её с опцией Сохранить как "Plain SVG", использование которой почти ничего не даёт):


После нажатия на кнопку «Сохранить» появится диалоговое окно с настройками что вычищать из сохраняемого файла:

Пример сохранения простого SVG-круга в Inkscape

Для понимания проблемы рассмотрим для начала максимально простой пример с сохранением не оптимизированного и оптимизированного файлов.
Если нарисовать в Inkscape просто красный круг диаметром 30 мм с синей обводкой, затем сохранить как SVG-файл, то в файле будет куча "xml-мусора".
Ниже приведён код сохраненного таким образом SVG и результат. Вес файла 1,74 КБ:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="50mm"
   height="50mm"
   viewBox="0 0 50 50"
   version="1.1"
   id="svg8"
   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
   sodipodi:docname="circle-inkscape.svg">
  <defs
     id="defs2" />
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="1"
     inkscape:cx="52.824074"
     inkscape:cy="200"
     inkscape:document-units="mm"
     inkscape:current-layer="svg8"
     showgrid="false"
     units="mm" />
  <metadata
     id="metadata5">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <circle
     style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:0.48799384;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
     id="path815"
     cx="25"
     cy="25"
     r="14.756003" />
</svg>
Результат:
SVG НЕ оптимизированный. Красный круг с синей обводкой

Если если этот же круг сохранить как оптимизированный (optimized) SVG, то файл будет намного "чище", но при этом в нём будет абсолютно та же полезная информация. Вес файла 0,31 КБ:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="50mm" height="50mm" version="1.1" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
 <circle cx="25" cy="25" r="14.756" color="#000000" fill="#f00" stroke="#00f" stroke-width=".48799"/>
</svg>
Результат:
SVG оптимизированный. Красный круг с синей обводкой

Чистые ГОСТ-шаблоны для FreeCAD

В случае FreeCAD, хотя шаблоны как бы и не являются частью ядра программы, но это первое впечатление.

Замусоренные шаблоны — это:

  • затруднение ловли багов рендера шаблонов,
  • потенциальные проблемы с экспортом файлов,
  • проблемы с обменом между контрагентами,
  • кем-то перередактированные и перезалитые в репозиторий шаблоны в редакторе, который не смог нормально распарсить изначально замусоренный шаблон..
  • в конце-концов, репутация FreeCAD!

Для примера посмотрим далеко не самый замусоренный шаблон, из тех, которые на данный момент (23.01.2020) лежат в репозитории FreeCAD:

Шаблон Landscape_A3.svg (вес 58,7 КБ, откроется в новом окне).

Посмотрите код этого шаблона, сколько там лишнего! Тэги <inkscape> с атрибутами "sodipodi" и наоборот тэги <sodipodi> с атрибутами "inkscape".Sodipodi — пространство имён, используемое Inkscape для хранения своей информации, название осталось от старого редактора «Sodipodi», на базе которого был создан Inkscape. Для SVG-файла эта информация является мусором.
Там же почти сотня тэгов <linearGradient> которые являются просто заданными "на всякий случай" и нигде не используются.

Теперь я просто пересохраняю этот файл как "Оптимизированный SVG", результат:
Шаблон Landscape_A3-optimized.svg (вес 9,9 КБ).

Мы имеем визуально абсолютно такой же шаблон, а функционально он лучше!