Author |
Topic |
|
bdfy
Belarus
267 Posts |
Posted - 10/03/2008 : 22:02:16
|
Нужно тут векторную диаграмму сделать. десяток векторов на одной плоскости. данные имя\угол\модуль в екселе есть. в визио импортировал. вектора располагать как пробовал : - забивая в EndX EndY формулы координат через длинную и Angle. EndX=BegX+Prop._VisDM_value*COS(Prop._VisDM_angle)*0.1
коорд. начала хотелось бы зафиксировать одинаковые для все векторов. [100,100] например. только что бы я не делал они меняются при перетаскивании шаблона мышкой из набора на рабочую область. Как это оформить можно ? как заставить фигуру при выставлении на поле сразу прыгать в нужную точку ? |
|
Tumanov
Russia
1198 Posts |
Posted - 10/04/2008 : 05:33:00
|
Используйте =Guard(100 mm) Это защищает ячейку от перетаскиваний. |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/04/2008 : 08:59:43
|
уже пробовал протекшн сделать координатам. да уже помещенную на лист фигуру перемещать становится невозможно. но как сместить все новые в одну точку ? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/04/2008 : 15:47:11
|
Пропишите в ячейку EventDrop формулу =SETF(GetRef(BeginX),"100 mm")+SETF(GetRef(BeginY),"100 mm") |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/05/2008 : 16:15:35
|
тоже на работает. чтобы я не вбивал в поле EndX EndY - неизбежно формулы затираются как только я вытаскиваю фигуру на рабочую область. |
Edited by - bdfy on 10/05/2008 16:28:00 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/05/2008 : 16:19:24
|
Не работает что? |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/05/2008 : 16:39:52
|
есть 12 векторов. заданы они таблично - название, реальная часть (X), мнимая часть (Y). надо их построить на плоскости. по логике вещей надо BegX, BegY вбить постоянные для всех, EndX EndY считать - EndX=BegX+Y*scale вроде все просто. но чтобы я не делал как только я стенсил вытаскиваю из шаблона на рабочую область, вместо формул в полях EndX EndY и т.д я получаю значения куда вытащил фигуру. и ничего не помогает пока |
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/05/2008 : 17:27:17
|
Что-то интересное... То есть, вот эта формула для начальной точки работает =SETF(GetRef(BeginX),"100 mm")+SETF(GetRef(BeginY),"100 mm") а аналогичная для конечной работать не хочет? ------------- Хотя, кажется понятно. Скорее всего в момент EventDrop значение Y еще не существует и поэтому формула ломается. А Вы попробуйте Y вводить через какую-нибудь другую ячейку, а в EventDrop на нее только ссылаться. Тогда в момент опускания шейпа прибавится ноль, а потом, когда значение появится, конец вектора тоже сместится, куда надо.
|
|
|
bdfy
Belarus
267 Posts |
Posted - 10/05/2008 : 18:29:40
|
quote: То есть, вот эта формула для начальной точки работает =SETF(GetRef(BeginX),"100 mm")+SETF(GetRef(BeginY),"100 mm") а аналогичная для конечной работать не хочет?
ни для конечной, ни для начальной она не работает. фигура при перетаскивании все равно будет там куда я ее перетащил а не в точке 100,100 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 10/05/2008 : 18:55:19
|
У меня работает. Надо искать, почему у Вас не получается. -------- Возьмите файл в http://visio.artberg.ru/store/vect.zip разархивируйте и попробуйте перетаскивать единственный мастер-шейп из Document Stencil на рисунок. У меня все копии векторов начинаются из одной точки. В шейпе изменена только одна ячейка - вставлена приведенная выше формула. |
|
|
bdfy
Belarus
267 Posts |
Posted - 10/05/2008 : 19:26:32
|
разобрался. таки расчитать через EndX\EndY - ничего нельзя. т.к координаты все равно от перетаскивания получаются. все решается через EventDrop. просто прописать надо было не только начало но и конец :) =SETF(GetRef(BeginX),"100 mm")+SETF(GetRef(BeginY),"100 mm")+SETF(GetRef(EndX),"100 mm+0.1*Prop._VisDM_Re")+SETF(GetRef(EndY),"100 mm+0.1*Prop._VisDM_Im") в очередной раз спасибо за помощь - выручили. |
|
|
|
Topic |
|