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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Включение полярного слежения через LISP

Включение полярного слежения через LISP

Ответ
Поиск в этой теме
Непрочитано 06.10.2011, 11:48 #1
Включение полярного слежения через LISP
semvb
 
Инженер-технолог
 
Мурманск
Регистрация: 18.11.2003
Сообщений: 180

Многие утилиты переключают режим рисования в ортогональный "orthomode", по завершении функций утилиты приходится вручную включать полярное слежение (кнопкой или F10) - надоело, в литературе не нашел имени переменной, отвечающей за включение этого режима. Существует ли возможность включения режима полярного слежения через LISP?
Просмотров: 4054
 
Непрочитано 06.10.2011, 11:55
#2
Кулик Алексей aka kpblc
Moderator

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


polarmode
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.10.2011, 12:14
#3
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


Это я знаю, - не то, слежение не включается!
Из справочника переменных:
Цитата:
POLARMODE

Управляет установками для полярного и объектно-шагового слежения. Значение bitcodes (байт коды) переменной:

Измерение угла в полярных координатах:
0 - Измерение углов в полярных координатах текущей пользовательской системы координат (абсолютных);
1 - Измерение углов в полярных координатах от выбранных объектов (относительных).
Объектно-шаговое слежение:
0 - Только ортогональная трасса;
2 - Использовать полярные установки слежения в объектно-шаговом слежении.
Использование дополнительных полярных отслеживаемых углов:
0 - Нет;
4 - Да.
Приобретение точек объектно-шагового слежения:
0 - Приобрести автоматически;
8 - Нажать SHIFT, чтобы приобрести.
semvb вне форума  
 
Непрочитано 06.10.2011, 15:39
#4
ытя


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


AUTOSNAP
ытя вне форума  
 
Непрочитано 06.10.2011, 15:46
#5
Sad Dog

Ищу работу
 
Регистрация: 12.06.2010
Сообщений: 35


ORTHOMODE
__________________
На свете счастья нет, но есть покой и воля.
Sad Dog вне форума  
 
Автор темы   Непрочитано 06.10.2011, 16:08
#6
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


