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

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

В какой переменной сохраняется угол разворота

Ответ
Поиск в этой теме
Непрочитано 16.03.2015, 15:45 #1
В какой переменной сохраняется угол разворота
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 3,031

После команды ПОВЕРНУТЬ (_ROTATE) сохраняется угол поворота, и дальше он предлагается по умолчанию. В какой переменной он сохраняется?
__________________
количество моих сообщений не говорит о знании Автокада
Просмотров: 4390
 
Непрочитано 17.03.2015, 14:53
#2
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Интересный вопрос... Системной переменной такой я не нашел. Как искал? Повернул объект на 333 градуса и сравнил в Notepad++ два сохраненных в окне _SYSVDLG файла (до и после) со списком переменных. Изменилась только одна переменная - LASTPOINT. В эти файлы не сохраняются ReadOnly-переменные (только для чтения), поэтому я решил "вручную" (!) просмотреть все переменные в этом диалоге. Значения 333, равно как и 5.81... (в радианах, на всякий), равно как и 27 (360-333), равно как и 153 (333-180) там не оказалось. Подумал, что, может быть, это значение хранится в глобальных переменных, тех, что можно посмотреть при создании поля (_FIELD) в списке LispVariable. Вручную уже поленился, выполнил код
Код:
[Выделить все]
(vl-remove-if-not '(lambda (x) (wcmatch (eval x) "333")) (atoms-family 1))
Повторил его со всеми возможными предполагаемыми значениями, он должен был бы вернуть имя глобальной переменной с искомым значением - не вернул. На этом мои мысли закончились. Во внедокументном пространстве имен оно храниться не может по логике, т.к. в каждом файле это значение запоминается отдельно. Может, это значение хранится в пространстве имен, недоступном из лиспа, например в ObjectArx? Если такое есть вообще - я не знаю. В общем, можно сказать, я сдаюсь. Без знатоков тут не обойтись.
skkkk вне форума  
 
Непрочитано 18.03.2015, 08:46
#3
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Любопытно, с какой версии в команде появился последний угол поворота объекта? В R12 его еще нет, а в 2010 он уже есть.
trushev вне форума  
 
Автор темы   Непрочитано 18.03.2015, 19:49
#4
АлексЮстасу

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


Offtop: "Не было так никогда, и вот опять"
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 18.03.2015, 22:15
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


То, что запоминается предыдущее значение угла-это скорее юзабилити интерфейса, имхо. Все равно есть переменная, в которую заноситься угол поворота после "декодирования" комстроки, почему не сохранять значение где то в переменной дополнительной. Ведь после сохранения чертежа и закрытия AutoCAD значение угла снова равно нулю, т.е. оно нигде не сохраняется: ни в реестре, ни в бд чертежа самого.

А то, что не вывели доступ к значению этой дополнительной переменной через переменную - а зачем? Посмотрите на программный метод AcGeEntity2d::rotateBy , например. У него есть два аргумента: угол поворота и базовая точка поворота. Т.е. программист уже в курсе, какой у него угол поворота.

----- добавлено через ~5 мин. -----
Не увидел, как прямую ссылку получить на метод)
Цитата:
C++
AcGeEntity2d& rotateBy( double angle, const AcGePoint2d& wrtPoint = AcGePoint2d::kOrigin);

Parameters

double angle - Input angle of rotation

const AcGePoint2d& wrtPoint = AcGePoint2d::kOrigin - Input point about which to rotate
Сергей812 вне форума  
 
Непрочитано 19.03.2015, 05:52
#6
Krieger

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


Какая то глобальная переменная есть, которая создается самой командой rotate, но как она называется никто не знает.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 19.03.2015, 07:57
#7
VVA

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


Похожая тема на caduser'e
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.03.2015, 09:39
#8
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


я как то поднимал подобную тему. Ответа так и не дождался...
Система када помнит много чего, но как туда добраться, та еще задача.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 19.03.2015, 12:38
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


Как те же высота и ширина прямоугольника)

----- добавлено через ~7 мин. -----
Цитата:
Сообщение от Vladimir_Sergeevich Посмотреть сообщение
Система када помнит много чего, но как туда добраться, та еще задача.
а зачем туда пробираться? Если нужно задать угол-то есть соответствующий запрос типа GetAngle. Если нужно повернуть все примитивы вслед за первым - получить значение угла поворота из первого и применить к остальным. Можно, конечно, написать в AutoDesk - чтобы они написали еще оболочки-методы (системные переменные) для доступа ко всем глобальным переменным AutoCAD

Последний раз редактировалось Сергей812, 19.03.2015 в 12:46.
Сергей812 вне форума  
 
Непрочитано 19.03.2015, 13:10
#10
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


Сергей812, не знаю кому как, а мне это надо было, что бы предложить "значение по умолчанию" при повторном вызове функции (как тот же _rotate, например, поворачивает на предыдущий угол с пробела/пкм) без объявления глобальных переменных. Экспериментально выявлено, что автокад их помнит и они доступны через динамический ввод, а вот добраться до них из лиспа как то не получилось.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 19.03.2015, 13:12
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


