| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно согласовать все слои? (RECONCILE LAYERS)

Как программно согласовать все слои? (RECONCILE LAYERS)

Ответ
Поиск в этой теме
Непрочитано 13.08.2013, 14:44 #1
Как программно согласовать все слои? (RECONCILE LAYERS)
Xara
 
Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135

Всем привет!

Кто-нибудь в курсе, можно ли программно согласовать все несогласованные слои?

Код:
[Выделить все]
Command: -LAYER

Current layer:  "0"
Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: _e

Enter name list of layer(s) to turn reconcile or <select objects> or [?]:

Изображения
Тип файла: jpg lay.jpg (30.4 Кб, 381 просмотров)

__________________
Боишься - не делай. Делаешь - не бойся.
Просмотров: 4613
 
Непрочитано 13.08.2013, 15:05
1 | #2
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Может быть так?:
Код:
[Выделить все]
(vl-cmdf "_.-layer" "_e" "*" "")
Do$ вне форума  
 
Автор темы   Непрочитано 13.08.2013, 15:13
#3
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Цитата:
Сообщение от Do$ Посмотреть сообщение
Может быть так?:

Код:

(vl-cmdf "_.-layer" "_e" "*" "")

Дааа! Спасибо! Как же я до звездочки не докумекал...))
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Непрочитано 13.08.2013, 18:58
1 | #4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Может быть так? ( LAYERNOTIFY )
Код:
[Выделить все]
(setvar "LAYEREVAL" 0)(setvar "LAYEREVALCTL" 0)(setvar "LAYERNOTIFY" 0)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 14.08.2013, 09:42
#5
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Цитата:
Сообщение от VVA Посмотреть сообщение
Может быть так? ( LAYERNOTIFY )
Спасибо, так тоже хорошо. Но с переменными не хочется играться лишний раз... Не знаю даже, почему))
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Автор темы   Непрочитано 27.05.2014, 15:37
#6
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Уважаемые друзья!

Обнаружил некую странность выполнения макроса согласования слоев в том случае, когда несогласованных слоев нет.

После выполнения ^C^C(vl-cmdf "_.-layer" "_e" "*" "") остается запрос на ввод ключа:
Код:
[Выделить все]
Command: (vl-cmdf "_.-layer" "_e" "*" "") _.-layer
Current layer:  "0"
Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: _e
No unreconciled layers in drawing.
Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: *
Invalid option keyword.
Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: *Cancel*
Имитация нажатия кнопки ENTER почему-то не срабатывает. Кто-нибудь знает, почему?

UP: У меня на ACAD2015, на ACAD2014 и ACAD2012 все нормально. У другого юзера - на 2015 все плохо (описано выше).
__________________
Боишься - не делай. Делаешь - не бойся.

Последний раз редактировалось Xara, 27.05.2014 в 16:21.
Xara вне форума  
 
Непрочитано 27.05.2014, 17:04
#7
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Проверил на AutoCAD Civil 2014 Rus без SP. При первом запуске макроса все нормально, при повторном уже вылезает эта оказия. Проверь значения системных переменных из сообщения #4 до/после первого запуска, а также у себя и у пользователя, есть подозрение, что какая-то из них влияет на поведение команды.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 27.05.2014, 19:26
1 | #8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Я бы проверил, не появилась ли еще какая нибудь LAYER??? в 2015
Цитата:
Команда: _setvar
Имя переменной или [?]: ?

Список переменных для вывода <*>: LAYER*

LAYERDLGMODE 1
LAYEREVAL 0
LAYEREVALCTL 1
LAYERFILTERALERT 2
LAYERNOTIFY 0
----- добавлено через ~6 мин. -----
Xara, Без проверки. Попробуй такую версию макроса
Код:
[Выделить все]
 ^C^C(progn(vl-cmdf "_.-layer" "_e" "*" "")(while(>(getvar "CMDACTIVE")0)(command)))
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 28.05.2014 в 09:20.
VVA вне форума  
 
