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

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

Отладка макрокоманды на кнопку

Ответ
Поиск в этой теме
Непрочитано 30.08.2016, 18:16 #1
Отладка макрокоманды на кнопку
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Доброго.
Имею команду CHG_SELECTED_ATT из лиспа отсюда.
Делаю макрокоманду на кнопку.
Цель макро - обновить атрибуты с тегом FLOOR.
По умолчанию команда CHG_SELECTED_ATT запрашивает стандартный быбор элементов, то есть выделяем что хотим, можем несколько раз выбрать, потом энтер и лисп запрашивает тег атрибута.
Пытаюсь иметь все это, но не вводить FLOOR каждый раз.
Пока макрокоманда у меня имеет такой вид:
^C^CCHG_SELECTED_ATT;\\;FLOOR;
Но при этом выделение элементов проводится только раз, и далее, по оканчанию выбора, без энтера выходит запрос на ввод атрибута, то есть выбрать скажем двумя рамками нельзя.

Подскажите плиз как подправить макрокоманда.
Просмотров: 2626
 
Непрочитано 31.08.2016, 02:28
1 | 1 #2
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Раз уж хочешь железно задавать тег, то не проще ли вывести его в аргумент? Правда, тогда придется делать команду функцией, но она ничем не уступит макрокоманде:
Код:
[Выделить все]
 (defun CHG_SELECTED_ATT (TAGNAME / ATTAG ATTBLKSS ATTTXT CDATE CNT MORE NAME TBENT TBNEXT
                       TXTYPOS)

  ;Производим выбор блоков
  (setq ATTBLKSS (ssget '((0 . "INSERT")(66 . 1)))
        CNT 0
    ) 
  ;TAGNAME (getstring "\nВведите наименование Тега?")
   (setq  NEWATT (getstring "\nВведите новое значение атрибута?")
     )

  (while (< CNT (sslength ATTBLKSS))
    (setq TBENT (entnext (ssname ATTBLKSS CNT)))
    (setq MORE t
      )   
    (while MORE
      (setq TBNEXT (entget TBENT))
      (cond ((= (ENTVAL TBNEXT 0) "ATTRIB")
             (setq ATTAG (ENTVAL TBNEXT 2)
                   ATTTXT (ENTVAL TBNEXT 1)
                   TXTYPOS (cadr (ENTVAL TBNEXT 10))                  
               )
         ;The
             (cond
               ((= ATTAG TAGNAME) (ATTMOD NEWATT TBNEXT))
               ) ;cond
             (setq TBENT (entnext TBENT))
             )
            ((= (ENTVAL TBNEXT 0) "SEQEND") (setq MORE NIL))
            (t (setq TBENT (entnext TBENT)))
            ) ;cond
      ) ;while
    (setq CNT (1+ CNT))
    ) ;while
  (command "REGENALL")
  (princ)
  )
Тогда на кнопку ставишь макрос
Код:
[Выделить все]
^C^C(CHG_SELECTED_ATT "FLOOR");
А ежели хочешь непременно команду, то насоздавай их сколько угодно и добавляй на кнопки:
Код:
[Выделить все]
(defun C:FLOOR ( / ) (CHG_SELECTED_ATT "FLOOR"))
Код не запускал - всё без проверок, однако общий смысл, думаю, должен быть понятен.
skkkk вне форума  
 
Автор темы   Непрочитано 31.08.2016, 04:54
#3
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


Спасибо за идею . Я то и позабыл что есть такая возможность... Завтра поменяю макросы кнопок и функцию! Еще нужно доделать замечания от крыса
И все таки интересно, разве нельзя с командой такой макрос сделать чтоб работал стабильно?...

Последний раз редактировалось Red Nova, 31.08.2016 в 05:29.
Red Nova вне форума  
 
Непрочитано 31.08.2016, 08:17
#4
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Еще нужно доделать замечания от крыса
Эт какие и откуда?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.08.2016, 09:23
#5
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Эт какие и откуда?
думаю эти http://forum.dwg.ru/showpost.php?p=1564963&postcount=2
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Отладка макрокоманды на кнопку

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно повесить лисп программу на кнопку Нитонисе LISP 32 16.06.2021 13:18
СПДС. Как сделать кнопку на панели инструментов для вызова объекта из базы? LynxM Прочее. Программное обеспечение 5 27.08.2013 15:57
Как перемещение колёсиком на мышке перенести на клавиатуру на кнопку?? Mixon2010 AutoCAD 43 25.06.2013 22:26
2004 акад убил 3-ю кнопку мыши. Помогите alex-alex AutoCAD 3 22.11.2004 09:11