Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 23 окт 2019, 19:39

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !
Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 12:42 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Tumanov писал(а):
сделать шаблон документа, в котором все уже будет подготовлено как надо?
это хорошо для вновь создаваемых документов.
Подозреваю, что тут просто необходима возможность добавлять такое волшебное содержимое в любой существующий документ :shock:
именно так
Пробовал записать макрос на нижепоказанные действия, но безрезультатно


Вложения:
copy masters.gif
copy masters.gif [ 197.16 Кб | Просмотров: 229 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 12:45 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Цитата:
Подозреваю, что тут просто необходима возможность добавлять такое волшебное содержимое в любой существующий документ

Порочная практика.
Заклинания имеют свойство перепутываться.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 12:51 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Цитата:
а скопировать образцы из vss в документ с помощью макроса как-то можно?

Я же говорю - образец есть мастер. Только его не видно. Но он есть.
Такие команды как
Debug.Print ActiveDocument.Masters.Count
Debug.Print ActiveDocument.Masters(1).Name
будут работать и с невидимыми мастерами.
Значит и копировать их макросом можно обычным способом. (В смысле - из VSS в Document Stencil)
Обратите внимание на свойство .PatternFlags


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 13:52 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3705
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat, вы точно попробовали предложенные вам ранее варианты ?
1. сделать паттерн видимым в списке
Surrogate в сообщении #3922 писал(а):
содержимое паттерна должно быть сгруппировано ! новый паттерн появится в конце списка паттернов.
2. добавить паттерн в целевой документ, перетащив фигуру в целевой документ
Tumanov писал(а):
Соответственно, потом, когда шейп из VSS будет перенесен на страницу рисунка, то он перебросит и мастер-шейп образца из VSS в Document Stencil. После этого образец должен появиться среди доступных образцов в Document Explorer.
3. о схожей природе образца заливки и мастера
Tumanov писал(а):
Значит и копировать их макросом можно обычным способом.
Код:
Dim d1 As Document, d2 As Document
Set d1 = Documents(1)
Set d2 = Documents(2)
d1.Masters.Drop d2.Masters.ItemFromID(2), 70, 40

Геннадий, а что там за флаг такой ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 14:21 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Определят, что это за паттерн и некоторые его свойства. И, как я понял, делает невидимым.
Цитата:
Master.PatternFlags Property
Determines whether a master behaves as a custom pattern. Read/write.
Version Information
Version Added: Visio 5.0

expression.PatternFlags
Return Value
Integer
expression A variable that represents a Master object.
Remarks
Microsoft Office Visio allows a master to be used as a custom line pattern, line end, or fill pattern.
The PatternFlags property determines whether you can use a master as a pattern (non-zero); whether it is a line, fill, or line end pattern; and which pattern mode to use when applying it to shapes.
If you can use the PatternFlags property as a pattern (non-zero), the property can include a combination of the following bits.
Constant Value Description
visMasIsLinePat &H1 Line pattern
visMasIsLineEnd &H2 Line end pattern
visMasIsFillPat &H4 Fill pattern

Это я только фрагмент скопировал. В справке больше значений описано.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 14:34 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat, вы точно попробовали предложенные вам ранее варианты ?
1. сделать паттерн видимым в списке
Surrogate в сообщении #3922 писал(а):
содержимое паттерна должно быть сгруппировано ! новый паттерн появится в конце списка паттернов.
2. добавить паттерн в целевой документ, перетащив фигуру в целевой документ
Tumanov писал(а):
Соответственно, потом, когда шейп из VSS будет перенесен на страницу рисунка, то он перебросит и мастер-шейп образца из VSS в Document Stencil. После этого образец должен появиться среди доступных образцов в Document Explorer.
3. о схожей природе образца заливки и мастера
Tumanov писал(а):
Значит и копировать их макросом можно обычным способом.
Код:
Dim d1 As Document, d2 As Document
Set d1 = Documents(1)
Set d2 = Documents(2)
d1.Masters.Drop d2.Masters.ItemFromID(2), 70, 40

Геннадий, а что там за флаг такой ?
Все паттерны видимые в проводнике vss. Я не могу перебросить шейп, потому что его еще нет в природе, есть только его паттерн. С переносом мусорного шейпа где будут храниться все возможные вариации фигур работает, но хотелось бы по-умному.
Код:
Dim d1 As Document, d2 As Document
Set d1 = Documents.Item("v400.vss")
Set d2 = Documents.Item("Документ Microsoft Visio.vsdx")

d1.Masters.Drop d2.Masters.ItemFromID(2), 70, 40

или так
Код:
Dim d1 As Document, d2 As Document
Set d1 = Documents.Item("C:\v400.vss")
Set d2 = Documents.Item("C:\Документ Microsoft Visio.vsdx")

d1.Masters.Drop d2.Masters.ItemFromID(2), 70, 40


Вложения:
Screenshot_9.png
Screenshot_9.png [ 4.09 Кб | Просмотров: 222 ]


Последний раз редактировалось TheHeat 30 апр 2019, 14:44, всего редактировалось 2 раз(а).
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 14:35 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Цитата:
а скопировать образцы из vss в документ с помощью макроса как-то можно?

Я же говорю - образец есть мастер. Только его не видно. Но он есть.
Такие команды как
Debug.Print ActiveDocument.Masters.Count
Debug.Print ActiveDocument.Masters(1).Name
будут работать и с невидимыми мастерами.
Значит и копировать их макросом можно обычным способом. (В смысле - из VSS в Document Stencil)
Обратите внимание на свойство .PatternFlags

Можно пример кода?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 14:55 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3705
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
Я не могу перебросить шейп, потому что его еще нет в природе, есть только его паттерн
что мешает иметь в мастере фигуру использующую данный паттерн ? кинули ее на лист целевого документа и тут же удалили. паттерн должен добавиться. и не надо паттерны другими способами пытаться перенести в документ :mrgreen:
TheHeat писал(а):
но хотелось бы по-умному.
я только заменил на свои имена документов
Изображение
вроде все работает. хотя я не понимаю зачем это надо ?
TheHeat писал(а):
С переносом мусорного шейпа
:wall:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 15:09 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Или вот так с фильтрацией
Код:
Sub ttt()
    Set Doc1 = ActiveDocument
    Set Doc2 = Documents("testStencil.vss")
    Debug.Print Doc2.Masters.Count
    For i = 1 To Doc1.Masters.Count
        If Doc1.Masters(i).PatternFlags <> 0 Then
            Debug.Print Doc1.Masters(i).Name
            Set m = Doc1.Masters(i)
            Doc2.Masters.Paste m
        End If
    Next
    Debug.Print Doc2.Masters.Count
End Sub

Правда, это наоборот - из документа в трафарет :) Но принцип тот же.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 15:13 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Или вот так с фильтрацией
Код:
Sub ttt()
    Set Doc1 = ActiveDocument
    Set Doc2 = Documents("testStencil.vss")
    Debug.Print Doc2.Masters.Count
    For i = 1 To Doc1.Masters.Count
        If Doc1.Masters(i).PatternFlags <> 0 Then
            Debug.Print Doc1.Masters(i).Name
            Set m = Doc1.Masters(i)
            Doc2.Masters.Paste m
        End If
    Next
    Debug.Print Doc2.Masters.Count
