Несмотря на то, что многие считают наши государственные стандарты по ЕСКД и ЕСПД устаревшими, проектная и программная документация должна выполняться в соответствии с ними.
Когда я был совсем молодым «специалистом», я с унынием наблюдал, как в Microsoft Office пишутся технические задания, программы и методы испытаний.
Иногда эти документы очень сложные и объемные.
Больше всего пугали основные надписи, размещенные в футере.
Они никак не соответствовали ГОСТ 2.104. В просторечии их называют «рамками».
Они были ужасны.
Я не видел, чтобы кому-то удавалось сделать это правильно.
Размеры и толщина линий колебались.
Это было видно даже без линейки.
Представьте себе разработку программного продукта без использования какой-либо системы контроля версий.
Это звучит смешно.
Однако мало кого смущает написание сложных документов в Microsoft Office. Формат файла бинарный, отследить какие-либо изменения невозможно.
Авторство строк определить не представляется возможным.
Также невозможно, чтобы несколько человек одновременно работали над одним документом.
Редактировать документы объемом 500 страниц с большим количеством изображений порой практически невозможно.
Современные компьютеры с большим объемом оперативной памяти, безусловно, делают это намного лучше, чем 5 лет назад. Именно поэтому я в свое время перешёл на LaTeX (точнее XeTeX).
Все документы сразу стали размещаться в СВН.
В документ можно было без проблем вставить векторные изображения – выглядело это потрясающе.
Автор каждой строки определился без проблем.
В документе даже можно было писать комментарии, как в C. Была одна проблема.
К документам нужно было прикрепить те самые «рамки».
Может быть я плохо искал, но готовых решений на тот момент я не нашел, или они меня не устроили по качеству.
Я знаю, что LaTeX является полным по Тьюрингу и что с помощью его команд можно нарисовать все, что угодно.
Однако на тот момент мои знания C были в 100 раз лучше, чем LaTeX. На самом деле переход на LaTeX оказался не таким уж безболезненным.
Я был полон решимости, мне нужно было во что бы то ни стало реализовать свои планы.
Я знал о существовании pdftk. Он позволяет накладывать один PDF-документ поверх другого.
Все, что мне нужно было сделать, это каким-то образом сгенерировать документ, содержащий только «кадры».
Тогда я мог бы без проблем наложить его на любой PDF-документ. Я уже достаточно полюбил Inkscape. Посмотрев на структуру SVG-файла, я понял, что создать его не так уж и сложно.
Это не сложнее, чем генерировать HTML с помощью PHP. inkscape может экспортировать SVG в PDF, в том числе из командной строки.
За пару дней я написал программу на языке C, которая генерировала любые базовые надписи для любых конструкторских документов.
Необходимо было указать тип документа (текст или рисунок), размер листа, ориентацию и количество листов.
Каждый столбец основной надписи имеет номер по ГОСТ 2.104. Например, в графу 11 заносятся имена лиц, подписавших документ. Данные, которые необходимо заполнить в соответствующих столбцах, я решил хранить в простом текстовом файле в виде таблицы с разделителями табуляции.
Исходный файл:
DrawingТеги: #LaTeX #гост #ескд #ескд #LaTeX
-
Три Правила Хорошего Программирования
19 Oct, 24 -
Схема Лифта На Javascript
19 Oct, 24