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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Перенос выделенного объекта в нужный слой

Перенос выделенного объекта в нужный слой

Ответ
Поиск в этой теме
Непрочитано 13.12.2016, 11:20 #1
Перенос выделенного объекта в нужный слой
VAV
 
Проектировщик
 
Воронеж
Регистрация: 28.10.2009
Сообщений: 330

Хотелось бы для повышения производительности работы иметь лисп, при выполнение которого выделенный (или который будет выделен) объект переносится в слой DEFPOINTS, без манипуляций мышью в панели "Слои". Если у кого есть несколько минут свободного времени помогите с этим, пожалуйста. Заранее благодарен
Просмотров: 2033
 
Непрочитано 13.12.2016, 11:31
#2
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Лови.
Код:
[Выделить все]
(defun c:lay (/ entity ss)
  (setq ss (ssget))
  (foreach entity (ssnamex ss) (if (eq (type (cadr entity)) 'ENAME)
				 (vla-put-layer (vlax-ename->vla-object (cadr entity)) "DEFPOINTS")
				 )
    )
  )
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 13.12.2016, 11:46
#3
Кулик Алексей aka kpblc
Moderator

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


... это если слой Defpoints существует. И в наборе нет примитивов на заблокированных слоях
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.12.2016, 12:06
1 | #4
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Тогда так.
Код:
[Выделить все]
(defun c:lay (/ entity ss pr)
  (setq ss (ssget))
  (foreach entity (ssnamex ss) (if (eq (type (cadr entity)) 'ENAME)
				 (if (setq pr (subst '(8 . "Defpoints") (assoc 8 (entget (cadr entity))) (entget (cadr entity))))
				   (entmod pr)
				   )
				 )
    )
  )
А заблокированный слой на то и заблокирован, чтобы его не менять
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 13.12.2016, 12:12
#5
Profan


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


Идут на поводу у врага автоматизации.
Profan вне форума  
 
Непрочитано 13.12.2016, 12:20
1 | #6
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Кто враг? Кто идет?
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 13.12.2016, 12:37
#7
Кулик Алексей aka kpblc
Moderator

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


Krieger, у ssget есть прикольный ключ:
Код:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.12.2016, 12:45
1 | #8
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


В данном случае этот ключ ничего не изменит.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 13.12.2016, 12:54
#9
Кулик Алексей aka kpblc
Moderator

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


Он исключит из набора примитивы на заблокированных слоях.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.12.2016, 12:58
1 | #10
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Он исключит из набора примитивы на заблокированных слоях.
И в данном случае ничего не изменит.
Я в курсе про этот ключ.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 13.12.2016, 13:39
#11
VAV

Проектировщик
 
Регистрация: 28.10.2009
Воронеж
Сообщений: 330
<phrase 1=


Цитата:
Сообщение от Krieger Посмотреть сообщение
Лови.
Премного благодарен. А не мог бы модифицировать лисп, чтоб цвет, тип и вес выбранных примитивов становился "по слою"?
И еще момент: когда выбираешь один, а не несколько объектов в командной строке появляется сообщения типа: ((-1 . <Имя объекта: 7ffff9ff2a0>) (0 . "LINE") (330 . <Имя объекта: 7ffff96a1f0>) (5 . "E4FCA") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "Defpoints") (62 . 4) (100 . "AcDbLine") (10 20369.6 -8938.8 0.0) (11 20338.3 -8938.8 0.0) (210 0.0 0.0 1.0)). Нельзя ли сделать так, чтобы в командной строке была тишина?
Если это долго и напряжно - не заморачивайся. Итак уже хорошо
VAV вне форума  
 
Непрочитано 13.12.2016, 14:43
2 | #12
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Как то так
Код:
[Выделить все]
(defun c:lay (/ entity ss pr)
  (setq ss (ssget))
  (foreach entity (ssnamex ss) (if (eq (type (cadr entity)) 'ENAME)
				 (if (setq pr (subst '(8 . "Defpoints") (assoc 8 (entget (cadr entity))) (entget (cadr entity)))
					   pr (subst '(62 . 256) (assoc 62 pr) pr)
					   pr (subst '(6 . "BYLAYER") (assoc 6 pr) pr)
					   pr (subst '(370 . -1) (assoc 370 pr) pr)
					   )
				   (entmod pr)
				   )
				 )
    )
  (princ)
  )
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 13.12.2016, 14:52
#13
VAV

Проектировщик
 
Регистрация: 28.10.2009
Воронеж
Сообщений: 330
<phrase 1=


Цитата:
Сообщение от Krieger Посмотреть сообщение
Как то так
ошибка при подгрузке лиспа
деф.lsp успешно загружено.
Команда: ; ошибка: неверно сформированный список на входе
VAV вне форума  
 
Непрочитано 13.12.2016, 14:55
#14
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Скобочки проверь, может забыл последнею...
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 13.12.2016, 15:04
#15
VAV

Проектировщик
 
Регистрация: 28.10.2009
Воронеж
Сообщений: 330
<phrase 1=


Цитата:
Сообщение от Krieger Посмотреть сообщение
Скобочки проверь, может забыл последнею...
Точно, не все скопировал. Все работает идеально. Спасибо
VAV вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Перенос выделенного объекта в нужный слой

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp. Копирование объекта, шаг и повтор с добавлением в новый слой pobat LISP 9 19.10.2016 08:18
Свойства выделенного объекта не отображаются в выпадающих окнах панелей инструментов AutoCAD2014. afsokolov AutoCAD 1 15.12.2015 14:25
Отрисовка полосы отвода линейного объекта Агент СмиТ Программирование 10 06.11.2012 10:05
Контекстное меню при повороте выделенного объекта двойным нажатием пробела Кукурузо_Джон_Горыныч AutoCAD 3 25.09.2012 22:11
Получение разрешения на строительство объекта капитального строительства maxummm Прочее. Архитектура и строительство 18 25.08.2010 20:31