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

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

Как заменить текст запроса в стандартной команде?

Ответ
Поиск в этой теме
Непрочитано 24.11.2009, 10:56 #1
Как заменить текст запроса в стандартной команде?
Jonas
 
конструктор машиностроитель
 
Новосибирск
Регистрация: 14.05.2007
Сообщений: 893

Можно ли в стандартной команде заменить запрос (например "Выберите объект") на другой (например "Укажите деталь)?
Просмотров: 3402
 
Непрочитано 24.11.2009, 11:03
#2
Profan


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


Нет. (Хотя, если ты рискнёшь редактировать файл acadres.dll, то можно попробовать. Но тогда при выборе любого объекта всегда будет предлагаться выбрать "деталь".)
Profan вне форума  
 
Непрочитано 24.11.2009, 11:14
#3
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Нужно писать свою команду, даже если ты используешь стандартную. При этом отключить эховывод и выводить в нужном месте свое сообщение.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 24.11.2009, 11:14
#4
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Вопрос в программировании, а значит заменять штатные запросы можно и нужно (за некоторыми исключениями в ssget).

Общая методика:
1. Штатная команда вызывается функцией command. Надо очень хорошо знать соответствующую команду и, в нужный момент, подставлять свои вопросы. Например, если рисовать отрезки, то нужен ввод двух точек. Можно сделать так (без проверок и защит):

Код:
[Выделить все]
(setq pt1 (getpoint "\nВведи первую точку")
        pt2 (getpoint pt1 "\nВведи Вторую точку")
)
(command "_.LINE" pt1 pt2)
Вот и свои вопросы в штатной команде.

2. Что касается "Выберите" или "Укажите", то здесь используется функция (а не команда) entsel, а у неё есть аргумент приглашения

(setq ent (entsel "Укажите деталь:"))
ShaggyDoc вне форума  
 
Непрочитано 24.11.2009, 11:16
#5
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Пример: ^C^C(setq e(entsel "Укажите деталь "));\_copy;!e;;

Последний раз редактировалось ытя, 24.11.2009 в 11:16. Причина: Опередили
ытя вне форума  
 
Непрочитано 24.11.2009, 11:20
#6
Profan


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


Все вы выдумываете. В данном случае стандартная команда - это "_select" ("выбрать"). А самому напрограммировать можно что угодно.
Profan вне форума  
 
Непрочитано 24.11.2009, 11:21
#7
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Jonas Посмотреть сообщение
Можно ли в стандартной команде заменить запрос (например "Выберите объект") на другой (например "Укажите деталь)?
Если имеется в виду изменить запрос для фукции SSGET
тогда используй перед ней переменную NOMUTT=1
а после в устанавливай обратно в ноль

~'J'~
Олег (jr.) вне форума  
 
Непрочитано 24.11.2009, 11:24
#8
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Я уже показывал как англифицировать команду mirror для русского акада.
Если нужно прям взамен mirror то юзается undefine \ redefine
Цитата:
(defun C:sl_mirror(/ sl_ask ss lstLen sl_p1 sl_p2)
(vl-load-com)

(setq ss (ssget));
(setq lstLen (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(setq sl_p1 (getpoint "Specify first point of mirror line: "))
(setq sl_p2 (getpoint sl_p1 "Specify second point of mirror line:"))
(princ "\n")
(initget "Yes Да Н No Нет Т _Yes Yes Yes No No No")
(setq sl_ask (getkword "Erase source objects? [Yes/No] <N>: "))
(if
(progn (or (= sl_ask "Yes")(not (= sl_ask nil))))
(progn
(vl-cmdf "_mirror")
(foreach ent lstLen
(vl-cmdf ent)
)
(vl-cmdf "")
(vl-cmdf sl_p1)
(vl-cmdf sl_p2)
(vl-cmdf "_y")
)
(progn
(vl-cmdf "_mirror")
(foreach ent lstLen
(vl-cmdf ent)
)
(vl-cmdf "")
(vl-cmdf sl_p1)
(vl-cmdf sl_p2)
(vl-cmdf "_n")
)
)


(princ)
)
Sleekka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как заменить текст запроса в стандартной команде?

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать однострочный текст подчеркнутым? zayyaz AutoCAD 14 30.11.2009 05:27
Как пустить текст вдоль изогнутой линии? Shaft AutoCAD 47 01.06.2009 16:13
Как найти и заменить текст по всем листам только на одном слое? Португалец AutoCAD 10 20.05.2009 04:48
Как заставить многострочный текст при увеличении его высоты не переноситься на строку вниз? Shaft AutoCAD 4 06.05.2009 09:29
Как перенести текст из AutoCAD'a в MS Word? sear_ch AutoCAD 4 12.01.2004 20:50