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

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

Как выделить (удалить) все объекты, находящиеся внутри других объектов?

Ответ
Поиск в этой теме
Непрочитано 09.03.2021, 08:15 #1
Как выделить (удалить) все объекты, находящиеся внутри других объектов?
semagar
 
Регистрация: 09.03.2021
Сообщений: 12

Нужно удалить все малые окружности, находящиеся внутри больших окружностей.
Как это сделать быстро?
Просмотров: 4781
 
Непрочитано 09.03.2021, 09:15
#2
Кулик Алексей aka kpblc
Moderator

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


Выделить окружности, отсортировать по радиусу (например), определить вхождение одних окружностей внутрь других, снести нужное. В чем собственно проблема?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.03.2021, 09:19
#3
semagar


 
Регистрация: 09.03.2021
Сообщений: 12


Это всё нужно делать лиспом, правильно понимаю?
Нет ли каких-то решений по-проще?
semagar вне форума  
 
Непрочитано 09.03.2021, 09:38
#4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от semagar Посмотреть сообщение
Это всё нужно делать лиспом, правильно понимаю?
Нет ли каких-то решений по-проще?
не обязательно на лиспе, пишите на том языке программирования - что знаком. Штатных средств в акаде нет.
Сергей812 вне форума  
 
Непрочитано 09.03.2021, 09:45
#5
fused49


 
Регистрация: 29.11.2020
Сообщений: 5


Для окружности:
1. Выделяете все свои объекты
2. Применяете команду "ФИЛЬТР"
3. В списке выбор фильтра выбираете "Радиус круга"
4. Из списка с символом =, выбираете нужные вам условия (например для вашего примера - выбрать меньше и в числовое поле вписать радиус большей окружности).
fused49 вне форума  
 
Непрочитано 09.03.2021, 09:47
#6
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


если большие окружности регулярные, то можно так:
Код:
[Выделить все]
 (command "_.erase" (ssget '((0 . "circle") (-4 . "<") (40 . Радиус_Большей_Окружности)))))
koMon вне форума  
 
Непрочитано 09.03.2021, 09:51
#7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


fused49, это если одинаковые все, а не разнокалиберные. Там только участок печатной платы или чего-то похожего в приложении.
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.03.2021, 10:06
#8
semagar


 
Регистрация: 09.03.2021
Сообщений: 12


Цитата:
Сообщение от fused49 Посмотреть сообщение
4. Из списка с символом =, выбираете нужные вам условия (например для вашего примера - выбрать меньше и в числовое поле вписать радиус большей окружности).
Таким образом выделяются все окружности малого радиуса. Мне же надо выделить только те, которые геометрически находятся внутри больших окружностей.

https://disk.yandex.ru/i/PWevL8FUWh-glw

Да - малые окружности - одинаковые, и большие - тоже одинаковые.

Последний раз редактировалось semagar, 09.03.2021 в 10:32.
semagar вне форума  
 
Непрочитано 09.03.2021, 10:49
#9
fused49


 
Регистрация: 29.11.2020
Сообщений: 5


Цитата:
Сообщение от semagar Посмотреть сообщение
Мне же надо выделить только те, которые геометрически находятся внутри больших окружностей.
Я неправильно вас понял. Сомневаюсь что это можно реализовать стандартными средствами автокада
fused49 вне форума  
 
Непрочитано 09.03.2021, 10:54
#10
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


https://habr.com/ru/post/278765/
trir вне форума  
 
Непрочитано 09.03.2021, 11:09
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от trir Посмотреть сообщение
https://habr.com/ru/post/278765/
ТС сможет взять и применить для решения своей задачи?)
Сергей812 вне форума  
 
Непрочитано 09.03.2021, 11:12
#12
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


Цитата:
Сообщение от semagar Посмотреть сообщение
Да - малые окружности - одинаковые, и большие - тоже одинаковые.
если большие все одинаковые, то просто через выбор можно указанием диаметра выбрать все окружности, меньше какого то значения.

я давно писал на вба код (мой первый и последний.. но работает) для подобной цели. брал окружность, удалял все внутри и вставлял обозначение трубы на разрезе.
ssn вне форума  
 
Автор темы   Непрочитано 09.03.2021, 11:12
#13
semagar


 
Регистрация: 09.03.2021
Сообщений: 12


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
ТС сможет взять и применить для решения своей задачи?)
ТС сможет, но разбираться с этим долго. Быстрее всё вручную поудалять.

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от ssn Посмотреть сообщение
если большие все одинаковые, то просто через выбор можно указанием диаметра выбрать все окружности, меньше какого то значения.
Нужно выбрать только те малые окружности, которые геометрически находятся внутри больших окружностей.
В чертеже есть малые окружности, которые не лежат в больших окружностях - они должны остаться.

Последний раз редактировалось semagar, 09.03.2021 в 11:19.
semagar вне форума  
 
Непрочитано 09.03.2021, 11:24
#14
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


Цитата:
Сообщение от semagar Посмотреть сообщение
ТС сможет, но разбираться с этим долго. Быстрее всё вручную поудалять.

----- добавлено через ~5 мин. -----

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

http://dwg.ru/dnl/126
проставление разрезов на трубах.
ssn вне форума  
 
Непрочитано 09.03.2021, 11:24
#15
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от semagar Посмотреть сообщение
ТС сможет, но разбираться с этим долго. Быстрее всё вручную поудалять.
Тем более если к этому приложить голову - создав временный слой и туда перенести большие окружности (быстрый выбор), а потом заблокировать (и если есть еще что-то - тоже заблокировать или перенести на временные слои). Тогда можно целыми фрагментами чистить)
Сергей812 вне форума  
 
Непрочитано 09.03.2021, 12:02
#16
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,326


Удалять надо только окружности внутри, или можно все что находится внутри больших окружностей? Если все предложу свой вариант решения.
1. Строим полилинию вокруг заданных окружностей
2. Пробуем что-то из предложенного в этой теме: Выделение и удаление обьектов внутри замкнутой полилинии. Как?
AlexCondor вне форума  
 
Непрочитано 10.03.2021, 18:48
#17
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


semagar, есть лисп от VVA. Может, подойдет. Лежит вот здесь.

Миниатюры
Нажмите на изображение для увеличения
Название: 2021-03-10 at 18-27-03.gif
Просмотров: 91
Размер:	364.1 Кб
ID:	235295  
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как выделить (удалить) все объекты, находящиеся внутри других объектов?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выборочно удалить объекты с одинаковыми характеристиками? felisaalmeida AutoCAD 19 09.03.2021 17:58
Как удалить "Последний ввод" (Recent input) в контексном меню редактирования объектов? interior2k AutoCAD 12 21.01.2020 23:22
Как выделить объекты рамкой, за пределами экрана? valerik88 LISP 1 02.12.2016 16:30
Как вычислить и удалить одинаковые объекты? РастОК AutoCAD 10 01.05.2014 10:55
как выделить определённые объекты vba dickens Программирование 12 15.12.2011 15:54