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

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

Как в autolispe програмно узнать имя текущего слоя.

Ответ
Поиск в этой теме
Непрочитано 30.05.2014, 13:59 #1
Как в autolispe програмно узнать имя текущего слоя.
iiscienceii
 
Регистрация: 30.05.2014
Сообщений: 20

Добрый день всем. Столкнулся с задачей написания програмки по рисованию плоского изделия и расчету его стоимости зависящей от площади изделия. Вроди получилось вот только не могу решить одну задачку. Подскажите пожалуйста Как в autolispe програмно узнать имя текущего слоя.
Просмотров: 2842
 
Непрочитано 30.05.2014, 14:00
#2
Кулик Алексей aka kpblc
Moderator

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


(getvar "clayer")
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.05.2014, 14:02
#3
iiscienceii


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


Спасибо

----- добавлено через ~7 мин. -----
Еще вопрос подскажите как програмно определить существует ли слой с определенным именем?
iiscienceii вне форума  
 
Непрочитано 30.05.2014, 14:42
#4
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Функция tblsearch вроде.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 30.05.2014, 15:08
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от iiscienceii Посмотреть сообщение
как програмно определить существует ли слой с определенным именем?
ну да...
Типа
(tblsearch "LAYER" "ХХХХХХ") - вернёт T если слой ХХХХХХ есть
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 30.05.2014, 15:11
#6
Кулик Алексей aka kpblc
Moderator

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


Alan, слой в "dimstyle"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.05.2014, 15:13
#7
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Ой... Издержки Ctrl+C
Подправил
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 30.05.2014, 18:01
#8
iiscienceii


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


Еще вопрос. Подскажите как програмно осуществить выбор объекта с определенным именем. ssget такого вроди не позволяет.
iiscienceii вне форума  
 
Непрочитано 30.05.2014, 18:28
#9
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от iiscienceii Посмотреть сообщение
Подскажите как програмно осуществить выбор объекта с определенным именем. ssget такого вроди не позволяет.
Что ты имеешь ввиду под "объект с определенным именем"?

Наверное пора открыть документацию по ЛИСПу, ну или HELP хотя бы.
Цитата:
Функция ssget

Creates a selection set from the selected object
(ssget [sel-method] [pt1 [pt2]]
[pt-list] [filter-list])
У ssget имеются фильтры, которые помогают при выборе объектов в набор
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 30.05.2014, 18:30
#10
iiscienceii


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


Мне не нужно выбирать набор мне нужно выбрать ранее созданый объект имя которого я знаю. При чем этот объект располагается на заранее созданом слое с известным именем.
iiscienceii вне форума  
 
Непрочитано 30.05.2014, 18:43
#11
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Ещё раз спрашиваю - "Что ты имеешь ввиду под "объект с определенным именем"?

Выбери много объектов, и сортировкой пройдись по списку со своими критериями.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 30.05.2014, 19:01
#12
iiscienceii


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


Цитата:
Сообщение от Alan Посмотреть сообщение
Ещё раз спрашиваю - "Что ты имеешь ввиду под "объект с определенным именем"?

Выбери много объектов, и сортировкой пройдись по списку со своими критериями.
(ssget "_X" '((0 . "LWPOLYLINE") (8 . "PLAN"))))
Выбираю все полилинии на слое PLAN. Но она не работаеет непойму почему. Выдает что слишком мало аргументов.

----- добавлено через ~27 мин. -----
Извеняюсь. Я только учусь и потому так торможу. Все решил эту проблему. Теперь возникла другая. Подкажите как перенести объкты с одного слоя на другой????

Последний раз редактировалось iiscienceii, 30.05.2014 в 20:02.
iiscienceii вне форума  
 
Непрочитано 30.05.2014, 22:00
#13
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


У тебя лишняя закрывающая скобка...
Старайся отладку вести в редакторе VLIDE, там много возможностей.
Результат сразу в переменную, в редакторе VLIDE всегда можно посмотреть содержимое.
например (setq sp (ssget "_X" '((0 . "LWPOLYLINE") (8 . "PLAN"))))
Цитата:
Выбираю все полилинии на слое PLAN.
Выбираю все объекты типа полилиния на слое PLAN. Так наверное правильнее сказать.
Описание работы в редакторе VLIDE см. у kpblc http://autolisp.ru/2009/09/10/vlide-misc-01/
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 30.05.2014, 22:53
#14
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от iiscienceii Посмотреть сообщение
Подкажите как перенести объкты с одного слоя на другой????
Грызи entmod
gomer вне форума  
 
Непрочитано 31.05.2014, 11:25
#15
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Изменить свойства. Команды "_change" ("изменить"), "_chprop" ("свойства").
Profan вне форума  
 
Непрочитано 05.06.2014, 11:48
#16
Vladimir_Sergeevich

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


Цитата:
Сообщение от iiscienceii Посмотреть сообщение
мне нужно выбрать ранее созданый объект имя которого я знаю
уж случаем не (sssetfirst nil (ssadd *ename*))?
Цитата:
Сообщение от iiscienceii Посмотреть сообщение
Подкажите как перенести объкты с одного слоя на другой
или (vla-put-Layer (vlax-ename->vla-object *ename*) 'layername)
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 05.06.2014, 12:04
#17
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Vladimir_Sergeevich Посмотреть сообщение
Подкажите как перенести объкты с одного слоя на другой
Код:
[Выделить все]
(setq lay "My New Layer"
      en (car(entsel))
      ed (entget en)
      )
(entmod (subst (cons 8 lay)(assoc 8 ed) ed))
Причем слоя на момент изменения может не существовать. Он создастся автоматом с настройками по умолчанию
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как в autolispe програмно узнать имя текущего слоя.

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не проходит теплорасчет? Suom Конструкции зданий и сооружений 15 10.08.2011 17:22
системная переменная, содержащая имя текущего слоя gen1939 AutoCAD 1 27.08.2010 06:35
Перескок с текущего слоя на "0" при выполнении команды рисования MissGreen AutoCAD 26 27.07.2010 14:20
Цвет курсора пространства листа=цвету текущего слоя mmax AutoCAD 12 07.01.2010 18:13
Как выбрать текст АвтоЛиспом не только из текущего слоя но из всех доступных слоев (использую entnext)? lexluther LISP 2 25.08.2009 14:40