Цитата:
Сообщение от Vladimir_Sergeevich Посмотреть сообщение
Сергей812, не знаю кому как, а мне это надо было, что бы предложить "значение по умолчанию" при повторном вызове функции (как тот же _rotate, например, поворачивает на предыдущий угол с пробела/пкм) без объявления глобальных переменных. Экспериментально выявлено, что автокад их помнит и они доступны через динамический ввод, а вот добраться до них из лиспа как то не получилось.
а как угол задается изначально?
Сергей812 вне форума  
 
Непрочитано 19.03.2015, 13:19
#12
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а как угол задается изначально?
Это неважно... Хоть через настройки графики (по F8 или F10), хоть вручную - в сеансе запоминается и так, и так...
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.03.2015, 13:25
#13
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,041


Цитата:
Сообщение от Bull Посмотреть сообщение
Это неважно... Хоть через настройки графики (по F8 или F10), хоть вручную - в сеансе запоминается и так, и так...
я не об стандартных функциях autocad, а:

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
что бы предложить "значение по умолчанию" при повторном вызове функции (как тот же _rotate, например, поворачивает на предыдущий угол с пробела/пкм)
Т.е. какая своя функция у него. И вопрос-как в ней задается угол?

Если через getangle, то в комстроке в промте getangle выводить старое значение угла. А в initget разрешить пустой ввод. Какая то непонятная экономия на глобальной переменной)
Сергей812 вне форума  
 
Непрочитано 19.03.2015, 13:31
#14
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
я не об стандартных функциях autocad, а:
А, сорри... Но если указания про это нет, догадываюсь, что нужно для любого случая. Или тогда переменные разные?

PS Ладно, в программирование лезть не буду ))
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.03.2015, 14:04
#15
Кулик Алексей aka kpblc
Moderator

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


Если своя функция пишется, то кто мешает запомнить что угодно в любом удобном виде и потом "подставлять" как значение по умолчанию? Хотя это к разделу "AutoCAD" уже имеет мало отношения...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.03.2015, 14:15
#16
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


Алексей, никто не мешает, ShaggyDoc даже в реестр писать предлагал... но с другой стороны, зачем это делать, если это уже есть? Единственно за тем, что это "уже есть" незадокументированно и хрен его откопаешь.
Как сказал skkkk "Может, это значение хранится в пространстве имен, недоступном из лиспа...". Все таки тут замешан динамический ввод, хотя бы отчасти, и кто знает как это реализовано.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...

Последний раз редактировалось Vladimir_Sergeevich, 19.03.2015 в 14:22.
Vladimir_Sergeevich вне форума  
 
Непрочитано 19.03.2015, 14:21
#17
Кулик Алексей aka kpblc
Moderator

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


Как "зачем"? Завтра тебе понадобится еще какая-нибудь хреновина, и что - опять на неделю в поиски углубляться?
А касаемо "писать в реестр" - я когда-то на autolisp.ru рассматривал варианты хранения данных - между документами, между сессиями. Реестр (ИМХО) не всегда удобен. Но это дело вкуса ))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.03.2015, 14:55
#18
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Offtop: Представляю, как АлексЮстасу сидит у монитора и думает: "Вот это я спросил..."



Цитата:
Сообщение от Vladimir_Sergeevich Посмотреть сообщение
зачем
Это самый первый вопрос, который у меня возник при виде этой темы, но я нашел для себя на него ответ. Например, программист в своей программе может захотеть задать угол поворота объекта интерактивно и непременно с висящим на курсоре и вращающимся фантомом, а далее в программе использовать этот угол. И...
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Хотя это к разделу "AutoCAD" уже имеет мало отношения...
...во мне этот вопрос разбудил интерес. И действительно, как воспользоваться этим значением? Запустить повторно _ROTATE и там посмотреть?
Кстати первым у меня возникло предположение, что угол этот скорее всего хранится в переменной LASTANGLE, однако кто знает, что там хранится на самом деле?
skkkk вне форума  
 
Непрочитано 19.03.2015, 15:44
#19
Кулик Алексей aka kpblc
Moderator

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


Ну, е-мое... Ну напиши командный реактор на команду _.rotate и сохраняй чего хочешь, как хочешь и где хочешь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.03.2015, 16:52
#20
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Я тоже так с наскоку подумал, но через некоторое количество размышлений встал в тупик: ну сработала команда _.rotate, а что я запомню? Где хранится это значение? Разве как-то grread'ом точки выдергивать? Что-то я сомневаюсь, что выйдет их две снять. После команды одна сработает только. А в аргументы ротэйту grread не подсунешь, скажет, повторный вход в лисп невозможен.
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > В какой переменной сохраняется угол разворота

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой максимально допустимый угол подъёма на путепровод в городе? Alla_w Автомобильные и железные дороги, мосты, тоннели и организация движения 3 20.03.2015 11:11
Какой угол внутреннего трения у аммофоса? Ivan3891 Прочее. Архитектура и строительство 5 04.04.2014 11:12
Какой угол внутреннего трения у бутового камня? Seeker Прочее. Архитектура и строительство 7 16.05.2013 00:37
Какой минимальный радиус при устройстве разворота Магистр36 Автомобильные и железные дороги, мосты, тоннели и организация движения 21 17.04.2013 12:10
Какой должен быть угол косоуров для сборнх ЖБ ступеней?... Chief Justice Прочее. Архитектура и строительство 15 19.04.2012 00:47