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

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

Пояснения к слоям на lisp

Ответ
Поиск в этой теме
Непрочитано 29.01.2014, 08:57 #1
Пояснения к слоям на lisp
Fedorino
 
автоматизация и организация черчения
 
Sterlitamak
Регистрация: 17.11.2009
Сообщений: 135

Здравствуйте, форумчане! Искал здесь решение подобного вопроса и ничего не нашел, возможно плохо искал.
Подскажите, как с помощью lisp добраться до пояснения к слоям. Т.е. слой создать получается с помощью entmake.
Но необходимо еще и добавить текстовое пояснение к слою. Например, "видовые экраны".
Как это сделать не используя command? Желательно не трогать ActiveX, я пока в них не разбираюсь.
Заранее, спасибо!

Изображения
Тип файла: jpg для форума.JPG (42.8 Кб, 290 просмотров)

__________________
слесарь САПР
Просмотров: 3079
 
Непрочитано 29.01.2014, 09:17
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Создай слой с именем 1
Задай ему пояснение "видовые экраны"
Код:
[Выделить все]
(setq l (TBLOBJNAME "layer" "1"))
(entget l '("*"))
Цитата:
Команда: (entget l '("*"))
((-1 . <Имя объекта: 7ffffb06000>) (0 . "LAYER") (330 . <Имя объекта:
7ffffb03820>) (5 . "78") (100 . "AcDbSymbolTableRecord") (100 .
"AcDbLayerTableRecord") (2 . "1") (70 . 0) (62 . 7) (6 . "Continuous") (290 .
1) (370 . -3) (390 . <Имя объекта: 7ffffb038f0>) (347 . <Имя объекта:
7ffffb03a10>) (-3 ("AcAecLayerStandard" (1000 . "") (1000 . "видовые экраны"))))
Готовые функции и команды
Lisp. Создание слоя(слоёв) из мастер-списка. Изменения в программу CLAY от JefferyPSanders
http://forums.autodesk.com/t5/Visual...sp/m-p/3873176
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 29.01.2014 в 09:31.
VVA вне форума  
 
Автор темы   Непрочитано 29.01.2014, 09:29
#3
Fedorino

автоматизация и организация черчения
 
Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135


Большое спасибо! Все понятно, т.е. мы раздвинули границы отображения списка dxf кодов.
__________________
слесарь САПР
Fedorino вне форума  
 
Непрочитано 29.01.2014, 09:36
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Fedorino Посмотреть сообщение
т.е. мы раздвинули границы отображения списка dxf кодов.
Это называется "расширенные данные" или xdata (поищи xdata.lsp в express tools
Кое что есть здесь
Пару ссылок я добавил в предыдущий пост
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.01.2014, 09:43
#5
Fedorino

автоматизация и организация черчения
 
Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135


Спасибо! Вот уже второй месяц читаю книгу Полещука "Autolisp в среде AutoCAD", про (entget l '("*")) ничего сказано не было.
Про расширенные данные есть параграф, но я так понял там говорится о собственном приложении, которое будет извлекать эти расширенные данные.

----- добавлено через ~9 мин. -----
И еще вопрос можно? Решение где-то в области расширенных данных.
Как сделать слои уникальными? Т.е. поместить некоторую метку в создаваемый слой.
Это планируется сделать для того, чтобы если пользователи переименовали слой, изменили цвет и описание слоя.
То при следующем открытии чертежа, все вернулось во свояси. Вот думаю за какой dxf код зацепиться.
__________________
слесарь САПР
Fedorino вне форума  
 
Непрочитано 29.01.2014, 10:45
#6
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


я так думаю создай в программе образцы слоев какие надо и проверяй действующие в акаде скажем по имени согласно образцу.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Автор темы   Непрочитано 29.01.2014, 11:40
#7
Fedorino

автоматизация и организация черчения
 
Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135


nolte, слишком просто, нужно, слой возвращать в исходное состояние.
допустим есть слой созданный ВЭ. А в нем по dxf коду №x есть данные=const у всех пользователей.
Пользователь поменял название слоя, изменил цвет, пояснение и др.
Но я то знаю что по коду x у меня этот слой имел название ВЭ.
И возращаю его при след запуске в исходное состояние.
Теперь и осталось найти этот код x, либо его как то присвоить в качестве расширенных данных.
__________________
слесарь САПР
Fedorino вне форума  
 
Непрочитано 29.01.2014, 12:35
#8
Кулик Алексей aka kpblc
Moderator

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


В таком случае советую использовать внешние файлы настроек и при необходимости читать данные оттуда. Получается намного более гибкое решение.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2014, 14:32
#9
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


Я так думаю что лучше загонять в расширенные данные ключик слоя, потом по ключу проверять dxf коды и если надо то править их. Если слоев много и они добаляются, то лучше способ из внешнего файла, если мало то мона просто лиспом определить их и проверять.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Автор темы   Непрочитано 29.01.2014, 14:56
#10
Fedorino

автоматизация и организация черчения
 
Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135


nolte, ага склоняюсь к первому варианту. Хотелось бы посмотреть вариант №2 - настройки из внешнего файла.
Может кто кинет ссылочку на подобный код, желательно код без ActiveX, я еще новичок в лиспе.
Всем спасибо, за подсказки!
__________________
слесарь САПР
Fedorino вне форума  
 
Непрочитано 31.01.2014, 22:47
#11
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


вроде как наваял чего то тестируйте критикуйте
лиспик записывает настройки слоя стандартизируемого в файл txt, в новом документе проверяет если есть стандартные слои, проверяет если настройки этих слоев изменены и если изменены возвращает их к стандарту,
если стандартный слой отсутствует в чертеже, то создает его.
Следует изменить путь файла основного и временного на свой, я так думаю что можно добавить или убрать коды по своему усмотрению.
функция для добавления в текстовый файл новых стандартных слоев - 811
функция для проверки соответствия слоев - 810

сори запамятовал про подсказку gomer'a (спасибо ему), ее надо добавить в файл.
Код:
[Выделить все]
 
(defun dxf (x y)
(cdr (assoc x (entget y)))
)
L_lay_standart.lsp
__________________
Знание лисп: со справочником Н. Полещука

Последний раз редактировалось nolte, 31.01.2014 в 23:01.
nolte вне форума  
 
Непрочитано 31.01.2014, 23:16
#12
Кулик Алексей aka kpblc
Moderator

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


Команда _.checkstandards делает все то же самое, и еще немного
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.01.2014, 23:41
#13
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


классно .
ну, потренировался однако.Кстати, Алексей, как подгрузить программно типы линий (поиск дал скудные результаты), если тип линий не стандартный просит загрузку и останавливает лисп.
__________________
Знание лисп: со справочником Н. Полещука

Последний раз редактировалось nolte, 31.01.2014 в 23:57.
nolte вне форума  
 
Непрочитано 31.01.2014, 23:59
#14
Кулик Алексей aka kpblc
Moderator

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


http://www.google.ru/cse?cx=partner-...oad&gsc.page=1

----- добавлено через 42 сек. -----
Дополнительно: http://www.caduser.ru/forum/index.ph...D=44&TID=22816
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Пояснения к слоям на lisp



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
Lisp - сотрировка по слоям, по цвету и толщине dextron3 LISP 15 16.02.2012 10:07
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
LISP. Распределение по слоям объектов dim.,hatch,text Суханова LISP 5 28.08.2008 13:31