Форум пользователей Visio http://visio.getbb.ru/ |
|
Трафарет оформление РД по ГОСТ Р 21.1101-2013 v.3 http://visio.getbb.ru/viewtopic.php?f=3&t=806 |
Страница 1 из 4 |
Автор: | vin [ 03 авг 2015, 12:27 ] | ||
Заголовок сообщения: | Трафарет оформление РД по ГОСТ Р 21.1101-2013 v.3 | ||
Предлагаю Вашему вниманию новый трафарет рамки по ГОСТ Р 21.1101-2013. Здесь реализованы формы формы 3,5 и 6. Помучился месяц - начал с нуля (не считая своего опыта программирования). БОЛЬШОЕ спасибо Surrogate™ и Tumanov. Постарался убрать все недостатки, присущие ранее созданным рамкам. Управлять данными рамок стало очень легко. Содержимое спрятано под спойлер ↓ Спойлер: ▼ Обмен данными на уровне документа позаимствован из трафарета оформление документации по ГОСТ 21.101-97 от Surrogate™!!!
|
Автор: | Гость [ 04 авг 2015, 12:23 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Дякую, файно! |
Автор: | RoMMaN [ 05 авг 2015, 09:25 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Добрый день Посмотрел поверхностно. В таблицу свойств шейпов не залазил. Сам периодически пытаюсь сделать рамки. Но из-за нехватки времени на работе, делается все долго, костылеобразно и по принципу - хотелось бы сделать красиво, но нужно сделать прям счяз и чтоб хоть как-то работала половинну заплонированных функций с дикими ограничениями В общем у меня там дикий треш и содомия. Ниже перечислел замечания и свои мысли. Часть перечисленных предложений я худо-бедно реализовал, часть хрен знает когда сделаю. Немного замечаний, предложений:
|
Автор: | vin [ 05 авг 2015, 17:19 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Спасибо, очень дельные советы. Кстати, я нашел уже сам одну ошибку - не были сделаны масштабированные формы и надпись сбоку. Исправил, но выложу потом, когда сделаю исправления по Вашим замечаниям. RoMMaN писал(а): 3. Сделать так, чтобы рамка не участвовала в привязках при рисовании. Когда чертишь схемы с помщью тех же соединительных линий, желание данных линий привязаться к рамке немного подбешивает. Если знаете как сделать - подскажите, иначе поищу сам.RoMMaN писал(а): 4. В наименовании объекта, наименовании листа, организации разработчика должно быть возможность вручную переносить текст на другую страницу (я ничего более не придумал и сделал форму заполнения рамки с помощью формы, см.рисунок ниже). Этот пункт я не понял. У меня сделано так: сначала нужно задать данные на уровне документа (Общие данные), а потом, когда кидаем Рамку - в нее автоматом помещаются данные с уровня документа (кроме наименования листа и номера листа).Я могу сделать другое поведение Рамки - чтобы она брала динамически данные с уровня документа. В этом случае я делал так (например шифр документа): если шифр на уровне рамки есть - то берем его, а если нет (пусто) - берем из уровня документа. Но когда пользователь видит пустое поле при вводе данных, а в это время в Рамке это поле заполнено из документа - у него могут быть "непонятки". RoMMaN писал(а): 5. Возможность задавать размер и сужение текста отдельно для определенных граф (бывают такие фамилии, что не умещаются без ухищрений Это на уровне подписей уже сделано - можете проверить.RoMMaN писал(а): Возможность отображать разместить рамку горизонтально или вертикально. (иногда на А4 чтбы нормально уместилась схема ее удобнее рисовать в горизонтальном расположении). СделаюRoMMaN писал(а): реализовать заполнение граф, связанных с изменениями в документе. Это какие конкретно графы? И чем они заполняются?RoMMaN писал(а): реализовать прорисовку эмблемы предприятия в графе организации разработчкиа (к сожалению при частой работе на субподряде бывают казусы, когда организацию текстом прописали а вот про логотип забыли. было бы класно при прописании разработчика, чтобы подсовывалась в эту графу нужная эмблема). Это нужно подумать как сделать. Пока не знаю даже как к этому подойти. Если есть какие-нибудь идеи (или у кого-то видели такие наработки) - подскажите.
|
Автор: | vin [ 05 авг 2015, 17:26 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Какой толщины лучше сделать тонкие и утолщенные линии 1,3,5. |
Автор: | 9rey [ 05 авг 2015, 18:27 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Цитата: 3. Сделать так, чтобы рамка не участвовала в привязках при рисовании. Когда чертишь схемы с помщью тех же соединительных линий, желание данных линий привязаться к рамке немного подбешивает. Если знаете как сделать - подскажите, иначе поищу сам. сделать у рамки в секии геометрия ячейку NoSnap=True (чтобы вообще к ней не было привязки) и в секции GlueInfo: GlueType=8 (чтобы коннектор не цеплялся автоматически) vin писал(а): Какой толщины лучше сделать тонкие и утолщенные линии 1,3,5. тонкие 0,25 мм, толстые 0,5 мм |
Автор: | Surrogate [ 06 авг 2015, 01:58 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
vin, спасибо за разработку ! Чем больше будет интересного контента на нашем форуме, тем большей популярностью он будет пользоваться собрался уже было свой архаичный шаблон выкинуть на свалку истории, ты сделал полный рестайлинг (изменил графическую часть на 100%) - супер!!! Но вспомнил: что есть ряд наработок выложенных на форуме которые будут работать только с ним, поля в TheDoc ты тоже переименовал чуть более, чем полностью. Например мастер по созданию ведомости рабочих чертежей, трафарет по добавлению спецификаций и макрос по добавлению спецификаций. vin писал(а): Постарался убрать все недостатки, присущие ранее созданным рамкам. не все из того, что ты называешь недостатоком есть баг. Часть из них это фича Управлять данными рамок стало очень легко. 1. применение DOCMD(1312) вместо DOCMD(1658). vin в сообщении #7426 писал(а): 1. Потому что в нем нет ограничения на 20 элементов. В моем шаблоне всего 12 полей, причем последнее "Узел" используется редко, поэтому ограничение 20 строк для меня не актуально!2. Потому, что в нем не надо отключать кнопку "Определить данные ..." через свойства фигуры. DOCMD(1312) было выбрано для того, чтобы ввод данных максимально напоминал традиционную windows форму (такой у меня был каприз), чтоб измененния происходили после нажатия кнопки OK. Также хотелось, чтоб в поле Prompt шла подсказка, что собственно пользователь вводит Кнопка "Определить данные ..." нужна только при добавлении строк в ShapeData (Custom Properties) vin писал(а): Сейчас у меня сделано так, что данные копируются в рамку с данных документа. лично я создавал этот шаблон для создания многостраничных документов и упрощения работы с ними, чтоб многократно не вводить одни и теже значения!Ранее у меня было сделано так, что если в рамке пустое значение - берутся данные с документа, иначе с данных рамки. Но мне это решение не очень понравилось. Пользователю не сразу станет понятно - почему в данных рамки стоит пустое значение, а в полях отображаются данные документа. Тем самым я убрал возможность, когда можно поправить данные на уровне документа - и они сразу отобразятся на всех страницах. Но я намеренно пожертвовал этой возможностью - выбрав более понятный пользователю вариант. Возможно здесь я не прав. vin в сообщении #7421 писал(а): Если все значения из шейпа прописываются в свойства документа при дропе - это плохо. Получается - я создал документ, кинул в него шейп "Общие данные" - ввел их, удалил шейп "Общие данные", закинул снова - и вводи данные опять! ойц!!! оказывается шаблон то лежит с кривым механизмом обмена данными с TheDoc! Прилагаю модифицированный набор элементов, см. в мастере "Заполнить форму", в секции ShapeData в полях Value прописанны ссылки на TheDoc. Таким образом при первом дропе на "чистый документ", нужные ячейки создаются. При повторном дропе, они подхватывают текущие значения в целевом документе. При этом, возможно дальнейшее редактирование полей целевого документа через вызов формы редактированияЭто не правильно! Шейп становится ужасным диктатором! PS я 6 лет назад чесал свое ЧСВ, что этот шаблон станет негласным стандартом, но большого обсуждения на форуме он не вызвал. Думаю не реально сделать его так, чтоб угодить всем: на вкус, на цвет товарищей нет. Одному не понравится толщина линий, другому покажется что "палочки непопендикулярны" и т.п. Обсуждение в основном носило характер, как приспособить то что есть, к особенностям оформления в конкетной конторе. |
Автор: | vin [ 06 авг 2015, 11:00 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
RoMMaN писал(а): Линии рамки по ГОСТ должны быть различной толщины. См ГОСТ, на рис. ниже. Надеюсь видно что часть горизонтальных линий прорисовано более тонкой линией. Сделал.RoMMaN писал(а): графа 27. Организация заказчика. Наверно нужно сплошной линией ее сделать. Штрихом в ГОСТ показали, что она опциональна. СделалRoMMaN писал(а): Сделать так, чтобы рамка не участвовала в привязках при рисовании. Когда чертишь схемы с помщью тех же соединительных линий, желание данных линий привязаться к рамке немного подбешивает. СделалRoMMaN писал(а): В наименовании объекта, наименовании листа, организации разработчика должно быть возможность вручную переносить текст на другую страницу (я ничего более не придумал и сделал форму заполнения рамки с помощью формы, см.рисунок ниже). Наименование объекта, организация разработчика - задается на уровне документа и автоматом вставляется в новую рамку. Наименование листа - индивидуально для каждой страницы. Неужели часто приходится повторять на каждой странице Имя листа? Если Да, то можно просто скопировать Имя станицы в редакторе данных и, вызывая на других страницах редактор - вставлять туда. RoMMaN писал(а): Возможность задавать размер и сужение текста отдельно для определенных граф (бывают такие фамилии, что не умещаются без ухищрений Было сделано сразу.RoMMaN писал(а): Возможность отображать разместить рамку горизонтально или вертикально. (иногда на А4 чтбы нормально уместилась схема ее удобнее рисовать в горизонтальном расположении). Сделал.RoMMaN писал(а): реализовать заполнение граф, связанных с изменениями в документе. Не понимаю о чем идет речь.RoMMaN писал(а): реализовать прорисовку эмблемы предприятия в графе организации разработчкиа (к сожалению при частой работе на субподряде бывают казусы, когда организацию текстом прописали а вот про логотип забыли. было бы класно при прописании разработчика, чтобы подсовывалась в эту графу нужная эмблема). Пока не знаю как сделать - думаю.
|
Автор: | vin [ 06 авг 2015, 11:30 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Surrogate писал(а): применение DOCMD(1312) вместо DOCMD(1658). Без DOCMD(1658) я обойтись не могу: 1. Полей более 20. 2. Динамическое переключение ориентации рамки и отключение левой панели 3. Динамически убираются неиспользованные поля (для Формы3 - свои, для Формы5 - свои и т.п.) Surrogate писал(а): лично я создавал этот шаблон для создания многостраничных документов и упрощения работы с ними, чтоб многократно не вводить одни и теже значения! У меня тоже не вводятся одни и те же значения, они автоматом берутся из документа при дропе. Однако на странице можно менять ВСЕ.У меня была версия рамки в которой я делал так: пустое значение - значит берется поле документа, иначе - со странице. Но мне это показалось трудным для понимания пользователя: вижу, что поле пустое, а в рамке отображается какое-то значение. Хотя, может быть я и не прав в этом. Surrogate писал(а): ойц!!! оказывается шаблон то лежит с кривым механизмом обмена данными с TheDoc! Нет, механизм не кривой, посмотрите внимательно - ведь все работает. Помещаем Общие данные - появляются свойства документа, редактируем - свойства документа редактируются, удаляем Общие данные и дропим их снова - отредактированные данные документа отображаются. Просто я использовал другой механизм изменения данных, чем Вы.Посмотрите на EventDrop Общих данных и Рамки и все станет понятным Кстати, хотел спросить по поводу Вашего механизма изменения данных. Я его не понял. Зачем нужна формула: =IF(User.ch=0,SETF(GetRef(TheDoc!User.dec),User.dec.Prompt),-1) Т.е. зачем вообще нужен User.ch. Ведь он всегда =0. Почему тогда просто нельзя использовать: SETF(GetRef(TheDoc!User.dec),User.dec.Prompt) И еще - если User.dec.Prompt=Prop.dec, то почему вообще нельзя использовать: SETF(GetRef(TheDoc!User.dec),Prop.dec) |
Автор: | Surrogate [ 06 авг 2015, 12:53 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
vin писал(а): Полей более 20 в моей практике более чем в 95-98% случаев пишем одних и тех же лиц подписантов на всех страницах, и даты тоже.… Неужели часто приходится повторять на каждой странице Имя листа? Если Да, то можно просто скопировать Имя станицы в редакторе данных и, вызывая на других страницах редактор - вставлять туда. А вот листов с одинаковым наименованием больше одного в документе почти в каждом проекте! В моем наборе элементов приведены наиболее распространенные. Но бывает экзотика, тогда или копипастить, или нужен механизм отслеживание нестандартных обозначений и занесение их в TheDoc. Здесь выложена урезанная версия, в той версии шаблона что я использую в работе есть такой функционал. vin писал(а): RoMMaN писал(а): реализовать прорисовку эмблемы предприятия в графе организации разработчкиа (к сожалению при частой работе на субподряде бывают казусы, когда организацию текстом прописали а вот про логотип забыли. было бы класно при прописании разработчика, чтобы подсовывалась в эту графу нужная эмблема). Пока не знаю как сделать - думаю.у одного лого квадратное, у другого прямоугольник. Где-то лого идет с надписью, что за контора, где-то это надо текстом писать. vin писал(а): У меня тоже не вводятся одни и те же значения, они автоматом берутся из документа при дропе. Однако на странице можно менять ВСЕ. это конечно хорошо, но когда у меня в документе 20 листов и более. делать это 20 раз на каждом листе, что-то не радует такая перспектива! Одно дело когда на разных листах, вводить наименования листов, и то хочется как-то минимизировать.А вот вводить заново vin писал(а): 1. Полей более 20. у нас в конторе очень часто в процессе меняется титул проекта. Было "Строительство сети связи ОАО «Одуванчик»", стало "Строительство сети связи ОАО «Одуванчик» (1 этап)".vin писал(а): ведь все работает. Помещаем Общие данные - появляются свойства документа, редактируем - свойства документа редактируются, удаляем Общие данные и дропим их снова - отредактированные данные документа отображаются. при моем механизме данные меняются сразу, во всех полях. Ничего не надо дропить снова. Кстати у меня ничего не обновляется после дропа мастера "Общие данные", только после дропа мастера "Рамка", дропать рамки на каждый лист в многостраничном документе на мой взгляд не лучшее решение с точки зрения удобства. Если помножить та то, что придется заново на странице По крайней мере у меня это работает так ! И еще большая просьба, когда будешь перезаливать исправленную версию убей в наборе темы ! Просто бесит, когда дропаешь мастер рамка оказывается с заливкой которую приходится убирать !!! макрос в сообщении #5141 vin писал(а): Т.е. зачем вообще нужен User.ch. user.ch - это рудимент, в моих ранних реализациях этот параметр должен был отслеживать дропался ли мастер аналог "Общие данные". От отслеживания я потом отказался, а формулу исправить забылvin писал(а): И еще - если User.dec.Prompt=Prop.dec, то почему вообще нельзя использовать: конечно можно и нужно использовать! это тоже рудимент, на ранней стадии у меня почему-то неполучилось использовать более простую форму записи сразу Prop. Поэтому пришлось вставлять это пятое колесо, также это было связано с user.ch.SETF(GetRef(TheDoc!User.dec),Prop.dec) Я посмотрел у тебя в мастере "Общие данные" нет типов данных фиксированный список и изменяемый список ! Тогда тебе можно было бы использовать механизм ввода с фукцией SETATREF 9rey в сообщении #6550 писал(а): Surrogate лично я использую эти списки, ведь удобнее пользователю выбрать свою фамилию из списка сотрудников отдела. Также ГИПов и т.п. Ведь они заранее известны
можно же через SETATREF: в Prop.Row_1 вписать SETATREF(TheDoc!User.ololo) тогда ячейки Prop.Row_1, TheDoc.User.ololo свяжутся |
Автор: | Евгени [ 06 авг 2015, 15:28 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
vin писал(а): Постарался убрать все недостатки, присущие ранее созданным рамкам. не совсем так. ввод данных сделан не очень удобно, если после изменения общих данных документа надо бросать на лист новую рамку. Возможно мы не знаем еще про какой-то нюанс ?Управлять данными рамок стало очень легко. Про то что у вас называется "Левая панель", у вас ее можно показывать или не показывать совсем. А по ГОСТ верхней части, где написано "Согласовано" быть не должно насколько я понимаю при использовании на листе основной надписи по форме 6. текст ГОСТ здесь |
Автор: | Surrogate [ 06 авг 2015, 15:58 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Евгени писал(а): Возможно мы не знаем еще про какой-то нюанс ? нет, тут нюансы исключены !vin писал(а): Просто я использовал другой механизм изменения данных, чем Вы. обновление происходит при дропе !!!
Посмотрите на EventDrop Общих данных и Рамки и все станет понятным |
Автор: | vin [ 06 авг 2015, 16:18 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Surrogate писал(а): Просто бесит, когда дропаешь мастер рамка оказывается с заливкой которую приходится убирать !!! макрос в сообщении #5141 Спасибо за подсказку по темам. Убрал из VSS темы так: Код: Sub Start() Dim shp As Visio.Shape Dim mst As Master Dim doc As Document For Each mst In ThisDocument.Masters For Each shp In mst.Shapes Alter shp Next Next End Sub Sub Alter(shp As Visio.Shape) Dim subshp As Shape shp.CellsSRC(visSectionObject, visRowLock, visLockThemeEffects).FormulaU = "1" 'Debug.Print shp.Name For Each subshp In shp.Shapes Alter subshp Next End Sub Surrogate, я понял, что очень важно, когда меняются данные сразу на ВСЕМ документе передавать их на страницы, поэтому пересмотрю механизм работы рамки с данными документа. Обязательно посмотрю работу со списками в Visio_document_edited. По поводу вставки логотипа - начал смотреть. Без макроса не обойтись, конечно. По поводу логотипа есть много моментов: 1. Нужно ли его хранение на уровне документа? Если да - то где хранить? Ведь картинка - это шейп, а не просто данные документа. Тогда нужно обязательно одну страницу отводить под Общие данные - где будет лежать шейп с картинкой. 2. Хранение на уровне листа - здесь проще. Шейп с наименование разработчика и картинкой должен объединяться в группу. Кратинка или текст могут становиться невидимыми. 3. Можно сделать небольшой мастер расположения картинки и текста. Если не трудно - пришлите несколько логотипов - побалуюсь. Добавляю файл c отключенными темами. |
Автор: | vin [ 06 авг 2015, 17:42 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Насчет 6 формы - не увидел, сделаю. А так же сделаю, чтобы Общие данные автоматом обновлялись на странице, если на странице не введено это поле. Вопрос: нужно ли сделать Наименование листа в Общих данных? |
Автор: | Гость [ 06 авг 2015, 17:45 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
RoMMaN писал(а): Возможность отображать разместить рамку горизонтально или вертикально. (иногда на А4 чтбы нормально уместилась схема ее удобнее рисовать в горизонтальном расположении) а смотреть на такую схему, придется голову параллельно полу держать…
|
Автор: | Surrogate [ 06 авг 2015, 18:00 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
vin писал(а): Вопрос: нужно ли сделать Наименование листа в Общих данных? ты ж сам писал vin писал(а): Наименование листа - индивидуально для каждой страницы. смысл устанавливать какое-то значение в общих данных, чтоб потом на каждом листе его все равно менять ?Гость писал(а): а смотреть на такую схему, придется голову параллельно полу держать… LOL !как то раз меня уговорили делать листы А3 и уменьшением на 70% и поворотом, чтоб вписать на лист А4. Вот я напарился голову так держать потом еще напарился с печатью этого безобразия на лист А4 |
Автор: | Евгени [ 07 авг 2015, 11:51 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Surrogate™ вечно ты людям голову морочишь, то бишь преумножаешь количество постов на форуме Тебе же vin писал ранее, что для него VBA не проблема. А ты ему голову своим shapesheet'ом забивал, или ты забыл про одну долгоиграющую тему Выпадающий список ComboBox на UserForm (азы ВБА)? Вроде было ясно, что vin не станет такого городить egoist в сообщении #p1815 писал(а): дело в том что на юзерформе 980 текстбоксов и в каждом надо что то вписать PS Ты как всегда, что-то да забудешь - комбобокс Стадия не работает, если чё
|
Автор: | Surrogate [ 07 авг 2015, 12:31 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
Евгени писал(а): или ты забыл про одну долгоиграющую тему Выпадающий список ComboBox на UserForm (азы ВБА) ? за это я таки не забыл, Surrogate в сообщении #7416 писал(а): в новой (незавершенной, возможно коммерческой) версии шаблона (файл vst) я сделал ленточный интерфейс, управление данными на уровне данных сделал на VBA используя пользовательскую форму. Все работает только в файлах созданных на базе этого шаблона, нет возможности в любой файл добавлять нужные свойства. VBA не позволяет работать на уровне приложения. Неизвестно когда, я допилю всю задуманную автоматизацию для безошибочной работы макросов (работа со спецификацией и автоматизированной ведомостью рабочих чертежей). Оффтоп:
за количество тем ви таки не правы́ - за неделю всего две активных темы
|
Автор: | vin [ 07 авг 2015, 12:51 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
1. Изменен алгоритм работы с данными Документа в Рамке. Если вводится значение в Рамке – используется это значение, если значение пусто – данные Документа. 2. Устранена ошибка отображения левой панели. В Форме 6 теперь верхняя часть рамки теперь не показывается. 3. Наименование листа теперь введено в данные Документа, чтобы можно было использовать часто повторяющееся значение на многих листах. Вот - вроде бы сделал то, о чем просили. Теперь и волки сыты, и овцы целы. |
Автор: | god-udach [ 07 авг 2015, 13:52 ] |
Заголовок сообщения: | Re: ГОСТ Р 21.1101-2013 принимайте! |
vin, позволю себе дать вам маленький совет: выкладывать самую актуальную версию шаблона в корневое сообщение ветки ! Чтоб пользователям не пришлось читать уже немаленькую переписку и качать промежуточные версии. |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |