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

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

AutoCAD 2017 VLisp. Как программно группу объектов объектов поместить на задний план?

Ответ
Поиск в этой теме
Непрочитано 06.11.2016, 03:42 #1
AutoCAD 2017 VLisp. Как программно группу объектов объектов поместить на задний план?
Yura Agafonov
 
Инженер.
 
Minsk
Регистрация: 04.05.2012
Сообщений: 95

Сервис -> Порядок прорисовки -> На задний план
В результате запускается команда "AI_DRAWORDER"
Пробую запустить ее через функцию Command-s
Код:
[Выделить все]
 (Command-s "_AI_DRAWORDER")
Результат - Неизвестная ошибка.
Далее пробую использовать команду "draworder"

Код:
[Выделить все]
 (defun _PutToBack (ent /)
  (command "draworder" ent "" "А" "")
)

(setq _nabor (ssget '((0 . "INSERT"))))
  (setq _n (sslength _nabor))
  (setq i -1)
  (repeat _n
    (setq i (+ i 1)) 
    (setq _ent (cdr (assoc -1 (entget (ssname _nabor i)))))    
      (_PutToBack _ent)   
  )					;end repeat
И данный код не работает. В чем моя ошибка?
Просмотров: 1908
 
Непрочитано 06.11.2016, 09:59
#2
VVA

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


Пробуй так
Код:
[Выделить все]
(ai_draworder "_f") ;_send to front
(ai_draworder "_b") ;_send to back
Перед этим сделай набор предварительно выбранным
Код:
[Выделить все]
(if (setq ss (ssget "_:L" '((0 . "INSERT"))))
  (progn
    (SSSETFIRST ss ss)
    (ai_draworder "_b") ;_send to back
    )
  )
По лисперски
Код:
[Выделить все]
(if (setq ss (ssget "_:L" '((0 . "INSERT"))))
    (LM:movetobottom ss)
  )
Недостающее смотреть здесь Draw Order Functions
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 06.11.2016, 14:50
#3
Yura Agafonov

Инженер.
 
Регистрация: 04.05.2012
Minsk
Сообщений: 95
Отправить сообщение для Yura Agafonov с помощью Skype™


Спасибо. Единственное SSSETFIRST работает только для набора.
А как сделать предварительно выбранным не весь набор, а i-ый элемент набора _ent , то есть
Код:
[Выделить все]
 (setq _ent (cdr (assoc -1 (entget (ssname _nabor i)))))  
Yura Agafonov вне форума  
 
Непрочитано 06.11.2016, 17:04
#4
Кулик Алексей aka kpblc
Moderator

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


http://autolisp.ru/2011/12/16/draworder/ ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.11.2016, 20:48
#5
VVA

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


Цитата:
Сообщение от Yura Agafonov Посмотреть сообщение
А как сделать предварительно выбранным не весь набор, а i-ый элемент набора _ent
создать из этого элемента набор. Но лучше проштудировать ссылку в #4
Код:
[Выделить все]
(SSSETFIRST  nil (ssadd _ent))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoCAD 2017 VLisp. Как программно группу объектов объектов поместить на задний план?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Object Enabler для Autocad 2015 объектов из Autoplant zekatyumen AutoCAD 7 14.09.2015 07:10
Как программно (AutoLisp, VLisp) определить материал трубопровода, построенного средствами AutoCAD MEP? Громов Владимир Вертикальные решения на базе AutoCAD 3 27.03.2015 09:55
Возможно ли в автокаде программно преобразовать в блок большую группу объектов расположенных в пространстве и схожих по геометри Jоhnny Программирование 6 08.12.2012 00:24
Подскажите программу правильной конвертации PROXY объектов "СПДС График" в обычные объекты AutoCAD МишаИнженер Программирование 2 03.11.2011 10:05