All Forums
 Категория Visio
 Форум Вопросы и ответы
 смартшейп по размерам - как создать ?
Next Page
Author Previous Topic Topic Next Topic

bdfy

Belarus
267 Posts

Posted - 10/07/2008 :  15:27:49
[URL=http://img407.imageshack.us/my.php?image=clipboard01ph3.gif][/URL]
нужно нарисовать в визио такую вот фигуру по размерам. размеры все заданы (в екселе например). размеры наненести.
как нанести размеры в принципе понятно
http://visio.artberg.ru/biblio/st003.htm
как задать размеры каждого элемента в отдельности вродебы тоже понятно. а вот как сделать чтобы они при задании размеров не разьезжались и т.п. ? может есть опыт у кого рисования подобных сложных фигур ?

bdfy

Belarus
267 Posts

Posted - 10/07/2008 :  15:35:19
http://img407.imageshack.us/my.php?image=clipboard01ph3.gif
чет не прошел рисунок с тегами (( и правиться месага не хочет.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/07/2008 :  16:22:05
Тут наверно два варианта:
1. Нарисовать все одним шейпом (линия с множеством изгибов). Тогда она в принципе разъехаться не сможет, потому как она одна.
2. Разделить компоненты на линии, которые коннектятся, и линии, к которым коннектятся. Двигать основные линии, а коннекторы за ними потащатся. Разъезжается вроде только в том случае, когда коннектор двигаешь.

Кажется в первом сообщении ссылка на рисунок не проходит. А в следующие вставляется.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/09/2008 :  18:55:44
quote:
2. Разделить компоненты на линии, которые коннектятся, и линии, к которым коннектятся. Двигать основные линии, а коннекторы за ними потащатся. Разъезжается вроде только в том случае, когда коннектор двигаешь.

хм... а как законектить правильно ? фигура стала чуть попроще.
как оно должно быть вроде понятно - как сделать нет.
вот например набросок. все линии надо склеить между собой. сбоку приклеить еще контур. линии что пунктирные - не печатать просто. но как это сделать ? connection tool точек не показывает. создать их не выходит. я что не так делаю ?
http://img186.imageshack.us/my.php?image=clipboard01tn7.gif
сам файл
http://ofp.gamepark.cz/_hosted/lib4145/vedro/paz.zip

Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/09/2008 :  20:02:40
Включите в Tools / Snap & Glue / Glue To галочку в Shape vertices
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/09/2008 :  20:37:59
спасибо. то что нужно.
см. рисунок
сплошные линии ведут себя как положено. за все средние перемычки можно фигуру потягать - изменяя размеры. но нужно еще высоту иметь настраиваемую. ставлю линию как на скрине - она связывает две линии. т.е т.е приклеивается к толстым линиям. а нужно наоборот - чтобы толстые линии приклеились к этой средней линии. чтобы ее (среднюю линии конектор можно было таскать меняя рисунок). как это сделать ?
http://img258.imageshack.us/my.php?image=clipboard02vs9.gif
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/10/2008 :  15:37:30
Нужно ведь вроде не таскать, а управлять расположением...
Вариант - отсчитывать расположение одной линии относительно другой.
Вводим свойство "дельта H".
Координату PinY одного шейпа вычисляем через второй
Sheet.2!PinY+Prop.dH
Теперь при изменении значения в Prop.dH одна линия будет отпрыгивать от другой на нужное расстояние.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/10/2008 :  22:03:15
quote:
Нужно ведь вроде не таскать, а управлять расположением...

да все верно. за наводку спасибо. буду пробовать.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/15/2008 :  21:08:51
все таки не пойму я как связать две фигуры через формулу. обозвал одну линию stator (через Format-Special).
открываю шейпшит другой линии и пытаюсь в BeginY записать формулу простую =stator!BeginY+5 - error in formula. я что не так делаю ?
проблема видимо вот в чем:
открывая shapesheet я вижу совсем другое имя фигуры (старое по ошибке первый раз внесенное), а не вбитое в поле name новое. почему обновлятся не хочет не пойму. переоткрытие файла не помогло...

Edited by - bdfy on 10/15/2008 21:14:59
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/16/2008 :  16:55:22
Вообще, в шейп-листе как-то больше принято ссылаться через ID. Например, Shape.3!BeginY+5.
А зачем Вам там имена понадобились?
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/16/2008 :  19:30:37
люблю когда вещи называются своими именами а не непонятным айди который может слететь при копировании. ошибок так имхо должно быть по идее меньше :)
выкладываю документ. смотрите нижнюю линию. называется вроде stator. в свойствах же bsh
http://ofp.gamepark.cz/_hosted/lib4145/vedro/пазы.zip
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/17/2008 :  15:34:17
Ошибка проистекает из того, что шейпы в Visio имеют не одно имя. В данном случае конфликтуют имена Name и NameU.
Name - это имя локализованное. Пользовательский интерфейс позволяет работать именно с ним. При локализации приложения, это имя обычно переводится. То есть в разных странах оно будет иметь разное значение.
NameU - универсальное имя. Оно не изменяется при локализации и через него ведутся все ссылки в формулах шейп-листа. NameU через пользовательский интерфейс не доступно.
У вновь созданного шейпа имени нет, есть только ID. Ссылки на такой шейп идут через имя NameID. Это сочетание Sheet и ID, например, Sheet.5.
При первом присвоении имени через пользовательский интерфейс оно пишется и в Name, и в NameU. При дальнейшем переименовании NameU уже не изменяется, изменяется только Name. Вот это у Вас и происходит - Вы меняете локализованное имя, а в ссылках остается универсальное.
Исправить универсальное имя можно, например, программно. Вот такой простейший макрос
Sub ttt()
ActiveWindow.Selection(1).NameU = "first"
End Sub

присвоит ему значение "first".
Можно попробовать более хлопотный вариант, но без макросов. Сохранить документ в XML, открыть его в текстовом редакторе, найти в нем все упоминания требуемого имени, включая ссылки, и подправить их вручную. Это будут примерно такие фрагменты:
NameU='second' Name='second'
<Width F='second!Width'>
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/21/2008 :  16:29:59
спасибо. помогло. все почти получилось. но только почти :(
1. сложную фигуру с кривыми линиями нарисовать как то никак... как управится с разрывной дугой я не понимаю.
http://img510.imageshack.us/my.php?image=rotor1wg3.jpg
файлик здесь.
http://ofp.gamepark.cz/_hosted/lib4145/vedro/rotor.rar
2. не выходит сделать маленький выносной размер. с размером сбоку. что-то не туда всегда вяжется...
+текст на выноске должен смотреть всегда в одну сторону вне зависимости от направления. т.е если повернуть на 90 град. вправо фигуру надо перевернуть и сместить отн. линии текст. но как это сделать в завис. от угла ? линия коннектор к которой текст вяжется не имеет угла... (( приходится несколько стенсилов держать для разл. поворотов или ручками подправлять.



Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/21/2008 :  19:07:14
1. Можно попробовать накрыть дугу белым непрозрачным прямоугольником. Получится имитация разрыва в дуге.
2. Даже если нет угла, есть координаты начала и конца линии. По ним угол вполне можно вычислить. Формулы в Visio могут быть достаточно сложными.
Для промежуточных расчетов можно использовать ячейки секции scratch.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/21/2008 :  19:38:41
quote:
Даже если нет угла, есть координаты начала и конца линии.

в том то и дело что нет. у меня при вращении фигуры изменяется только endX, pinX - т.е размеры идут относительно группы (т.е выносной линии полностью) в которой находится фигура (линия с размером). а как получить параметры группы из смартшейпа ее члена ?
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/21/2008 :  19:55:53
quote:
1. Можно попробовать накрыть дугу белым непрозрачным прямоугольником. Получится имитация разрыва в дуге.

идея хорошая. только снизу разрыв должен быть. если рисую прямоугольник разными линиями - он не замыкается и не закрашивается.
ибо "Closed shapes can have fills and shadows. Open shapes can have shadows but no fill."
делать отдельный привязанный квадрат с бесцветными сторонами не хочется...
Go to Top of Page
Previous Topic Topic Next Topic  
Next Page
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)