|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.06.2013, 15:11 | #1 | |
Lisp/ActiveX Как создать лист и на нем видовой экран. Связь Модель->Лист
Мурманск
Регистрация: 28.07.2008
Сообщений: 208
|
||
Просмотров: 11725
|
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Цитата:
http://docs.autodesk.com/ACD/2010/EN...umber=d0e49632 там внизу есть пример для ActiveX
__________________
Алексей |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Я делал так: вычислял центр (точку пересечения диагоналей) прямоугольника, и свойству target видового экрана присваивал это значение, не забыв при этом, естественно, задать ширину, высоту и масштаб видового экрана такими, чтоб они соответствовали прямоугольнику в модели. Проверить сейчас возможности нет, по памяти примерно так:
Код:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Насколько я понял, все манипуляции штатными средствами не меняют свойство target, и по умолчанию его координаты равны (0.0 0.0 0.0), даже, если по факту ВЭ смотрит совсем в другое место модели. Изменить это свойство, видимо, можно только программно. Могу ошибаться.
|
|||
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
|
Это ценно. Надо пробовать.
Еще вопрос: После создания Layout'а на том же листе появляется видовой экран. Как мне получить на него указатель? И еще. После создания листа из модели (когда находишься во вкладке модель) (vla-get-paper-space) выдает указатель на пространство только что созданного листа, а вот когда из листа (когда открыта вкладка листа) выдает указатель на текущий лист. Как получить указатель на пространство листа по указателю на лист? Более того, даже при переходе на лист (setvar 'ctab ...) выдает ссылку на пространство предыдущего листа. Ан нет. Все заработало. Только надо ткнуть мышкой в рабочую область, чтобы она обновилась. А можно это тоже сделать программно? Решение найдено. Спасибо за советы.
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. Последний раз редактировалось Kirill_Ja, 18.06.2013 в 13:04. |
|||
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
|
Согласен. Сам использовал похожую конструкцию.
В принципе, работает почти все. Только Target ведет себя непристойно. Никак не хочет оказываться в центре видового экрана. Код:
Может, увидите навскидку почему ВЭ не попадает в цель (Target =)))) Или это свойство как-то по-другому работает. Не пойму ничего.
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Не знаю, вот здесь можно увидеть этот самый target. Отличный от 0,0,0 нужен только если мы как-нибудь вращаем камеру. В своей проге по созданию листов я всегда выставляю target в 0,0,0 (подразумевается, что плоскость видового экрана совпадает с XY в мировой системе координат, чтоли)
__________________
Алексей |
|||
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
|
Секунду. За вращение камеры отвечает свойство TwistAngle = 5.47195 (по крайней мере в плоскости XOY).
Center - положение центра ВЭ на листе. Он же и задается при создании ВЭ. Он же виден в дампе ActiveX. Цитата:
Цитата:
У меня при создании ВЭ с Target. Видовой экран несколько смещен относительно цели. (центральная точка ВЭ и Target на модели не совпадают). Я проверил, в функцию я передаю правильные координаты. Хотя там написано: Для текущего вида и вида модели (For current and model views only). Что они имели в виду? А если не Center и не Target и не .net (сорри bargool) тогда что это еще может быть? Или все же Target?
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. |
|||
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813
|
View это вид (объект) а не цель взгляда, тебе нужно создать вид и
установить его для новой вкладки для него же установить target, center, direction и тд Это долгая канитель ищи в Гугле или используй команды |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Нашел описание Target в VBA-reference
Попытался перевести: Получает или устанавливает целевую точку для ВЭ как набор из 3D координат в Мировой СК, отображающих целевую точку. Линия взгляда отрисована из центра в целевую точку. Возвращает трехэлементный массив вещественных чисел. Ничего не понял из этого. Когда-то проходил подобные процедуры, но я просто программно вертел созданную вручную рамку в модели и соответственно ей изменял видовой экран, также вручную настроенный (ему я как раз менял высоту, ширину, масштаб и этот пресловутый таргет). Все получалось. Теперь мне кажется, что рамка в модели у меня вертелась вокруг точки пересечения диагоналей, соответственно, эта точка была неизменной. Хотя странно это все как-то... Тогда я был убежден, что без нее никак, и что она - это то, что надо, стало быть, ошибался. Сегодня сколько ни бился, так и не смог понять закономерности поведения этого таргета |
|||
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813
|
|
|||
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
|
Мне, как-то наоборот показалось)))
А как стандартными методами связать лист и модель? Цитата:
Код:
Решение нашел. Команда (vl-cmdf "ПОКАЗАТЬ" "Ц") рулит. И в обход всех этик миллиона настроек ВЭ. Олег, спасибо. Что-то я поздно сообразил что ты имел в виду.
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. Последний раз редактировалось Kirill_Ja, 23.06.2013 в 14:32. Причина: Нашел решение. |
|||
|
||||
инженер-проектировщик Регистрация: 15.08.2007
Санкт-Петербург
Сообщений: 67
|
Я всё равно так и не понял причины расхождения значения свойства Target с реальностью... У меня стоит обратная задача: вынести в модель контуры видовых экранов из листов. И, собственно, дело яйца выеденного не стоит, но...
__________________
AC 2009 |
|||
|
||||
Найти точки контура - не проблема, надеюсь. А дальше - воспользоваться функцией TRANS. На лиспе не пробовал, но в NET работает.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
инженер-проектировщик Регистрация: 15.08.2007
Санкт-Петербург
Сообщений: 67
|
Do$, в данном случае точки контура определяются относительно центра (свойство target) прямоугольника видового экрана, а он не совпадает ни с Моделью, ни с тем, что написано в свойствах, доступных через Ctrl+1.
----- добавлено через ~1 ч. ----- Интересное наблюдение: имеются четыре абсолютно разных видовых экрана на листе, но (vla-AddPoint <Модель> <значение target ВЭ>) для каждого из них ставит точку в одно и то же место в Модели!
__________________
AC 2009 Последний раз редактировалось Евгенич, 26.11.2013 в 12:50. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как создать на "листе" нужное мне "окно " в модель? (видовой экран) | azetown | Программирование | 8 | 09.06.2011 09:16 |
Ищу листы Специальной карты Европейской России М:1дюйм-10верст | KSI | Поиск литературы, чертежей, моделей и прочих материалов | 6 | 19.04.2009 12:04 |