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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > после применения mvsetup

после применения mvsetup

Ответ
Поиск в этой теме
Непрочитано 22.08.2007, 17:22 #1
после применения mvsetup
al4a
 
инженер
 
Кишинев
Регистрация: 22.08.2007
Сообщений: 7

после манипуляций с поворотами ВЭ (_mvsetup_align_rotate), пропал блок команд(move, copy selection, erase, etc) из меню правой кнопки мыши, более того, delete с клавиатуры не воспринимается, такое ощущение, что акад оглох..., или потерял чувствительность)) 2007 версия.
может переменная какая-то отключилась...
до этого делалось все так же в 2006- все было нормально.
да, у сотрудника, проделавшего те же операции обозначился этот же диагноз...
может кто сталкивался? что делать
Просмотров: 5833
 
Автор темы   Непрочитано 22.08.2007, 20:06
#2
al4a

инженер
 
Регистрация: 22.08.2007
Кишинев
Сообщений: 7
<phrase 1=


вопрос снят!
ура!
можно удалить тему...
al4a вне форума  
 
Непрочитано 22.08.2007, 20:13
#3
Кулик Алексей aka kpblc
Moderator

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


А причину озвучить и рецепт лечения??
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.08.2007, 23:51
#4
SLADE

проектировщик-новобранец
 
Регистрация: 14.09.2005
Minsk
Сообщений: 324


:?: :?: вопрос открыт , поясни !!!
Вчера по этой причине переставлял акад, небыло сил уже разбиратся дома.

там ответ http://dwg.ru/forum/viewtopic.php?t=...f39dbe612881af
SLADE вне форума  
 
Автор темы   Непрочитано 23.08.2007, 14:25
#5
al4a

инженер
 
Регистрация: 22.08.2007
Кишинев
Сообщений: 7
<phrase 1=


pickfirst выставляем 1.
спасибо kp+

а вот причина осталась неясна...
каким образом mvsetup мог сбить переменную
совершенно непонятно
если бы только у меня, можно было бы предположить, что я "заморочила" ему голову или в пылу разворотов еще чего-нить зацепила...
но, сотрудник, скрупулезно записал шаги и "левые" нажатия кнопочек исключены...
al4a вне форума  
 
Непрочитано 23.08.2007, 17:57
#6
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Цитата:
Сообщение от al4a
а вот причина осталась неясна...
каким образом mvsetup мог сбить переменную
совершенно непонятно
mvsetup - это не штатная команда акада, а загружаемая функция лиспа из файла mvsetup.lsp, что находится в папочке support дирректории установки акада. Она там лежит типа как пример программирования.
За то что вылетают значения переменных, в ответе кривые ручки написавшего ее программиста. (кстати, скорее всего, там не одна переменная слетает)

Этот косяк mvsetup существует очень давно, есть такие пути решения:

- исправить функцию. - тут есть кто может это сделать.
- сварганить функцию-обертку для mvsetup - и это реализуемо
- продолжать пользовать mvsetup , на свой риск.
- не пользоваться mvsetup вообще.

я вам советую последнее. Ничего уникального эта команда не делает.
__________________
apel.fas
Apelsinov вне форума  
 
Автор темы   Непрочитано 24.08.2007, 10:51
#7
al4a

инженер
 
Регистрация: 22.08.2007
Кишинев
Сообщений: 7
<phrase 1=


спасибо за разъяснения.
для себя решила не использовать ее, тем более, что... что-то с ней не заладилось... слишком непредсказуемые результаты поворотов получались))
вы укрепили меня в этом решении.
эххх, как бы "загрузить" в память значения всех переменных и их функции... а то ведь, пока не столкнешься, да не начнешь копать...
al4a вне форума  
 
Непрочитано 24.08.2007, 11:19
#8
SStas


 
Регистрация: 21.02.2006
Великий Новгород
Сообщений: 7


Цитата:
Сообщение от Apelsinov
Этот косяк mvsetup существует очень давно, есть такие пути решения:
- не пользоваться mvsetup вообще.
я вам советую последнее. Ничего уникального эта команда не делает.
А чем порекомендуешь повернуть весь чертеж на листе на определнный угол (оставить в модели все как есть)?
3D-орбитой не нравится, другие пути пока не искал, т.к. mvsetup особо не глючил (только изредка pickfirst=0 ставит)
SStas вне форума  
 
