|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.02.2007, 00:35 | #1 | |
Блок с координатами
строит-во
Москва
Регистрация: 07.02.2006
Сообщений: 46
|
||
Просмотров: 4070
|
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Прочесть координаты и записать в виде текста смог. Записать в атрибуты не получилось. В общем, не совсем безнадега, только спать уже охота
В прилагаемом файле попробуй(те) вставить блок "Круг" с указанием точки на экране. [ATTACH]1171408910.dwg[/ATTACH] |
|||
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Сделал. :wink:
Только имя блока фиксировано и его нужно прописывать в коде, как константу. В данном случае "Круг". Блок с двумя атрибутами, у которых включено свойство "Установленный" (чтобы не приставал при вставке). Подразумевается, что блок в простанстве модели. Почему-то работает только при вставке блока с указанием точки на экране. Впрочем после смены ПСК или регенерации координаты все равно обновляются. Код встроен непосредственно в чертеж, если нужно, можно сделать отдельным dvb-файлом. [ATTACH]1171486049.dwg[/ATTACH], P.S. При перемещении блока координаты обновятся только после смены ПСК (можно просто еще раз установить текущую) или регенерации P.P.S. С динамическими блоками будет работать некорректно, но если по-нормальному отслеживать динамические блоки не будет работать в АКАДах младше 2006. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я не уверен, что правильно понял код. Тем не менее: написать командный реактор на лиспе достаточно просто. Кроме того, тебе не обязательно (ИМХО) делать полную регенерацию пространства модели. Может, достаточно после обработки INSERT'a сделать Blk.Update? Кстати, дополнительно пропиши уж реакторы и на COPY, MOVE, STRETCH...
И вот еще - попробуй Код:
Код:
--- P.S. Некоторые вещи я только что спер с http://vbamaker.narod.ru --- Добавлено: Кстати, у тебя не учитывается вариант нескольких приложений, которые могут использовать командные реакторы. Кто из них будет работать - одному Гейтсу известно
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Крыс
.Clear точно не повредит , но работает и так. Я этим уже сто лет пользуюсь, вроде ничего. Удаляется же SelectionSet из коллекции SelectionSets, объекты в него входящие при этом не затрагиваются (хоть это и не совсем логично). Однако .Clear добавил. Так я регенерацию не делаю совсем, наоборот, после команды REGEN или REGENALL координаты пересчитываются, а после INSERT и так все хорошо. Добавил в эту компанию еще пяток команд, пусть работает, на то он и железный. А насчет Добавлено не совсем понял, точнее - совсем не понял, поясни, плз. [sm2102] [ATTACH]1171523217.dwg[/ATTACH] |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я к тому, что реакторы вообще-то достаточно опасная штукенция. Например, у меня грузятся мои ком.реакторы (неважно, на какие команды они реагируют). Последовательность загрузки непредсказуема. Ты сможешь гарантированно предсказать, кто и как сработает? И в какой последовательности? Я - нет.
Я огреб подобные проблемы, когда пробовал свои реакторы (командные и мышиные) прописать на работу вместе с СПДС GraphiCS 3.0 - работало через раз, валя кад на корню. Реакторы - достаточно узкое место, там, как правило, работает принцип: "кто первый влез, того и нахрен". Хотя, как показывает практика, бывают и тут варианты.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Не утверждал бы так категорично
[ATTACH]1171530680.dwg[/ATTACH]
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Крыс
Я имел в виду, не отслеживая событие EndCommand. Про то, что мое решение единственно возможное - я и не помышлял даже. Маленько подправил, теперь покрасивше стало. P.S. А у тебя реакции на MOVE нету :P [ATTACH]1171574100.dwg[/ATTACH] |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А регенерацию / сохранение / подготовить к печати / _etransmit выполнить? Fieldeval однако
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Да хотел, потом передумал. Ежели заказчик попросит - можно сделать, а так - лень.
Что-то нет его, а я мозги поразмял и успокоился. Оффтоп: Крыс, ты "поле в атрибуте" (или как там) не смотрел больше? Не пашет, зараза Среди меня уже появляются крамольные мысли бросить это на фиг. Хотя и обидно. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Оффтоп2: Смотрел, но качество "смотрин" не выдерживает никакой критики. В общем, я не смог одолеть
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строит-во Регистрация: 07.02.2006
Москва
Сообщений: 46
|
Спасибо, это то что надо, супер, мне для геодезии самое то.
Я тут тоже кое чего придумал, но без лиспов и макросов, а так по-ламерски тыкался по опциям, вобщем вот такое безобразие получилось: использовал системную переменную lastpoint, правда приходится после втавки блока преобразовывать аттрибут в текст, да и на смену ПСК и перемещения блока значения координат не реагируют. Еще вопросик: макросы и лисп на одном языке создаютя, принципы одинаковые? Охота изучить это дело, но мануалы на английском мне не осилить, может есть у кого русскоязычный мануал по лиспу (макросам)? [ATTACH]1171571183.dwg[/ATTACH] |
|||
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Макросы - Вы имеете в виду VBA?
VBA и Lisp - это два совершенно разных языка программирования. По Lisp'у была документация на русском в Download, по VBA не видел. По VBA вот неплохая ссылочка (из №5): http://vbamaker.narod.ru. Если нужна какая помощь с реализацией предложенного решения (№10) - всегда пожалуйста. P.S. Вспомнил еще одну вещь: реакцию на редактирование с помощью ручек, добавил туда же, в №10. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
ТАААААКС:
Крыс у тебя не работает вариант с филдами при смене ПСК а это было озвучено в 1 посте. Надо делать вот так, как сделано в верхнем блоке: http://dwg.ru/dnl/262 den001 у тебя нет реактора на Grips Editing. |
|||