Автор темы   Непрочитано 28.05.2014, 14:39
#9
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Спасибо, заработало!
Цитата:
Сообщение от VVA Посмотреть сообщение
Xara, Без проверки. Попробуй такую версию макроса
Код:
[Выделить все]
 ^C^C(progn(vl-cmdf "_.-layer" "_e" "*" "")(while(>(getvar "CMDACTIVE")0)(command)))
P.S.: Проверить появление переменных не смог, юзер исчез куда-то...
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Непрочитано 28.05.2014, 16:13
#10
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Сбежал подлец.
Profan вне форума  
 
Автор темы   Непрочитано 10.06.2014, 15:28
#11
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Я совсем запутался((

Добавил в панель макрос для комплексной чистки, он выполняет последнюю команду почему-то...
Может, переменные какие гуляют?

Текст макроса:
Код:
[Выделить все]
^C^C(progn
(vl-load-com)
(vl-cmdf "_-scalelistedit" "_r" "_y" "_e")
(vl-cmdf "_delconstraint" "_all" "")
(vl-cmdf "explodeallproxy")
(vl-cmdf "removeallproxy")
(vl-cmdf "_audit" "_y")
(repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object))))
(progn(vl-cmdf "_.-layer" "_e" "*" "")(while(>(getvar "CMDACTIVE")0)(command)))
(alert "Чистка чертежа выполнена")
)
Любопытно, что:
- На одном компе выполнение последней команды (выполненной перед вызовом макроса) происходит или после команд EXPLODEALLPROXY и REMOVEALLPROXY;
- На другом компе - после (vl-load-com).
Подскажите пожалуйста, что в макросе не так?
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Непрочитано 10.06.2014, 15:54
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Вообще-то я бы сделал нормальный lsp и загружал его. А так - попробуй
Код:
[Выделить все]
^C^C(progn(vl-load-com)(vl-cmdf "_-scalelistedit" "_r" "_y" "_e")(vl-cmdf "_delconstraint" "_all" "")(vl-cmdf "explodeallproxy")(vl-cmdf "removeallproxy")(vl-cmdf "_audit" "_y")(repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object))))(vl-cmdf "_.-layer" "_e" "*" "")(while (> (getvar "CMDACTIVE") 0) (command))(alert "Чистка чертежа выполнена"))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.06.2014, 13:25
#13
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Прости, Алексей, а чем отличается представленный тобой вариант от моего?
Насколько я заметил, разница лишь в переносах строки, но я их добавил намеренно, чтобы разобрать можно было смысл.
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вообще-то я бы сделал нормальный lsp и загружал его. А так - попробуй
Код:
[Выделить все]
^C^C(progn(vl-load-com)(vl-cmdf "_-scalelistedit" "_r" "_y" "_e")(vl-cmdf "_delconstraint" "_all" "")(vl-cmdf "explodeallproxy")(vl-cmdf "removeallproxy")(vl-cmdf "_audit" "_y")(repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object))))(vl-cmdf "_.-layer" "_e" "*" "")(while (> (getvar "CMDACTIVE") 0) (command))(alert "Чистка чертежа выполнена"))
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Непрочитано 11.06.2014, 13:38
#14
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


В убирании лишнего progn и изменении положения одной скобки. Смотри внимательнее
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.06.2014, 14:01
#15
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Теперь он висит в ожидании нажатия клавиши ENTER...((

Бррр... Сделал проще. Забиндил команды в панельке на нужные, а их вызов описал в MNL-файле.
__________________
Боишься - не делай. Делаешь - не бойся.

Последний раз редактировалось Xara, 11.06.2014 в 15:41.
Xara вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно согласовать все слои? (RECONCILE LAYERS)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Акад 2002: слои (layers) с подслоями ? niki AutoCAD 7 24.07.2008 17:05