|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Непонятка с системами координат
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616
|
||
Просмотров: 10255
|
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Привет!
Совет, конечно, занимательный... :-) Беда только в том, что сетка - это вторично (и, кстати, действительно легко отключаемо). Мне надо, чтобы (trans '(0 0) 2 3) вернула (0 0). Разумеется, я упрощаю условие задачи, т.к. и (trans ...) не самоцель - это лишь одна из строк другой большой функции. Прошу прошения, если недостаточно четко сформулировал свою проблему в первом посте...
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Всем привет!
У... ёёё... Да я как бы все это понимаю! Сделать только не получается. Поэтому, давайте уж совсем конкретно. 1. Кто может сделать этот чертеж таким, чтобы он выглядел, как сейчас, но (trans '(0 0) 2 3), набранный из пространства листа вкладки ОА-ВЫПУСК, возвращал бы что-то близкое к (0 0)? 2. Кто может (этого, собственно, я и добиваюсь) написать список команд, приводящих чертеж к состоянию, описанному в п. 1 ? Поймите же, у меня есть подобные чертежи, в которых "все нормально". Как привести к такому виду этот чертеж - понять не могу. Ясно, что надо где-то и как-то менять ПСК, но как и где (в каком пространстве)?
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Привет!
Давайте сделаем так. Вот "правильный" файл. В нем (trans '(0 0) 2 3) возвращает (4.77303 3.33758 0.0) Это соответствует ожиданиям. Задача: привести первоначальный файл к такому же состоянию и рассказать мне, непонятливому, что же это в нем такое было. :-) *.dwg -> *.zip [ATTACH]1129294258.dwg[/ATTACH]
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
Цитата:
Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Всем привет!
Братцы, я что, действительно непонятно выражаюсь? В принципе - допускаю, пятница все же как-никак... :-) Еще раз - максимально четко: 1) Файл new-b.dwg преобразовывать не надо, он меня полностью устраивает и приведен здесь лишь для того, чтобы показать, "как оно выглядит, когда оно правильно". 2) Файл sit1.dwg и нужно преобразовать к виду файла new-b.dwg. Согласитесь - они подобные. Тот же набор форматок А3 и А4, созданный в пространстве модели и отображаемый в пространство листа через видовой экран. 3) Самое главное. Выявить, почему (trans '(0 0) 2 3) в этих файлах возвращает _резко_ разные значения. 4) Ну, это по-возможности, дать ряд команд, которыми можно привести файл sit1.dwg к виду файла new-b.dwg. Почему по-возможности? Думаю, что если я пойму причину, команды подберу сам. :-) 5) Здесь приведена упрощенная задача-минимум. Задача максимум - создание функции, которая, будучи вызвана из некоей программы, _автоматически_ приводила бы файл sit1.dwg к виду файла new-b.dwg. Ну, вроде все разложил по полочкам... :-)
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 23.09.2005
СПб
Сообщений: 428
|
Цитата:
|
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
Можно попробовать двигать модель и вид во вьюпорте. Решение может сгодиться если вьюпорт один (равно как и лист в чертеже)
Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Всем привет!
К сожалению, вынужден на время отложить этот вопрос, т.к. уехал в отпуск и не могу даже проверить ваши советы. Сделаю это после отпуска и, ежели вопросы останутся, "дерну" тему вверх. Хорошо?
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Всем привет!
Снова возвращаюсь к своему вопросу. К сожалению, предложенный AY вариант тоже не подходит. :-((( На первый взгляд, все хорошо, в пространстве листа все выглядит, как надо (за исключением "чудного" отображения нескольких лимитных сеток), но вот в пространстве модели левый-нижний угол "форматки" оказывается смещенным из точки 0,0 МСК. А поскольку данный чертеж создавался программой (ею же предполагается его корректировать и в дальнейшем), то смещение примитивов по пространству модели не подходит - программа этого не поймет... Давайте зайдем с другого конца - попробуем создать новый ЛИСТ, в котором все будет работать, как надо (см. образец). Как это сделать? У меня пока не получилось... :-(((
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Всем привет!
Ну что, братцы, не по зубам задачка оказалась? :-) Мне тоже. :-( Ладно, сделаю последний заход. Предположим, функция (tranc) в этом чертеже о какой-то причине глючит. Тогда вопрос будет стоять так: Как, стоя в файле SIT1.DWG на вкладке ОА-ВЫПУСК в пространстве листа, программно узнать, на какую точку этого самого пространства листа будет отображаться нижний-левый угол "синей форматки". "Глазами" видно, что это примерно (4.5 3.1). Как получить эти цифры программно?
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Увы, не то... :-(((
Здесь не должно быть никакого "интерактива", поскольку эта вся колбасня лишь часть программы, работающей по принципу "запустил и отдыхай". Там за раз обрабатывается множество файлов. Конкретно эта часть программы отвечает за настройку ЛИСТа для печати, а именно, области печати. На входе функция имеет точки углов набора форматок пространства МОДЕЛИ (0 0) и (817 570). Нужно узнать, куда они отобразятся в пространстве листа. Функция (trans точка 2 3) - самое оно, но почему-то в некоторых чертежах она отрабатывает неверно. Нужно или найти причину, по которой она возвращает не то, что от нее ожидают, или придумать другой механизм (функцию), который бы работал верно. Все, выдохся повторяться... :-)
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Пока, к счастью, один. Вернее, их может быть и несколько,
но тогда, по условию задачи, они должны находиться внутри рамки, нарисованной в пространстве ЛИСТа и никаких точек вычислять не нужно. За функцию спасибо, правда, еще не смотрел, но "\nSelect Point: " меня уже слегка пугает :-)))
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Держите тогда функцию. Возвращает список координат в пространстве листа точек, нажодяшихся в пространстве модели. Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Попробовал функцию. Увы, она вернула ровно то же самое,
что и обычная (trans точка 2 3). Вывод: функция (trans) работает верно, глюки надо искать в самом чертеже. А вот здесь, боюсь, только спецы из АутоДеск помочь смогут... :-(((
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Писал про предыдущую функцию. Но и "новая", увы, тоже самое...
Вы пробовали запускать ее именно в sit1.dwg ? В любом случае - искренняя Вам моя благодарность за отзывчивость и потраченное время.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Цитата:
Кстати, ниже - небольшая доработка. Теперь функция запускается из любого пространства. Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Кажется, я понял, где собака порылась!!!
Если посмотреть список видового экрана в файле sit1.dwg, то там присутствует группа (17 158.311 201.689 18.8905) Интересно, что это? Очень похоже, что именно это смещение добавляется к результату, возвращаемому (trans). Для сравнения, в "нормальном" рисунке эта группа выглядит (17 0.0 0.0 0.0) ! Кто знает, что это такое?
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
View target point (in WCS)
Справка по DXF Reference
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Уже попробовал. По крайней мере через (entmod) не заменяется.
Да это, пожалуй, уже и не важно, т.к. формулу соотношения вывел, по крайней мере с точностью до третьего знака после запятой. Наверное, на этом и остановлюсь. Есть у меня еще одна заморочка подобного плана (про настройки принтеров), которую тоже пока победить не удается. Но писать о ней пока не буду - сам попробую сперва разобраться. :-) Всем спасибо за участие!
__________________
Счастливо, Алексей! |
|||
![]() |