|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Размерный стиль по своему слою
инженер (КМ)
Красноярск
Регистрация: 30.10.2004
Сообщений: 3,837
|
||
Просмотров: 6261
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
Наверное, надо писать реактор на изменение системной переменной...
Сервисная функция: Код:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>kpblc Ругается на загрузку кода
Цитата:
Код:
Последний раз редактировалось VVA, 19.09.2015 в 22:49. Причина: Более правильная _dwgru-layer-create |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
VVA
Спасибо. Тоже пригодится. Просил маленько другое. Если у меня уже вычерчен размер и вот я хочу ему сменить размерный стиль - выделяю и меняю либо в окошке стилей либо через свойства. Стиль меняется, а слой нет. Вот, а надо чтоб менялся. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
Получается, что надо объектный реактор, да еще и постоянный разрабатывать?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Хочу быть фотографом :) Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
![]() |
Цитата:
![]()
__________________
Камень на камень, кирпич на кирпич.. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Немного доделал свой лисп, чтобы не повторять все ф-ции - все в архиве. Здесь пояснения
Там набор реакторов, которые работают на 1. Появление блока в чертеже 2. Выполнение той или иной команды 3. Добавлено появление размеров Суть их в разбрасывании объектов по слоям. Провила задаются на основе списков вида Для блоков Код:
Код:
(("name" . "Проектируемые") ("color" . 1) ("lw" . 50) ... ) как в списке вызова команды _dwgru-layer-create Слой для размеров задается вызовом ф-ции из реактора Код:
Для примера зарузи архив и создай в чертеже блоки с именами "KV", krug_p. А так же посмотри куда разносятся примитивы при выполнении команд DIM* *TEXT *HATCH. Если этого не надо, просто присвой переменным nil (setq *DWGRU_BLOCK* nil) (setq *DWGRU_CMD* nil) Немного сумбурно, но получилось так [ATTACH]1159194425.rar[/ATTACH] |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
VVA - это все хорошо, но я хотел отследить не появление приметива или выполнение команды, а изменение свойства (стиль) отдельного примитива (размер) и поменять ему в купе другое свойство (слой).
А вот что делают код из поста №8? У меня не работает. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Так код из поста №8 это и делает.
Устанавливает реактор на изменение объектов, отлавливает размеры, и при изменении системной переменной изменяет слой отловленных размеров на слой, возвращаемой ф-цией KriegerMakeDimLayerNamebyStyle. А она берет размерный стиль и возвращает имя слоя для него. Если в тиле есть _, то возвращается имя слой "Размерные_XX", если нет текущий слой. 1.(KRIEGERMAKEDIMLAYERNAMEBYSTYLE "A_B_C")->"Размерные_B_C" 2.(KRIEGERMAKEDIMLAYERNAMEBYSTYLE "ABC") ->"0" (текущий) У меня работает. Отрисуй размер, измени его стиль на "A_B_C_D". Слой должен изменится на "Размерные_B_C_D" |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
[sm3518]
Код с поста №8 работал в 2004. Этот должен работать Код:
Попутно считает длину всех выделенных объектов. Командой MM можно установить масштаб. Добавлено Слой размера изменится при отмене предварительного выбора (ESC) Последний раз редактировалось VVA, 19.09.2015 в 20:45. |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Не долго я радовался.
При попытки сохранить чертеж в версии ниже 2007 выдаёт следуюее: Цитата:
Без этих реакторов все нормально. Как загружаю проги из поста№12 происходит такоя вот фигня. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Переписано без реакторов модели, только miscellaneous реактор.
Возникала и возникает ошибка (vla-get-pickfirstselectionset (vla-get-activedocument (vlax-get-acad-object))), если в чертеже есть RTEXT. Пришлось обернуть в vl-catch-all-apply. В общем пробуй Код:
Последний раз редактировалось VVA, 20.09.2015 в 11:33. |
|||
![]() |