All Forums
 Категория Visio
 Форум Вопросы и ответы
 расчет длин линий в Visio
Author Previous Topic Topic Next Topic  

Tatochka

Russia
7 Posts

Posted - 04/06/2003 :  09:16:44
Прошу - помогите пожалуйста. Возникла необходимость расчитать длины линий в зависимости от заданной. То есть - есть габаритные размер здания (задан на размерной линии), нужно автоматически высчитывать значения на других размерных линиях в зависимости от габаритного. ( Видела что то подобное, но ту библиотеку мне не дали :( В подобном примере - вычитывались длины сетевых комуникаций в зависимости от выставленного расстояния между зданиями)

Tumanov

Russia
1198 Posts

Posted - 04/06/2003 :  13:18:43
Скажи, кто не дал - вдруг когда-нибудь встретимся...
А вообще-то мы сами лучше сделаем :) Вот только надо поточнее разобраться чего ты хочешь.
1. Знакома ли ты с трафаретом Dimensioning - Engineering.vss? Элементы, которые там есть, делают нечто похожее, но более строго. Например, Horizontal. Это размерная стрелка, которая показывает значение в зависимости от того, куда отодвинули ее конец, то есть ИЗМЕРЯЕТ. Настраивается куча параметров: точность измерения, единицы измерения и т.д. Можно повернуть на нужный угол.
Отличие - Коэффициентами являются масштаб рисунка и масштаб страницы, а не текст некого шейпа. Да это и логичнее - просто все рисуется в масштабе, а размеры проставляются автоматически.
Предположим это не годится. Тогда
2. Вроде бы получается, что ты хочешь иметь: а) некую постоянную конфигурацию на рисунке; б) менять какой-то условный масштаб, не трогая свойств рисунка и страницы, а задавая его путем ввода текста (числа) в один из шейпов; в) пересчитывать текст на нескольких других шейпах (стрелках) в зависимости от этого условного масштаба.
Это тоже можно сделать (хотя и более коряво). Причем будет несколько проще, если этот условный масштаб задавать на на шейпе (значение длины на габаритном размере здания), а на чем-то более основательном, например, как свойство страницы (понятно почему - не надо будет выискивать шейп, к которому нужно привязываться). Из шейпа сослаться на страницу проще, чем на другой шейп.
3. Если захочешь сделать сама, то принцип следующий: В Visio каждому шейпу соответствует шейп-лист - это что-то вроде Excel'овского листа, где все параметры описываются с помощью формул или значений. Значит отображаемый на линии текст всегда можно связать с длиной линии и некоторым коэффициентом. Этот коэффициент проще всего вычислить из масштабов рисунка и страницы (способ 1) или из параметров другого шейпа (который надо будет еще найти - способ 2). В ячейку загоняются нужные формулы, коэффициенты и ссылки, а дальше все будет вычисляться автоматически.
Go to Top of Page

Tatochka

Russia
7 Posts

Posted - 04/06/2003 :  16:48:55

С трафаретом Dimensioning - Engineering.vss я, к своему стыду не знакома. Поиск на своем компе - ничего не дал. Видимо это как раз то, что мне и не дали ( коллеги по работе иногда излишне оригинальны )
Значит поищу в инете.
но очень хотелось бы подобное сделать самой ( если хватит силенок. потому что в программировании VBA - слаба - могу вывести простейшее окошко, но чтобы взять именно то свойство, которое хочу - приходится попотеть).
Не обязательно чтобы это был текст шейпа, с этим я согласная ( просто с первого взгляда показалось что именно это и легче сделать)
с шейп-листами, благодаря Вашим статьям - я знакома
но еще не настолько хорошо, чтобы выделить масштаб страницы.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/06/2003 :  18:51:53
Чтобы не искать в инете можно написать письмо на мой адрес ttt@post.rzn.ru, я вышлю (122 Kb в архиве), без этого я адрес не знаю.
А учиться можно и разбирая существующие примеры, рассматривая, как они сделаны (правда как раз этот элемент сделан довольно сложно - очень уж много туда всего втолкнули, зато красиво работает).
Go to Top of Page

Tatochka

Russia
7 Posts

Posted - 04/07/2003 :  16:31:34
трафарет я нашла на работе - дома у меня Визио2000,а на работе - 2002 ( зато дома есть выход в Инет,а на работе - нету :( )
еще не разобралась - где в элементе ссылка на масшатб, но это не совсем то что нужно. Хотелось бы облегченный вариант - задал масштаб, а она - раз и посчитала все размеры ( приблизительно - если закупать кабель - то точность до метра) и насколько я заметила - (может пропустила) длин линий нет (размерные линии на габариты).
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/08/2003 :  11:50:34
Я так предполагал, что размерные линии уже дадут всю нужную информацию. А Вы хотите просуммировать все отрезки ломанной линии и выразить их единственным числом? Или просто сменить конфигурацию элемента, чтобы он был не из трех черточек, а из одной?
В первом случае нужно действительно строить свой элемент, в готовых наборах таких я не видел. Кстати, на плане вы ведь увидите только горизонтальные изгибы кабеля, а как добавлять те куски, которые имеют вертикальное направление и на плане сворачиваются в точку?
Еще вариант - Вам нужна всего одно число - суммарное значение длин всех кабелей, где бы ним были расположены их куски. Это уже третья задача, которая, кстати, должна решаться проще всего - программно выбрать все шейпы данного типа и сложить их длины.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)