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

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

Как найти в чертеже вхождения блока по его имени?

Ответ
Поиск в этой теме
Непрочитано 26.09.2024, 15:04
Как найти в чертеже вхождения блока по его имени?
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616

Всем привет!

Казалось бы, чего проще?

Пусть у нас в чертеже (а мы точно об этом знаем!) есть блок по имени "БЛОК-123"

Тогда:

(ssget "_X" '((0 . "INSERT")(2 . "БЛОК-123")))

получаем набор и радуемся.

Но вот непонятный случай - блок есть (мы видим его глазами), его можно выбрать
и в таблице свойствах примитива (той, что в левой части экрана) будет честно
указано его имя: "БЛОК-123".

Хорошо, делаем:

(entget (car (entsel"\nУкажите требуемый элемент: ")))

И смотрим на его код:

((-1 . #<Имя примитива: 0000026913321C80>) (0 . "INSERT") (5 . "DEC7") (102 . "{ACAD_XDICTIONARY") (360 . #<Имя примитива: 0000026913324380>) (102 . "}") (330 . #<Имя примитива: 000002691331A040>) (100 . "AcDbEntity") (67 . 1) (410 . "ОА-ВЫПУСК") (8 . "Слой1") (62 . 1) (100 . "AcDbBlockReference") (66 . 1) (2 . "*U57") (10 391.0 5.0 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 1) (71 . 1) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

Т.е. блок почему-то стал "анонимным"...

Вопрос:

Как в этом случае найти вхождения блока "БЛОК-123" ?

Ну и попутно - обратная задача.

Как "раскрутить" имя "*U57" до оригинального "БЛОК-123" ?
__________________
Счастливо, Алексей!
Просмотров: 1691
 
Автор темы   Непрочитано 29.09.2024, 18:49
#21
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Кстати, альтернатива ssget - интересная тема.

Была у меня несколько лет назад задача - нужно
было выбрать объекты, "пересекающие" или
"лежащие за, но при этом находящиеся сколь
угодно близко" к некоей линии.

Поэтому (ssget "W") не подходил, а (ssget "C")
или цеплял линию или пропускал близкие к ней
объекты (типа "Линия" - это отрезок, а объект -
параллельный к ней и лежащий очень близко
другой отрезок). В зависимости от заданного
"допуска" и/или масштаба чертежа на экране.

При этом объект "Линия" заранее не известен
(не выбросишь его из набора) и в общем случае
его вообще могло не быть.

Приходилось делать захваты объектов с разных
сторон этой "Линии" ("C" и "W"), проверять
наборы на "пересекаемость" объектов + делать
пристальный анализ объектов, попавших
одновременно в несколько наборов.

Очень тогда хотелось функции типа "аналитически
точного" ssget ...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 29.09.2024, 18:58
#22
Кулик Алексей aka kpblc
Moderator

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


Проход по активному пространству, выбор примитивов, удовлетворяющих какому-то там условию...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как найти в чертеже вхождения блока по его имени?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При переносе вхождения блока за базовую точку, многострочный атрибут остается на месте kuraga97 AutoCAD 5 20.07.2023 08:56
Нумерация имени блоков (внутри блока атрибут) dim5678 LISP 13 28.04.2020 19:49
Как найти угол поворота блока, вставленного в ПСК, отличной от мировой 480725 Программирование 22 10.06.2018 20:27
Как применить изменения блока ко всем его копиям на чертеже? Валерий М.В. AutoCAD 5 10.05.2017 20:48
Найти объект в чертеже Алиевич Программирование 9 29.03.2011 15:28