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

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

Доделать выбор нескольких текстовых примитивов.

Ответ
Поиск в этой теме
Непрочитано 24.03.2015, 16:13 #1
Доделать выбор нескольких текстовых примитивов.
rtyu
 
Регистрация: 23.02.2012
Сообщений: 221

Здравствуйте!! Ребята помогите доделать код. В лиспе не силён.

Вот код
Код:
[Выделить все]
 
(defun c:Z()
(setq pr (entget (car (entsel)))
      pr (subst '(210 0.0 0.0 0.1) (assoc 210 pr) pr))
(entmod pr)
);
Этот код отвечает за 210 группу, которая отвечает за изменение направления текста. То что есть сейчас мне хотелось бы переделать, чтобы можно было бы выделить несколько текстовых примитивов в чертеже и нажать на кнопку и чтобы все выделенные текстовые примитивы изменились. А также можно сделать, так чтобы в независимости выбрал ты объекты, а потом вызвал функцию Z или наоборот сначала вызвал функцию Z, а потом выделили нужные объекты нажал энтер и функция отработала. Просто не совсем удобно к примеру у меня выделены несколько текстовых примитивов я вызываю функцию Z она опять меня просит выделить необходимые объекты и я должен опять их выделять хотя они были выделены до вызова функции.

Заранее благодарен за помощь
Просмотров: 2989
 
Непрочитано 24.03.2015, 16:20
#2
Кулик Алексей aka kpblc
Moderator

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


http://forum.dwg.ru/showpost.php?p=188342&postcount=21
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.03.2015, 11:41
#3
rtyu


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


сделал так
Код:
[Выделить все]
 
(defun c:Z(value / tab item)

(repeat (setq tab  nil
           item (sslength value)
        ) ;_ end setq
    (setq tab (cons (ssname value (setq item (1- item))) tab))   
)
(setq pr (entget (car (entsel)))
      pr (subst '(210 0.0 0.0 0.1) (assoc 210 pr) pr))
(entmod pr)
);
Он пишет ошибку слишком мало аргументов
rtyu вне форума  
 
Непрочитано 25.03.2015, 11:55
#4
Кулик Алексей aka kpblc
Moderator

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


rtyu, ты почему в команду параметры передаешь?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.03.2015, 12:11
#5
rtyu


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


В примере ж написано и я написал, а как правильно?
rtyu вне форума  
 
Непрочитано 25.03.2015, 12:13
#6
Кулик Алексей aka kpblc
Moderator

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


Еще раз прочитай dwg.ru/pub/9 и посмотри на разницу между функцией и командой. Это раз. Второе: прочитай всю тему, на которую я дал ссылку - там в предыдущих постах описывалось, что и как передается.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.03.2015, 13:23
#7
VVA

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


rtyu, без проверки
Код:
[Выделить все]
(defun c:Z ( / ss item pr)
(if (setq ss (ssget))
  (repeat (setq item (sslength ss))
    (setq pr (entget(ssname ss (setq item (1- item))))
	  pr (subst '(210 0.0 0.0 0.1) (assoc 210 pr) pr))
    (entmod pr)
    ))(princ))
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 25.03.2015 в 14:42.
VVA вне форума  
 
Автор темы   Непрочитано 25.03.2015, 13:24
#8
rtyu


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


убрал из команды параметры и на большее к сожалению силёнок не хватило
Код:
[Выделить все]
 
(defun c:Z()
(repeat (setq tab  nil
           item (sslength value)
        ) ;_ end setq
    (setq tab (cons (ssname value (setq item (1- item))) tab))   

(setq pr (entget (car (entsel)))
      pr (subst '(210 0.0 0.0 0.1) (assoc 210 pr) pr))
(entmod pr)
)
);
----- добавлено через ~9 мин. -----
Цитата:
Сообщение от VVA Посмотреть сообщение
rtyu, без проверки
Код:
[Выделить все]
 
(defun c:Z ( / ss item pr)
(if (setq ss (ssget))
  (repeat (setq item (sslength ss))
    (setq pr (entget(ssname ss (setq item (1- item))))
	  pr (subst '(210 0.0 0.0 0.1) (assoc 210 pr) pr)
	  )
    (entmod pr)
    )
)
  (princ)
);
VVA, Большое спасибо!!! Работает!!!
rtyu вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Доделать выбор нескольких текстовых примитивов.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP / Быстрый выбор примитивов по образцу TararykovDG LISP 18 21.01.2021 12:35
Изменение нескольких текстовых примитивов. Gornyak AutoCAD 14 24.09.2014 13:37
Сортировка текстовых примитивов CB Программирование 6 11.12.2007 15:44
Выбор всех примитивов одним кликом DANZZ AutoCAD 5 12.08.2006 17:49
Выбор примитивов в функции (command) mmax Программирование 12 19.05.2006 20:02