Цитата:
ытя
AUTOSNAP
Управляет показом маркера автопривязки и подсказок
Цитата:
Sad Dog
ORTHOMODE
Это как раз то, что надо поменять на полярное слежение (см.#1)
semvb вне форума  
 
Непрочитано 06.10.2011, 16:25
#7
ытя


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


AUTOSNAP
Цитата:
Сообщение от Help
0 Turns off the AutoSnap marker, tooltips, and magnet. Also turns off polar tracking, object snap tracking, and tooltips for polar tracking, object snap tracking, and Ortho mode
1 Turns on the AutoSnap marker
2 Turns on the AutoSnap tooltips
4 Turns on the AutoSnap magnet
8 Turns on polar tracking
16 Turns on object snap tracking
32 Turns on tooltips for polar tracking, object snap tracking, and Ortho mode
ытя вне форума  
 
Автор темы   Непрочитано 06.10.2011, 16:47
#8
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


Спасибо! Был неполный справочник по переменным от старой версии autocad!
Цитата:
AUTOSNAP
Тип: Целый
Сохранен в: Реестр
Начальное значение: 63
Управление отображением маркера, всплывающей подсказки и магнита автопривязки.
Включает также полярное и объектное отслеживания и управляет всплывающими на дисплей подсказками в этих режимах и режиме "Орто" Параметр хранится в виде битового кода, использующего сумму следующих значений.

0- Отключение маркера, подсказки и магнита автопривязки. Отключает также полярное и объектное отслеживания, а также подсказки этих средств и режима "Орто"
1- Включение маркера автопривязки
2- Включение подсказки автопривязки
4- Включение магнита автопривязки
8- Включение полярного отслеживания
16- Включение отслеживания объектной привязки
32- Включение отображения подсказок для полярного отслеживания, объектного отслеживания и режима "Орто"
semvb вне форума  
 
Непрочитано 06.10.2011, 16:50
#9
Sad Dog

Ищу работу
 
Регистрация: 12.06.2010
Сообщений: 35


Цитата:
Это как раз то, что надо поменять на полярное слежение
Так я не понял, это то... или это надо поменять?
__________________
На свете счастья нет, но есть покой и воля.
Sad Dog вне форума  
 
Автор темы   Непрочитано 06.10.2011, 17:08
#10
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


То что надо! В конце кода LISP - восстановление переменных.
Цитата:
(setvar "autosnap" 63);;включение полярного слежения
semvb вне форума  
 
Непрочитано 06.10.2011, 21:43
#11
Кулик Алексей aka kpblc
Moderator

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


На форуме несколько раз мелькали коды, нормально восстанавливающие системные переменные в тот вид, который был у пользователя, а не который понравился программисту....
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.10.2011, 16:05
#12
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


Я видел, но именно этого почему-то не нашел.
semvb вне форума  
 
Непрочитано 07.10.2011, 21:29
#13
Кулик Алексей aka kpblc
Moderator

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


Примерно так:
Код:
[Выделить все]
 (defun c:mycmd (/ fun_save-sysvars fun_restore-sysvars sysvars *error*)

  (defun fun_save-sysvars (lst /)
    (mapcar
      (function
        (lambda (x / tmp)
          (if (setq tmp (getvar (car x)))
            (setvar (car x) (cdr x))
            ) ;_ end of if
          (cons (car x) tmp)
          ) ;_ end of lambda
        ) ;_ end of function
      lst
      ) ;_ end of mapcar
    ) ;_ end of defun

  (defun fun_restore-sysvars (lst)
    (foreach item lst
      (setvar (car item) (cdr item))
      ) ;_ end of foreach
    ) ;_ end of defun

  (defun *error* (msg)
    (fun_restore-sysvars sysvars)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (command "_.undo" "_begin")
  (setq sysvars (fun_save-sysvars '(("osmode" . 0) ("nomutt" . 1) ("cecolor" . 1) ("celtscale" . 1) ("ltscale" . 1))
                                  ) ;_ end of fun_save-sysvars
        ) ;_ end of setq
  ;; Чего-то делаем

  (fun_restore-sysvars sysvars)
  (command "_.undo" "_end")
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.10.2011, 15:46
#14
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


Вот в этом коде и нет "autosnap". При использовании перед этим кодом утилиты, которая переключает режим в "орто" и не восстанавливает, как раз и придется опять вручную включать полярное слежение. Теперь по ходу дела вставляю во все недоделанные утилиты строку "(setvar "autosnap" 63)" а уж потом сохранение настроек.
semvb вне форума  
 
Непрочитано 08.10.2011, 16:28
#15
Кулик Алексей aka kpblc
Moderator

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


Е-мое...
Код:
[Выделить все]
(defun c:mycmd (/ fun_save-sysvars fun_restore-sysvars sysvars *error*)

 (defun fun_save-sysvars (lst /)
   (mapcar
     (function
       (lambda (x / tmp)
         (if (setq tmp (getvar (car x)))
           (setvar (car x) (cdr x))
           ) ;_ end of if
         (cons (car x) tmp)
         ) ;_ end of lambda
       ) ;_ end of function
     lst
     ) ;_ end of mapcar
   ) ;_ end of defun

 (defun fun_restore-sysvars (lst)
   (foreach item lst
     (setvar (car item) (cdr item))
     ) ;_ end of foreach
   ) ;_ end of defun

 (defun *error* (msg)
   (fun_restore-sysvars sysvars)
   (princ msg)
   (princ)
   ) ;_ end of defun

 (command "_.undo" "_begin")
 (setq sysvars (fun_save-sysvars '(("osmode" . 0) ("nomutt" . 1) ("cecolor" . 1) ("celtscale" . 1) ("ltscale" . 1))
                                 ) ;_ end of fun_save-sysvars
       ) ;_ end of setq
 ;; Чего-то делаем
  (mapcar '(lambda(x)(setvar (car x) (cdr x))) '(("autosnap" . 63) ("osmode" . 0) ("gridmode" . 0) ("blipmode" . 0) ("cmdecho" . 0)))

 (fun_restore-sysvars sysvars)
 (command "_.undo" "_end")
 (princ)
 ) ;_ end of defun
Обрати внимание на строку, выделенную красным.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.10.2011, 18:01
#16
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


сначала сохранить переменные (+ cmdecho=>0) потом undo, чтоб глаза не мозолило... по выходу наоборот undo потом восстанавливаем переменные, потому же
gomer вне форума  
 
Автор темы   Непрочитано 09.10.2011, 09:13
#17
semvb

Инженер-технолог
 
Регистрация: 18.11.2003
Мурманск
Сообщений: 180


Спасибо, аналогично (хотя видимо не очень грамотно) я и подправляю некорректно написанные коды.
semvb вне форума  
 
Непрочитано 09.10.2011, 16:33
#18
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от gomer Посмотреть сообщение
сначала сохранить переменные (+ cmdecho=>0) потом undo, чтоб глаза не мозолило... по выходу наоборот undo потом восстанавливаем переменные, потому же
То есть ты предлагаешь нечто типа
(setvar ...
(command "_.undo" ...
...
(command "_.undo" ...
(setvar ...
Так? Если да, то попробуй запустить такой код и после его завершения попробуй отменить все выполненные им действия.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.10.2011, 00:12
#19
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Так?
нет не так, каюсь, был не прав, но тогда лучше через ActiveX маркировать точки начала и конца отмены
gomer вне форума  
 
Непрочитано 10.10.2011, 00:18
#20
Кулик Алексей aka kpblc
Moderator

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


Как ставить точки отмены - дело "шышнаццатое" Главное - то, как они сработают.
Кстати, я сам так несколько раз "накалывался". Бывают и пострашнее шутки - когда маркеры отмены оказываются вложенными друг в друга. В таком случае AutoCAD очень быстро начинает сходить с ума.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Включение полярного слежения через LISP



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как настроить выход в интернет с комуникатора через блютуз и ПК KonGo Разное 15 01.04.2010 18:46
Как получить цвет фона модели ACAD через LISP? EfremenkoDO LISP 3 24.03.2010 12:09
Hidden через lisp worlak LISP 1 03.09.2006 18:44
Как можно открыть чертеж через LISP на котором стоит пароль? ivspec LISP 7 10.02.2006 17:36
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19