Author |
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 |
|
Tumanov
Russia
1198 Posts |
Posted - 10/07/2008 : 16:22:05
|
Тут наверно два варианта: 1. Нарисовать все одним шейпом (линия с множеством изгибов). Тогда она в принципе разъехаться не сможет, потому как она одна. 2. Разделить компоненты на линии, которые коннектятся, и линии, к которым коннектятся. Двигать основные линии, а коннекторы за ними потащатся. Разъезжается вроде только в том случае, когда коннектор двигаешь.
Кажется в первом сообщении ссылка на рисунок не проходит. А в следующие вставляется. |
|
|
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
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/09/2008 : 20:02:40
|
Включите в Tools / Snap & Glue / Glue To галочку в Shape vertices |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/09/2008 : 20:37:59
|
спасибо. то что нужно. см. рисунок сплошные линии ведут себя как положено. за все средние перемычки можно фигуру потягать - изменяя размеры. но нужно еще высоту иметь настраиваемую. ставлю линию как на скрине - она связывает две линии. т.е т.е приклеивается к толстым линиям. а нужно наоборот - чтобы толстые линии приклеились к этой средней линии. чтобы ее (среднюю линии конектор можно было таскать меняя рисунок). как это сделать ? http://img258.imageshack.us/my.php?image=clipboard02vs9.gif |
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/10/2008 : 15:37:30
|
Нужно ведь вроде не таскать, а управлять расположением... Вариант - отсчитывать расположение одной линии относительно другой. Вводим свойство "дельта H". Координату PinY одного шейпа вычисляем через второй Sheet.2!PinY+Prop.dH Теперь при изменении значения в Prop.dH одна линия будет отпрыгивать от другой на нужное расстояние. |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/10/2008 : 22:03:15
|
quote: Нужно ведь вроде не таскать, а управлять расположением...
да все верно. за наводку спасибо. буду пробовать. |
|
|
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 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/16/2008 : 16:55:22
|
Вообще, в шейп-листе как-то больше принято ссылаться через ID. Например, Shape.3!BeginY+5. А зачем Вам там имена понадобились? |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/16/2008 : 19:30:37
|
люблю когда вещи называются своими именами а не непонятным айди который может слететь при копировании. ошибок так имхо должно быть по идее меньше :) выкладываю документ. смотрите нижнюю линию. называется вроде stator. в свойствах же bsh http://ofp.gamepark.cz/_hosted/lib4145/vedro/пазы.zip |
|
|
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'> |
|
|
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 град. вправо фигуру надо перевернуть и сместить отн. линии текст. но как это сделать в завис. от угла ? линия коннектор к которой текст вяжется не имеет угла... (( приходится несколько стенсилов держать для разл. поворотов или ручками подправлять.
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/21/2008 : 19:07:14
|
1. Можно попробовать накрыть дугу белым непрозрачным прямоугольником. Получится имитация разрыва в дуге. 2. Даже если нет угла, есть координаты начала и конца линии. По ним угол вполне можно вычислить. Формулы в Visio могут быть достаточно сложными. Для промежуточных расчетов можно использовать ячейки секции scratch. |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/21/2008 : 19:38:41
|
quote: Даже если нет угла, есть координаты начала и конца линии.
в том то и дело что нет. у меня при вращении фигуры изменяется только endX, pinX - т.е размеры идут относительно группы (т.е выносной линии полностью) в которой находится фигура (линия с размером). а как получить параметры группы из смартшейпа ее члена ? |
|
|
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." делать отдельный привязанный квадрат с бесцветными сторонами не хочется...
|
|
|
Topic |
|