End Sub

Правда, это наоборот - из документа в трафарет :) Но принцип тот же.

Наоборот какраз работает. А вот если поменять документы местами то ошибка. Surrogate с вашим тоже самое


Вложения:
Screenshot_11.png
Screenshot_11.png [ 6.08 Кб | Просмотров: 193 ]


Последний раз редактировалось TheHeat 30 апр 2019, 15:44, всего редактировалось 1 раз.
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 15:30 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Цитата:
Наоборот какраз работает. А вот если поменять документы местами то ошибка

О, как!
Сейчас посмотрю :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 16:29 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Посмотрел.
Извиняюсь :(
То, что я написал "Или вот так с фильтрацией" и далее, является полной чушью.
Получается, самое надежное - пользоваться "технологическим" шейпом с примененными паттернами.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 16:52 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Заметил, что у меня много фигур в vss с одинаковым ID. Может поэтому не работает


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 16:53 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3705
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
что у меня много фигур в vss с одинаковым ID
как вам удалось обнаружить это ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 17:04 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
что у меня много фигур в vss с одинаковым ID
как вам удалось обнаружить это ?

захожу в редактор шейпа внутри vss и вижу ID. Почти у всех одинаковый.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 17:08 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3705
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
захожу в редактор шейпа внутри vss и вижу ID. Почти у всех одинаковый
ви таки можите занести в студию нотариально заверенный скриншот ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 17:27 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
захожу в редактор шейпа внутри vss и вижу ID. Почти у всех одинаковый
ви таки можите занести в студию нотариально заверенный скриншот ?


Вложения:
Screenshot_15.png
Screenshot_15.png [ 53.09 Кб | Просмотров: 132 ]
Screenshot_14.png
Screenshot_14.png [ 28.6 Кб | Просмотров: 134 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 30 апр 2019, 17:38 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3705
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
я думал у вас в xml-редакторе у всех одинаковый ID, а так все в норме :D
Дополнено позднее: нашел ссылку на похожее обсуждение
Гость в сообщении #12556 писал(а):
который по традиции имеет имя Sheet.5, этот шейп внутри мастера может содержать в себе вложенные шейпы (т.е. корневой шейп является группой). корневой шейп будет иметь имя Sheet.5 даже если имеет всего один вложенный шейп


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 08 май 2019, 17:21 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
TheHeat писал(а):
TheHeat писал(а):
Пока в голову приходит только создать мусорный мастер из группы всех возможных шейпов с заливками и концами и держать его всегда в vss.

так и есть. Нужно вставить в новый документ хотя бы одну фигуру с используемым узором или концом линии, только тогда они появляются в Проводнике и могут быть использованы. Ну чо, придется делать мусорный мастер-шейп со всеми вариациями и первым делом вставлять в док его. После удаления мусорного мастер-шейпа образцы не пропадают кстати.

Периодически еще одна проблема появляется, которая лечится перезапуском документа. Ширина текстовых полей сужается до 1-2 пунктов (наглаз) и все символы сливаются в один.
Вот так выглядят блоки с надписями:
FIND TEXT
DUPLICATES
и
SET DOC SETTINGS
Не сжались они, только потому, что фигура защищена была от изменения размера (я думаю). Каретка в нижнем блоке вообще не дивгается, будто там нет символов. Что интересно, при использовании vsdx не все тексты портятся.

upd. Оказывается дело в Style = 1 (жирный шрифт), любой другой стиль отображается корректно

Дело оказалось в глюке Visio при неявном задавании шрифта шейпа. После того как прописал THEMEGUARD(FONT("Arial Narrow")) глюки исчезли


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание сложных фигур с особыми параметрами масштабирования
СообщениеДобавлено: 08 май 2019, 17:27 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1488
Очков репутации: 100598

Добавить очки репутацииУменьшить очки репутации
Но нужно помнить, что функция Font() появилась только в Visio 2013.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB