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

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 12:03

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


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


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

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 09:55 
Мне нужно забрать геометрию коннектора с мастером "IDEF0 connector"(вроде бы стандартный шейп на нотации Idef0), визио 2013.
У самого коннектора нет секции геометрия, поэтому пытаюсь забрать у его подшейпов. Но по коду выходит, что этой секции нет ни у одного из них, хотя увидеть эту секцию возможно, также как и изменения в ней.
Подскажите как это можно сделать?


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:00 
Да, забыл добавить, при изменении стрелки в макросе, ни слова нет о секции геометрии.

Код:
Sub Macro2()

    'Enable diagram services
    Dim DiagramServices As Integer
    DiagramServices = ActiveDocument.DiagramServicesEnabled
    ActiveDocument.DiagramServicesEnabled = visServiceVersion140 + visServiceVersion150

    Dim UndoScopeID1 As Long
    UndoScopeID1 = Application.BeginUndoScope("Изменить элемент управления")
    Application.ActiveWindow.Page.Shapes.ItemFromID(23).CellsSRC(visSectionControls, 0, visCtlY).FormulaU = "USERUI(1,_UCON_Y1(Scratch.A1,Scratch.B1,Scratch.D1,BeginY,EndY,Width,Controls.Row_2.Y,BegTrigger,EndTrigger,0),Height/2+-10.000000066 mm)"
    Application.EndUndoScope UndoScopeID1, True

    Dim UndoScopeID2 As Long
    UndoScopeID2 = Application.BeginUndoScope("Изменить элемент управления")
    Application.ActiveWindow.Page.Shapes.ItemFromID(23).CellsSRC(visSectionControls, 0, visCtlY).FormulaU = "USERUI(1,_UCON_Y1(Scratch.A1,Scratch.B1,Scratch.D1,BeginY,EndY,Width,Controls.Row_2.Y,BegTrigger,EndTrigger,0),Height/2+14.999999972 mm)"
    Application.EndUndoScope UndoScopeID2, True

    'Restore diagram services
    ActiveDocument.DiagramServicesEnabled = DiagramServices

End Sub


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:02 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Ну как это нет...
Коннектор является группой из трех шейпов. У среднего (как показывает Drawing Explorer) есть геометрия.
----------
Извиняюсь, не понял всех тонкостей вопроса :)
Сейчас уточню.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:05 
Да, в том то и дело, что она есть, но забрать её я не могу. Для остальных коннекторов подходит.
Подскажете код, как в цикле забрать геометрию?


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:11 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
что именно ты хочешь забрать ?

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:12 
Значения Х, Y из секции геометрия у коннектора состоящего из трёх шейпов.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:20 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Ну вот пара строк геометрии
Код:
Sub ttt()
    Dim shp As Visio.Shape
    Set shp = ActivePage.Shapes(1).Shapes(2)
    Debug.Print shp.CellsSRC(visSectionFirstComponent + 0, visRowVertex + 0, visX).ResultIU, shp.CellsSRC(visSectionFirstComponent + 0, visRowVertex + 0, visY).ResultIU
    Debug.Print shp.CellsSRC(visSectionFirstComponent + 0, visRowVertex + 1, visX).ResultIU, shp.CellsSRC(visSectionFirstComponent + 0, visRowVertex + 1, visY).ResultIU
End Sub

То есть со вторым подшейпом Вы можете работать точно так же, как и с обычным коннектором.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:24 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Surrogate писал(а):
Значения Х, Y из секции геометрия у коннектора состоящего из трёх шейпов.
дык у каждого же шейпа своя геометрия :)
я не знаю что это за коннектор такой. у некоторых шейпов бывает несколько секций геометрии. вот как их пробежать циклом еще вопрос (лично для меня)

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:29 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
У двух других подшейпов (наконечники) несколько секций геометрии. А у основного - одна.


Вложения:
conn.png
conn.png [ 18.31 Кб | Просмотров: 682 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:36 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Tumanov писал(а):
У двух других подшейпов (наконечники) несколько секций геометрии.
ага ! чутье меня не подвело
Tumanov писал(а):
Коннектор является группой из трех шейпов.
это на листе, а master explorer аж 4 шейпа
Изображение
куда девался 4 шейп при дропе ???

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:39 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Surrogate писал(а):
у некоторых шейпов бывает несколько секций геометрии. вот как их пробежать циклом еще вопрос (лично для меня)
нагуглил, есть свойсво GeometryCount
Macro rel to abs and reverese formulas in Geometry Section

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:47 
Я всех дезинформировал! Просто ступил в цикле и пробегался не по подшейпам а по самому шейпу 3 раза. Изображение
Кстати, у основного шейпа нету секции геометрия, у подшейпов по одной на каждого.
В общем спасибо, задача решена.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 11:54 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
...у подшейпов по одной на каждого.

Это не совсем точно. Я видел две секции у наконечника. Скорее всего геометрия наконечников может существенно изменяться. Поэтому точнее было бы сказать - "у подшейпов - одна или несколько".


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 12:07 
Хм, не рассматривал наконечники подробно. Интересно если так, но мне в любом случае нужен не наконечник, а "тело" стрелки.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 12:25 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Bill17 писал(а):
у основного шейпа нету секции геометрия
основной шейп это же групповой шейп, у них по умолчанию нет геометрии. при желании конечно можно добавить ее.

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 12:31 
Теперь я знаю, а так это было не очень очевидно. Я не сразу понял, что проблема в том, что геометрии оказывается нету.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Получить геометрию у IDEF0 коннектора
СообщениеДобавлено: 22 июл 2016, 12:50 
Не в сети
Content manager
Content manager
Аватара пользователя

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

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

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



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

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


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

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