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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Справочник команд > QAFLAGS (Системная переменная)

QAFLAGS (Системная переменная)

Ответ
Поиск в этой теме
Непрочитано 21.07.2008, 10:32 1 | #1
QAFLAGS (Системная переменная)
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,990

Недокументированная системная переменная. Используется разработчиками и командой Autodesk долгое время (<r12)
Раздобытое описание в интернете (www.jtbworld.com)
Цитата:
QAFLAGS been used a long time (<r12) by developers and autodesk themself too.

QAFLAGS acceps a value between 0 and 32767
bit 0 (1) : ^C in menu macro cancels grips (acts like keyboard <Esc>).
bit 1 (2) : no pause during text screen listings.
bit 2 (4) : no "alert" dialogs (text display instead).
bit 7 (128) : accepts "screen picks" (point lists) via (command) function.

Normally QAFLAGS should be set to 0. Because it might be set to other values it is a good idea to put (setvar "QAFLAGS" 0) in acaddoc.lsp or any other of your lisp files that you use for startup.
Вольный перевод:
  • QAFLAGS = 1. При вызове команд из меню или панелей генерируется нажатие клавиши ESC (снимаются грипсы)
  • QAFLAGS = 2. В текстовом экране AutoCAD (F2), при выводе длинных списков (например командами LIST или MASSPROP), предотвращается пауза с предложением " Press ENTER to continue: ", т.е. предотвращается генерация списков страниц.
  • QAFLAGS = 4. Это предотвратит вывод диалогового окна предупреждений (Alert) в AutoCAD. Вместо этого предупреждение будет выведено в командной строке.
  • QAFLAGS = 128. Точно сформулировать не смог
__________________
Как использовать код на Лиспе читаем здесь
Просмотров: 11684
 
Автор темы   Непрочитано 21.07.2008, 10:44
#2
VVA

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


Небольшие пояснения. QAFLAGS=1
Команды, требующие выбора объектов (например _MOVE) перестают "обращать внимание" на значение системной переменной PICKFIRST.
Т.е. при вызове команды из меню или панели сначала генерируется нажатие ESC (снимаются если есть грипсы предварительного выбора).
Пример.
1. Устанавливаем QAFLAGS в 1
2. Предварительно выбираем объекты на экране
3. Вызываем из панели команды _MOVE
Эффект: Команда всегда запрашивает "Выберите объекты"
В то же время если PICKFIRST=1 и выполнить пункты 1 и 2, а в п.3 набрать _MOVE в командной строке, то предварительный выбор будет "съеден"
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 14.06.2009 в 12:02. Причина: Орфография
VVA вне форума  
 
Автор темы   Непрочитано 21.07.2008, 10:47
#3
VVA

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


QAFLAGS=2
Пример генерации списка системных переменных
Цитата
Цитата:
To generate a list of the system variables and their values
  1. Enter _LOGFILEON on the command line to activate the log file.
  2. Enter QAFLAGS on the command line, and then enter 2 for the value.
  3. Enter _SETVAR on the command line.
  4. At the prompt, "Enter variable name or [?]", enter ?.
  5. Enter * to list all of the variables.
  6. Enter LOGFILENAME on the command line to display the file path of the log file (for example, C:\Documents and Settings\USERNAME\Local Settings\Application Data\Autodesk\ADT 2007\enu\DRAWINGNAME.log).
Думаю здесь все понятно и перевода не требуется
Ссылка на похожую тему
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 21.12.2014 в 10:24. Причина: актуальная ссылка
VVA вне форума  
 
Непрочитано 01.08.2008, 21:23
1 | 1 #4
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


qaflags=2 полезная вещь, если надо распечатать список переменных. В книге Н.Н. Полещука (2004) сказано: Точного описания нет. Влияет на режим работы некоторых LISP-функций, выводящих сообщения (например, alert). Хорошо-бы он прочитал тему.
Vova вне форума  
 
Автор темы   Непрочитано 12.10.2010, 10:45
#5
VVA

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


Обнаружился еще один интересный нюанс использования QAFLAGS. Это касаестя использования команды _EXPLODE при вызове из Lisp-функций и Lisp-скриптов. Описание использования команды однозначно говорит нам, что (цитата из справки по команде _EXPLODE (РАСЧЛЕНИТЬ))
Цитата:
Примечание:Если используется какой-либо пакет или функция ObjectARX®, то за один раз можно выполнить расчленение только одного объекта.
Цитата:
Note: If you're using a script or an ObjectARX® function, you can explode only one object at a time.
Ссылки на похожие темы:
Тройной Explode???
Не могу взорвать набор блоков
Как разбить блоки?
(vl-cmdf "_.explode" (ssget))
Еще один вариант решения был подсмотрен на этом (требуется регистрация) форуме
Классический вариант для взрыва набора объектов (на примере блоков):
Код:
[Выделить все]
(defun c:440 ( / *error* ss qf i )

 (if (setq ss (ssget "_X" (list '(0 . "INSERT"))))
    (progn
      (setq i '-1)
      (repeat (sslength ss)
        (command "_.explode" (ssname ss (setq i (1+ i))) "")
        )
    )
  )

  (princ)
)
Вариант с использованием QAFLAGS
Код:
[Выделить все]
(defun c:440 ( / *error* ss qf )
 ;; © Lee Mac 2010
  (defun *error* ( msg )
    (and qf (setvar 'QAFLAGS qf))
    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
        (princ (strcat "\n** Error: " msg " **")))
    (princ)
  )
  (if (setq ss (ssget "_X" '((0 . "INSERT"))))
    (progn
      (setq qf (getvar 'QAFLAGS))
      (setvar 'QAFLAGS 5)
      (command "_.explode" ss "")
      (setvar 'QAFLAGS qf)
    )
  )
  (princ)
)
PS. Проверял на 2008 Автокаде. Требуется проверка в старших версиях и вертикальных решениях

Вариант с использованием функции initcommandversion. Подробнее insert and explode block lisp Help
Цитата:
(defun c:dstamp ( / DT1 SCL SCL1)
(COMMAND "_layer" "_m" "dstamp" "_c" "140" "" "")
(setq scl (getvar "useri1"))
(setq scl1 (* scl 1.5))
(setq dt1 (getpoint "\ninsert dstamp: "))
(command "insert" "dstamp" dt1 scl1 scl1 "0")
(command "_.explode" "_L")
(initcommandversion)
(command "_.explode" "_P" "")
(initcommandversion)
(command "_.explode" "_P" "")
(princ)
)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 08.05.2016 в 09:51. Причина: орфоргафия
VVA вне форума  
 
Непрочитано 21.11.2012, 20:55
#6
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Почему-то не перевели в исходном сообщении "главное" - что в нормальном случае QAFLAGS = 0?
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Справочник команд > QAFLAGS (Системная переменная)

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
EXPERT (Системная переменная) BM60 Справочник команд 7 03.04.2009 20:44
AREA (Системная переменная) Ddjo Справочник команд 6 15.07.2008 10:52
ACADLSPASDOC (Системная переменная) Shoorup Справочник команд 3 14.07.2008 15:57
MTEXTED (Системная переменная) Shoorup Справочник команд 9 10.07.2008 17:19
какая системная переменная отвечает за "вырисовку" Gaa AutoCAD 3 23.02.2006 14:41