Непрочитано 24.08.2007, 11:23
#9
Кулик Алексей aka kpblc
Moderator

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


В качестве "обертки" попробуйте:
Код:
[Выделить все]
(defun adds (cmd                        vars
             /                          _kpblc-error-catch
             _kpblc-error-print         _kpblc-get-msg-norm
             _kpblc-conv-value-to-string
             *kpblc-list-sysvar*        _kpblc-error-sysvar-restore
             _kpblc-error-sysvar-save   _kpblc-sysvar-set
             *error*                    _kpblc-string-replace
             )
            ;|
*    Попытка сделать "обертку" для ET-шных функций.
*    Параметры вызова:
*	cmd	имя выполняемой команды / функции
*	vars	список системных переменных, которые надо сохранить.
*    Примеры вызова:
(adds "mvsetup" '("lunits" "regenmode" "osmode" "pickfirst" "cmdecho" "tilemode"
		"cvport" "extnames" "clayer" "orthomode" "limmin" "limmax" "attreq"
		"maxactvp" "undoctl" "dimzin" "aunits"))
|;

  (defun _kpblc-string-replace (string old_substr new_substr / pos)
                               ;|
*    Функция замены вхождений подстроки в исходную строку на новые.
* Регистрозависимо
*    Параметры вызова:
*	string		исходная строка
*	ols_substr	старая подстрока
*	new_substr	новая подстрока
*    Примеры вызова:
(_kpblc-string-replace "Здесь были ВаВася и ВаВаВаня. Вася" "Ва" "Бу")
	; "Здесь были Буся и Буня. Буся"
|;
    (if (/= old_substr new_substr)
      (while (setq pos (vl-string-search old_substr string))
        (setq string
               (strcat
                 (substr string 1 pos)
                 new_substr
                 (_kpblc-string-replace
                   (substr string (+ (strlen old_substr) pos 1))
                   old_substr
                   new_substr
                   ) ;_ end of _kpblc-string-replace
                 ) ;_ end of strcat
              ) ;_ end of setq
        ) ;_ end of while
      ) ;_ end of if
    string
    ) ;_ end of defun

  (defun _kpblc-sysvar-set (sysvar value)
                           ;|
*    Установка системных переменных. Замена стандартному (setvar) для
* безошибочной обработки
*    Параметры вызова:
*	sysvar	имя системной переменной
*	value	устанавливаемое значение
*    Возвращаемое значение:
*	Установленное значение системной переменной либо nil в случае неудачи
|;
    (if (getvar sysvar)
      (if (and (= value "")
               (wcmatch (strcase sysvar t) "dim*")
               ) ;_ end of and
        (setvar sysvar ".")
        (vl-catch-all-apply 'setvar (list sysvar value))
        ) ;_ end of if
      ) ;_ end of if
    (getvar sysvar)
    ) ;_ end of defun

  (defun _kpblc-error-sysvar-save (lst)
                                  ;|
*    Сохраняет текущее значение переданных системных переменных в глобальном
* списке *kpblc-list-sysvar*
*    Параметры вызова:
*	lst	список системных переменных (возможно, с переданными значениями)
*    Примеры вызова:
(_kpblc-error-sysvar-save '(("osmode" 512) ("orthomode" 1)))
*    Возвращаемое значение:	нет
|;
    (foreach sysvar lst
      (setq *kpblc-list-sysvar*
             (cons (list (car sysvar) (getvar (car sysvar)))
                   *kpblc-list-sysvar*
                   ) ;_ end of append
            ) ;_ end of setq
      (if (cdr sysvar)
        (_kpblc-sysvar-set (car sysvar) (cadr sysvar))
        ) ;_ end of if
      ) ;_ end of foreach
    (princ)
    ) ;_ end of defun

  (defun _kpblc-error-sysvar-restore (lst)
                                     ;|
*    Восстаналивает значения системных переменных.
*    Параметры вызова:
*	lst	список системных переменных, значения которых восстанавливаются
*		nil -> восстанавливать все
|;
    (if lst
      (foreach sysvar lst
        (_kpblc-sysvar-set sysvar (car (assoc sysvar *kpblc-list-sysvar*)))
        ) ;_ end of foreach
      (progn
        (foreach sysvar *kpblc-list-sysvar*
          (_kpblc-sysvar-set (car sysvar) (cadr sysvar))
          ) ;_ end of foreach
        (setq *kpblc-list-sysvar* nil)
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of defun

  (defun _kpblc-conv-value-to-string (value /)
                                     ;|
*    конвертация значения в строку.
|;
    (if value
      (vl-princ-to-string value)
      ""
      ) ;_ end of if
    ) ;_ end of defun

  (defun _kpblc-get-msg-norm (msg)
                             ;|
*    Нормализация строки запроса для использования в запросах ком.строки
|;
    (vl-string-trim "][ :\n<>" msg)
    ) ;_ end of defun

  (defun _kpblc-error-catch (protected-function
                             on-error-function
                             /
                             catch_error_result
                             )
                            ;|
*** Функция взята из книжной версии ruCAD'a без каких бы то ни было переделок,
*** кроме переименования.
*    Оболочка отлова ошибок.
*    Параметры вызова:
*	protected-function	- "защищаемая" функция
*	on-error-function	- функция, выполняемая в случае ошибки
|;
    (setq catch_error_result (vl-catch-all-apply protected-function))
    (if (and (vl-catch-all-error-p catch_error_result)
             on-error-function
             ) ;_ end of and
      (apply on-error-function
             (list (vl-catch-all-error-message catch_error_result))
             ) ;_ end of apply
      catch_error_result
      ) ;_ end of if
    ) ;_ end of defun

  (defun _kpblc-error-print (func-name msg)
                            ;|
*    Функция вывода сообщения об ошибке для (_kpblc-error-catch)
*    Параметры вызова:
*	func-name	имя функции, в которой возникла ошибка
*	msg		сообщение об ошибке
|;
    (princ (strcat "\n ** "
                   (_kpblc-get-msg-norm
                     (_kpblc-string-replace
                       (strcase (_kpblc-conv-value-to-string func-name) t)
                       "error"
                       ""
                       ) ;_ end of _kpblc-string-replace
                     ) ;_ end of _kpblc-get-msg-norm
                   " ERROR #"
                   (if msg
                     (strcat
                       (_kpblc-conv-value-to-string (getvar "errno"))
                       ": "
                       (_kpblc-conv-value-to-string msg)
                       ) ;_ end of strcat
                     ": undefined"
                     ) ;_ end of if
                   "\n"
                   ) ;_ end of strcat
           ) ;_ end of princ
    (princ)
    ) ;_ end of defun

  (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
  (_kpblc-error-catch
    (function
      (lambda ()
        (_kpblc-error-sysvar-save (mapcar 'list vars))
        (eval (read (strcat "(c:" cmd ")")))
        ) ;_ end of lambda
      ) ;_ end of function
    '(lambda (x) (_kpblc-error-print (_kpblc-conv-value-to-string cmd) x))
    ) ;_ end of _kpblc-error-catch
  (_kpblc-error-sysvar-restore nil)
  (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
  (princ)
  ) ;_ end of defun

(vl-load-com)
Загрузить и вбить в ком.строку:
Код:
[Выделить все]
(adds "mvsetup" '("lunits" "regenmode" "osmode" "pickfirst" "cmdecho" "tilemode" "cvport" "extnames" "clayer" "orthomode" "limmin" "limmax" "attreq" "maxactvp" "undoctl" "dimzin" "aunits"))
Дисклайм: проверял только на mvsetup!!! Штатные команды (типа "LINE") не обрабатываются!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.08.2007, 12:25
#10
al4a

инженер
 
Регистрация: 22.08.2007
Кишинев
Сообщений: 7
<phrase 1=


Цитата:
А чем порекомендуешь повернуть весь чертеж на листе на определнный угол (оставить в модели все как есть)?
express_layout tools_align spase
al4a вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > после применения mvsetup