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

Tumanov

Russia
1198 Posts

Posted - 10/21/2008 :  20:08:49
quote:
как получить параметры группы из смартшейпа ее члена

Не совсем понял вопрос...
В формуле ведь можно ссылаться на ячейку другого шейпа. Так и передавать. Группа - это тоже шейп.
Если координаты нужно из одной системы в другую пересчитать, то есть специальные функции типа LocToPar, Par, LocToLoc...
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/21/2008 :  20:51:08
начнем с начала. размерную линию я взял из вашего примера. но хочу доработать. при повороте на 90 град. текст должен менять ориентацию. текст привязывается к линии, линия в свою очередь - член группы. вся размерная выноска - стенсил. и как теперь сослаться на всю группу если это стенсил ?

Edited by - bdfy on 10/21/2008 20:54:53
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/22/2008 :  16:45:59
Stencil - это документ, в котором размещены Master - мастер-шейпы. Трафарет с набором мастер-шейпов.
Ваша выноска, как я посмотрел, представляет собой группу с двойной вложенностью. Вот эти группы и надо рассматривать.
Так вот, в формуле может быть ссылка на любой шейп. То есть Sheet.157, вложенный в dim.129, вложенный в свою очередь в Sheet.164 может непосредственно сослаться на самый верх. Например, такой формулой =Sheet.164!Width.
Если такую ссылку сделать в мастер-шейпе, естественно, она будет и во всех его копиях (шейпах на листе рисунка). Нумерация шейпов в каждой копии будет своя, и ссылка будет действовать с учетом этой индивидуальной нумерации. Так что, с этим проблем нет.
Другой разговор, что в данном случае может быть вообще не стоит городить самодельные шейпы...
Вы посмотрите набор шейпов на трафарете Visio Extras / Dimensioning Engineering. Там несколько разных измерителей, может они Вам подойдут.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/22/2008 :  21:15:03
quote:
Вы посмотрите набор шейпов на трафарете Visio Extras / Dimensioning Engineering. Там несколько разных измерителей, может они Вам подойдут.

едить... :) то что надо. и даже много больше :) спасибо за наводку
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/24/2008 :  20:39:08
... (cнимается - нашел)
2. данные о размерах из екселя. связанная. только вот единицу визио упорно считает дюймом. 2.54см. page properties мм выставил. drawing scale - no scale. и все равно единица - дюйм. как побороть ? пока в екселе делю. мож чего проще есть ?

Edited by - bdfy on 10/25/2008 00:24:48
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/25/2008 :  06:13:24
А Вы перенесите дележку в формулу шейп-листа.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 03/29/2009 :  07:23:29
quote:
NameU - универсальное имя. Оно не изменяется при локализации и через него ведутся все ссылки в формулах шейп-листа. NameU через пользовательский интерфейс не доступно.
У вновь созданного шейпа имени нет, есть только ID. Ссылки на такой шейп идут через имя NameID. Это сочетание Sheet и ID, например, Sheet.5.
При первом присвоении имени через пользовательский интерфейс оно пишется и в Name, и в NameU. При дальнейшем переименовании NameU уже не изменяется, изменяется только Name. Вот это у Вас и происходит - Вы меняете локализованное имя, а в ссылках остается универсальное.
Исправить универсальное имя можно, например, программно. Вот такой простейший макрос
Sub ttt()
ActiveWindow.Selection(1).NameU = "first"
End Sub

собственно достаточно часто стоит задача переименовать под себя несколько фигур на странице. ибо sheet.5!trata-ta как то не юзерфрендли.
Вопрос как сделать макрос который бы запрашивал ввод имени с клавиатуры ?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/29/2009 :  08:06:30
В простейшем случае - просто добавить обращение к InputBox
s1 = InputBox("Имя должно быть кратким и удобным", "Ввод имени")
MsgBox s1
А если нужно что-то оригинальное, то добавлять к проекту форму, TextBox, кнопки... И вызывать форму из макроса.
Go to Top of Page

VeryOldMan

5 Posts

Posted - 04/02/2009 :  13:09:47
Предлагается для обсуждения следующий вариант
Строятся несколько подходящих 2D фигур, например, трапеция, круг и несколько прямоугольников, объединяемых через Union. Затем удаляется заполнение, т.е. остается только каркас (frame). С помощью вспомогательной прямой отсекается часть основания (команда:Trim). Затем редактируется вручную секция Geometry1 в ShapeSheet(отсекаются первая и последняя Row), с последующим доведением до формульного значения точек полученной сложной линии
Go to Top of Page

GDK

Russia
90 Posts

Posted - 04/29/2009 :  09:52:53
quote:
Originally posted by VeryOldMan

Затем редактируется вручную секция Geometry1 в ShapeSheet(отсекаются первая и последняя Row), с последующим доведением до формульного значения точек полученной сложной линии



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