|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Zaghim, Думаю что да. Хотя рассудить может только научный метод - метод тыка.
Предлагаю тебе еще раз подробно описать твою задачу (т.е. что есть и что нужно получить). Для удобства подготовить парочку небольших примеров ввиде dwg файлов. Обращаю внимание: подробно описать твою задачу, а не алгоритм ее решения, который ты себе сам придумал.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Задача такая.
Исходные данные: Есть два чертежа. Есть динамический блок с атрибутами, который я должен поставить на чертеж1, используя некоторые данные с чертежа1 и чертежа2. Есть базовая точка. Задача: Тыкнуть на чертеже1, после этого должно некоторыми мат. функциями находится значение1 (это реализовано), далее - автоматическое открытие второго чертежа, получение значения2 с исходными данными - базовая точка. Возврат в чертеж1. Вставка блока с значением1 с чертежа1 и значением2 с чертежа2. Чертежи. Точка одна, расстояния до линий разные, соответственно координаты пересечения у них тоже разные. Отсюда и два значения для атрибутов блока. Со вставкой чертежа конечно круто, но опять таки не работает, потому что, когда открываешь чертеж просто она не находит некоторые .shx файлы (бывает такое и мы тыкаем на esc и чертеж загружается) и то ли из-за этого то ли из-за хз чего он не вставляется((( Делаю так (command "-insert" "*gp1.dwg" "0,0" "1" "0") (путь к файлу прописан) Последний раз редактировалось Zaghim, 08.10.2010 в 15:02. |
|||
|
||||
Цитата:
Вот пример. Файлы 1.dwg и 2.dwg должны быть в одной папке. Открыть 1.dwg и выполнить команду TEST Код:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Точку второй раз не нужно запрашивать, она же уже введена первый раз. Немного не то в общем(
Есть еще сообщение о том что бы включать или не включать прокси графику, такое как можно отключить? Это сделал ремуваллпрокси, но чертеж всеравно не вставляется программно, так да, а из программы нет, бред( Последний раз редактировалось Zaghim, 08.10.2010 в 15:58. |
|||
|
||||
Цитата:
Цитата:
Но лучше использовать это: ObjectARX. Расчленение и удаление proxy-объектов
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Я прерву ваши думы на пару минут
Есть много способов решения данной проблемы. Один, с моей точки зрения самый простой, я сейчас вам покажу. Я пользуюсь файлом acaddoc.lsp пусть все хоть взорвутся от критики, но без него я не могу. Он определяет мне одноименные с файлом dwg лиспы. Так вот, туда я вставил всего одну, строчку в самый конец: Код:
Файл первый, запускаемый из первого документа ручками Код:
Код:
Файлы открываются, лиспы в них выполняются и все возвращается в первый документ! Теперь можно и код наращивать. В переменную lispSendCommand можно писать прямой код (правда не знаю какой длинны можно). Последний раз редактировалось Supermax, 08.10.2010 в 16:19. |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Вот в такой форме как ты написал все круто. А попробуй теперь, когда приходишь во второй документ сделать не так (setq bp1cc 123), а так
(setq bp1 bp1cc) И вот в этом вся проблема, что она нихрена не присваеват значение на новую переменную. Мне то и нужно эту координату, которая будет в bp1cc перекинуть в переменную bp1 и с ней отработать. Проставил алерты и такое ощущение, что вообще вначале выполняется второй лисп, потом только первый) Последний раз редактировалось Zaghim, 08.10.2010 в 17:02. |
|||
|
||||
Дело в том, что переменные, определенные функцией vl-propagate загружаются в пространство документа после выполнения загрудки файла. Там все на приоритетах построено. Что первым загружается, что вторым, что третьим. Паралельно там ничего не делается. А как только файл загрузился Open возвращает назад активность документа и переменные так и не прописываются.
Так получилось, что vl-propagate тут не катит. Нужно использовать не setq в паре с vl-propagate, а vl-bb-set и vl-bb-ref. Они специально созданы для обработки многодокументных случаев. В твоем случае все будет выглядеть так: Первый файл Код:
Код:
Последний раз редактировалось Supermax, 08.10.2010 в 19:34. |
||||
|
||||
Регистрация: 01.07.2010
Сообщений: 521
|
Уже теплее, но значение назад как-то криво идет или вообще не идет, не пойму! Пришел я со своей координатой, ее принял с ней отработал. Получил новое значение в другой переменной. Как мне теперь назад отправить это значение?
В общем отдельно второй файл работает, точку пересечения находит, а вот если вызывать, то точку не находит... похоже просто не определяет то, что есть на чертеже((( Еще бывает такое, что она значение определяет, но оно неправильное почему то((( И при продолжении тыкания точек это значение дальше не меняется, остается таким как и было... это ужас((( Первая часть кода Код:
Код:
Последний раз редактировалось Zaghim, 12.10.2010 в 12:46. |
|||
|
|||||
Цитата:
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Supermax, 13.10.2010 в 19:04. |
|||||
|
||||
Ты знаешь, какая разница между надеждой и уверенностью? Между упрямством и упорством? Между бюрократизмом и методичностью?
Ты убрал (хтя-бы временно) строчку с закрытием файла? Ты перешел на vl-bb-set и vl-bb-ref? |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоуроки AutoCAD | kosmax | AutoCAD | 173 | 17.02.2017 15:08 |
Проблемма с установкой AutoCAD 2008 | Alxndr1697 | AutoCAD | 27 | 24.04.2010 21:43 |
Ищу любое рукодство пользователя AutoCAD Electrical 2008 | DAM | Поиск литературы, чертежей, моделей и прочих материалов | 3 | 07.10.2009 17:20 |
Книга Хейфеца А.Л. 3D-технология построения чертежа. AutoCAD. 3-е изд. | BM60 | Разное | 22 | 16.02.2009 09:55 |
не удаляется AutoCAD Architecture 2008 | ПалычЪ | AutoCAD | 4 | 19.12.2007 09:53 |