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

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

Добавление/извлечение кода из списка выбранного примитива

Ответ
Поиск в этой теме
Непрочитано 07.04.2015, 13:13 #1
Добавление/извлечение кода из списка выбранного примитива
Andrey*
 
111
Регистрация: 25.12.2006
Сообщений: 14

Добрый день!
Программирую 2 недели.
Хочу сделать программу, которая переименовывает выбранные пользователем блоки в указанное им имя, затем вносит в описание блока некоторые данные, которые в последствии складываются.
С первой частью, кое-как разобрался - переименовывает.
Со второй никак - с помощью команды entget вывожу список выделенного блока, дальше хочу в список добавить значение 4(Block description (optional)) из базы Block group codes, но в моем списке нет кода 4.
Скажите, как его туда добавить? и каким образом формируется этот список? Я так думал, что он должен быть у каждого объекта свой по списку из справки (Block group codes), ан нет...
Спасибо.
Просмотров: 2658
 
Непрочитано 07.04.2015, 13:49
#2
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Andrey* Посмотреть сообщение
переименовывает выбранные пользователем блоки в указанное им имя
А если блоки принципиально разные? Ну выбраны блоки с именами Block1, Block2, BLock234 - и?..
Во-первых, команда _.rename; во-вторых, ищи код по замене вхождений блока на другой

Цитата:
Сообщение от Andrey* Посмотреть сообщение
с помощью команды entget вывожу список выделенного блока
Список вхождения или описания?

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от Andrey* Посмотреть сообщение
Скажите, как его туда добавить?
http://wp.me/a4lEOS-Ey ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.04.2015, 10:46
#3
Andrey*


 
Регистрация: 25.12.2006
111
Сообщений: 14


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А если блоки принципиально разные? Ну выбраны блоки с именами Block1, Block2, BLock234 - и?..
Во-первых, команда _.rename; во-вторых, ищи код по замене вхождений блока на другой

У меня есть группа блоков с одинаковыми именами, мне нужно выделять, скажем по 10 шт, и назначать новое имя и присваивать им новое значение.
Вот хотел спросить, как лучше это делать. Знаю есть несколько вариантов: 1 Добавление невидимого атрибута и внесение нужно значения туда. 2 ТО что я писал в первом сообщении 4(Block description (optional)). Но никак не могу понять как это сделать. С помощью tblsearch нахожу список, а как с ним работать с конкретным списком блока нигде не написано. 3 самый топорный, как я и сделал в имя вносить нужное значение, но при этом .
Вот код, который я написал:

(defun C:GO ()
(setq Newnameblock (GETSTRING "\n Введите значение: "))
(setq block (ssget))
(setq name (ssname block 0))
(setq blocklist (entget name))
(command "_RENAME"
"_BlOCK"
(cdr (assoc 2 blocklist))
Newnameblock
""
) ;end command

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

Цитата:
Список вхождения или описания?
С вхождениями все очень сложно, поэтому я хочу просто с чистым блоком пока разобраться.

Подскажите пожалуйста, в какую сторону двигаться?

P.S.
По команде while может у кого есть какая литература с задачками, что бы побольше попрактиковаться? А то в книгах очень мало задачек на логические операторы.

Спасибо.
Andrey* вне форума  
 
Непрочитано 20.04.2015, 13:48
#4
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


Скорее всего не из за этого, но в command "_RENAME" лучше писать _-RENAME. Если у команды есть диалоговый режим, с дефисом всегда вызывается командный. у некоторых есть вариации с +.

По литературе с задачками на логику... кхе. Это проходил еще в школе на примере паскаля, а потом еще в универе повторение было. Литературы как таковой то и не было.
ветвление if и cond (аналог case of паскалевского)
циклы repeat и while. с постусловием (uncle) нет.

p.s.
Цитата:
Сообщение от Andrey* Посмотреть сообщение
экспортированные блоки и они безимянные
U2B - Преобразовать UNNAMED в блок может поможет?
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Добавление/извлечение кода из списка выбранного примитива



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Свойства выбранного примитива Zaghim Программирование 2 05.07.2010 10:22
Как сохранить выделенность выбранного примитива или тела при переходе на другой изовид BM60 AutoCAD 11 20.10.2008 16:53
чтение данных из файла Александер Программирование 6 08.09.2005 10:24