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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как сделать чтобы после выполнения команды "Пересечение" исходные объекты не удалялись?

Как сделать чтобы после выполнения команды "Пересечение" исходные объекты не удалялись?

Ответ
Поиск в этой теме
Непрочитано 06.04.2023, 11:10 #1
Как сделать чтобы после выполнения команды "Пересечение" исходные объекты не удалялись?
МишаИнженер
 
Регистрация: 14.12.2008
Сообщений: 1,134

Команда _intersect ("Пересечение") создает 3D объект, который принадлежит всем исходным 3D объектам одновременно. Как сделать так так чтобы после завершения команды "Пересечение" исходные объекты не удалялись?
Просмотров: 724
 
Непрочитано 06.04.2023, 11:19
#2
Кулик Алексей aka kpblc
Moderator

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


delobj ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.04.2023, 11:40
#3
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
delobj
Вроде бы не подходит.
Цитата:
DELOBJ
Режим сохранения или удаления примитивов, используемых для создания других объектов
Эта системная переменная управляет удалением примитивов, которые использовались для создания исходных 3D объектов.
Может можно как-то LISP сделать, который перед запуском команды _intersect делал бы копии исходных объектов?
Чтобы сделать копии какую надо использовать команду, _copy?
МишаИнженер вне форума  
 
Непрочитано 06.04.2023, 11:58
#4
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


вроде, этот момент разбирали лет 20 назад.
перед применением команды _intersect следует скопировать объекты
Хмурый вне форума  
 
Автор темы   Непрочитано 06.04.2023, 12:48
#5
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Получилось сделать LISP программу с копированием объектов:
Код:
[Выделить все]
 (defun C:CopyInter()
 ;Функция выполняет команду "Пересечение" с сохранением исходных объектов
 ;Выделим исходные объекты на экране
	(setq sEnt (entsel) sset (ssadd))
	(ssadd (car sEnt) sset)
	(while (setq sEnt (entsel)) (ssadd (car sEnt) sset))
  ;Сделаем копии исходных объектов
	(command "_copy" sset "" '(0. 0. 0.) '(0. 0. 0.))
  ;Выполним команду "Пересечение"
	(command "_intersect" sset "")
	(princ)
)
Неудобство в том, что выделенные объекты не подсвечиваются, поэтому не понятно все ли объекты выделены.
Как сделать так чтобы при выборе объекты подсвечивались?
МишаИнженер вне форума  
 
Непрочитано 06.04.2023, 12:58
1 | #6
Кулик Алексей aka kpblc
Moderator

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


ssetfirst
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.04.2023, 14:54
#7
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Спасибо! Получился код:
Код:
[Выделить все]
 (defun C:CopyInter()
 ;Функция выполняет команду "Пересечение" с сохранением исходных объектов
 ;Выделим исходные объекты на экране
	(setq sEnt (entsel) sset (ssadd))
	(ssadd (car sEnt) sset)
	(sssetfirst nil sset)
	(while (setq sEnt (entsel)) (progn (ssadd (car sEnt) sset) (sssetfirst nil sset)))
  ;Сделаем копии исходных объектов
	(command "_copy" sset "" '(0. 0. 0.) '(0. 0. 0.))
  ;Выполним команду "Пересечение"
	(command "_intersect" sset "")
	(princ)
)
Объекты подсвечиваются.
Странная конечно команда "ssetfirst": когда параметр nil, тогда объекты подсвечиваются. По логике, когда параметр "включено", тогда должны объекты подсвечиваться.
К этому надо привыкать, потому что много таких "абсурдных" ситуаций в LISP.
МишаИнженер вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как сделать чтобы после выполнения команды "Пересечение" исходные объекты не удалялись?

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Как сделать черным цветом объекты в слое на ВЭ? Efremvik AutoCAD 20 21.02.2019 14:44
Как сделать, чтобы в AutoCad 2019 объекты выделялись только пунктиром (без увеличения толщины)? annt AutoCAD 1 31.10.2018 03:43
Ищу интересный объект (архитектуру хотя бы или фотки чтобы её сделать) в дереве (метало-деревянный): стадион, манеж, бассейн, выставочный центр итп. pag Поиск литературы, чертежей, моделей и прочих материалов 0 18.10.2012 17:21
Команды ориентации ПСК AutoCad'a и rtucs из ET сделать прозрачными BM60 AutoCAD 2 09.02.2009 11:14