|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
NanoCAD-23.1 - как управлять режимом привязки?
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616
|
||
Просмотров: 2439
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Попробуй тупо сбрасывать в 0.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
(setq osmode (getvar "osmode"))
(setvar "osmode" 0) ; .... (setvar "osmode" osmode) ----- добавлено через 24 сек. ----- И стесняюсь спросить - на фига вообще привязку скидывать?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Просто в процессе выполнения программы на одном из её участков,
мне нужно выставить для пользователя привязку "Ближайший". Чтобы он мимо объекта не промахнулся. Куда попадёт - не особо важно, но точка должна быть на объекте. Поэтому в программе, написанной ещё ... ох, в 1991 году в этом месте стояло (setvar "osmode" 512) и до сих пор всё работало. Пока лучшее, что придумал, для НК, это связку: (setvar "osmode" (logior 512 16384)) (command "ToggleOSnapNext") Т.е. сперва выставляю в отключенное состояние нужную мне привязку, потом включаю её командой. Изврат, дебилизм, но работает... Не, тоже не годится :-( Эта конструкция работает только с командной строки. А из-под ЛИСПа (command "ToggleOSnapNext") диалоговое окно вызывает, даже если CDMDIA=0
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 15.07.2024 в 14:59. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Ну поменяй в моем варианте 0 на 512 и не парься. В чем проблема?
Ну или (как вариант, написано насухую и без проверок): Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Цитата:
(setvar "osmode" 512) (setq p (getpoint "Для ... кабеля укажите ее точку: ")) не гарантирует, что р будет получена с привязкой к объекту. в АК - гарантировалось, в НК - нет. Для НК нужен ещё какой-то "пинок", чтобы он принял к сведению, что режим привязки включён. Возможно, это глюк только моей версии 23.1. А возможно - и дальше всё то же самое.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Да видели, конечно... Всё это работает в АК.
Требует проверки, но пока у меня сложилось впечатление, что НК внутри ЛИСП-программы вообще игнорирует назначения (setvar "osmode" ...), кроме (setvar "osmode" 0) Т.е., какие привязки были до вызова своей функции, с теми она и работает. Проверьте, плиз, кому не лень. Именно связку: (setvar "osmode" 512) (setq p (getpoint "Для ... кабеля укажите ее точку: ")) Только не с клавиатуры, а из ЛИСП-программы. Всегда ли удаётся получить точку p с привязкой к объекту?
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В телеге подсказали - оказывается, надо еще и AppOptions.xml проверять. Там тоже подобные настройки хранятся. И, похоже, конфликтуют.
На хрена одно и то же было разбрасывать в несколько мест - тайна.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
в нк 24.1
(setvar "osmode" 512) неважно как дальше я буду пытаться получить точку, ближайшаЯ не срабатывает (срабатывают привязки которые были назначены до этого) пока не зайдешь в настройки привязки, увидишь одинокую ближайшую и не тыкнешь ей Ок. Очевидно один из "немногих" нанобагов. надо в сапорт тикет писать, нана сам себя чинить не будет. ---------- нанобетатестерам кейс со ссылкой сюда скинул
__________________
Мастерская СПДС |
||||
![]() |
|
||||
пробуй так
(setvar "osmode" 16384) (setvar "osmode" 512) (setq p (getpoint "Для ... кабеля укажите ее точку: ")) у меня получилось - уже нет , колдунство какое то(((
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 15.07.2024 в 16:47. |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Первое впечатление - (vla-SetVariable ...) в НК нифига не панацея.
Тоже тот ещё глюкодром. Например, с переменной "cecolor" она справиться не может. Т.е. связка: (setq p (vla-getVariable acddoc "cecolor")) ;,,, меняем цвет ... ;снова восстанавливаем его (vla-SetVariable acddoc "cecolor" p) в АвтоКаде работает на ура, а в НК - нет. А вот (setq p (getvar "cecolor")) ;,,, меняем цвет ... ;снова восстанавливаем его (setvar "cecolor" p) Работает и там и там. Но! В НК она "тупит", т.е. после изменения цвета через (setvar "cecolor" p), текущий установленный цвет в индикаторе на панели инструментов (цветной такой квадратик - красный там или синий или ещё какой) не меняется. Создаётся впечатление, что (setvar "cecolor" p) не отработала, но стоит начать рисовать (скажем, отрезок), НК получает "волшебный пендель" и меняет цвет индикатора. Кстати, этот "волшебный пендель" в НК пора выносить в отдельный вид глюков, т.к. он проявляется во многих местах.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
В телеге пришли к выводу, что волшебный пендель это command
Тогда переключает
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Цитата:
(command "_.line" '(0 0) '(1 0) "") и тут же его стираю. Изврат, но работает. :-) И да - (vla-SetVariable ...) проблему с привязкой решает.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
нанодиалект лиспа , как выяснилось регистрозависим(((
надо капсом OSMODE, тогда все Ок)))
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Offtop: Дер брэд оф сивый мэрин
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
NanoCAD 23.1: (command "_.save") - глюк ... | ===AAA=== | LISP | 1 | 11.07.2024 10:55 |
NanoCAD 23.1: Как заблокировать окно "Свойства" ? | ===AAA=== | LISP | 2 | 28.06.2024 13:06 |
NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги | ===AAA=== | .NET | 54 | 26.03.2024 14:09 |
NanoCAD 5. Привязки "от" и "середина между точками" | Primeiro | Другие CAD системы | 3 | 07.12.2016 06:56 |
Предложение по автоматизации привязки растра | Neznayka | Программирование | 7 | 27.01.2012 12:17 |