Jump to content

Recommended Posts

Всем добрый день.

Меняю систему координат в файле на пользовательскую.

Создаю отчет (таблицу), но координаты в таблице остаются мировые.

Можно ли сделать так чтобы в таблице показывались пользовательские координаты?

Нанокад 23.

Всем ответившим заранее спасибо.

1614856329_2023-04-08123248.png.adac7319ba2c6d9f4a5fc8dc0e366c7e.png

коордианты всжм геобридж.dwg

Edited by nkurchanova
нанокад 23
  • Like 2
Link to comment
Share on other sites

2 часа назад, nkurchanova сказал:

Можно ли сделать так чтобы в таблице показывались пользовательские координаты

Нет. В отчёт попадает только мировая система. 

Но можно пересчитать относительно любого объекта. Кажется тут был пример. 

 

  • Like 3
Link to comment
Share on other sites

Таблица действительно берет координаты только по МСК. Могу предложить сделать выражение для перевода. Но оно будет правомерно только для плоской системы.

image.thumb.png.cefe333fb44a3f8d3d5fe0f94b880f7f.png

коордианты всжм геобридж с выражением.dwg

  • Like 5
Link to comment
Share on other sites

Спасибо. Алексей, то что надо. MCAD спасибо за ссылку, пока не понятно, попробую разобраться на досуге. Между прочим коллеги предложили "топорный" способ: после изменения пск скопировать точки в лист и уже там извлечь координаты.

  • Like 2
Link to comment
Share on other sites

4 часа назад, MCAD сказал:

Интересное решение. Можно сделать динамическую связь сразу на 2 блока для увязки нескольких ПСК.

  • Like 1
Link to comment
Share on other sites

12 минут назад, alexey.kurenkov сказал:

Интересное решение.

То же что и во втором посте, только добавил Ваш алгоритм пересчёта угла наклона блока. 

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

Добрый день.

Подскажите где об этом почитать (не видео):

В перечне объектов только Object, а в формуле Object1. Откуда?

image.thumb.png.4a68ab3b35e993043b1de4fe23d456e5.png

Link to comment
Share on other sites

В 08.04.2023 в 23:11, alexey.kurenkov сказал:

Могу предложить сделать выражение для перевода. Но оно будет правомерно только для плоской системы.

Хотелось бы уточнить 

Спойлер

image.png.8f3e4e072b774f447e2c7728d92e08af.png

Т.е., эта таблица - исключительно под конкретную ПСК автора ветки?

Link to comment
Share on other sites

В 10.04.2023 в 07:42, MCAD сказал:

Просто перемещайте или вращайте блок

Такое решение позволяет изменять содержимое отчета без изменения таблицы.

Остается правильно расположить блок ПСК.

 

Только попутно выяснилось несколько моментов, которые необходимо иметь ввиду:

  1. При изменении ПСК необходимо вручную перенести блок в координаты 0,0. Это делается просто, но исключительно вручную
  2. Определение угла поворота может оказаться нетривиальной задачей. С удивлением узнал, что в окне свойств показываются координаты в ПСК (что логично), а поворот - в МСК. При этом попытка вставки любого блока с поворотом 0 автоматически переводит угол в МСК. Кстати, так же реализовано у конкурента.

 

Вопрос к знатокам таблиц: есть возможность использовать значения, вычисляемые функциями, например, автолиспа или COM? Если да, то можно в отчет включить автоматическое получение матрицы перевода координат ПСК->Объект->МСК во всех направлениях.

Link to comment
Share on other sites

7 минут назад, EdwardSt сказал:

есть возможность использовать значения, вычисляемые функциями, например, автолиспа или COM?

да (COM) если программно загонять их в ячейки таблицы, либо в какой нить объект.. блок например (оттуда таблицей читать)

а потом использовать эти значения для расчета

Edited by doctorraz
  • Like 2
Link to comment
Share on other sites

29 минут назад, EdwardSt сказал:

Если да, то можно в отчет включить автоматическое получение матрицы перевода координат ПСК->Объект->МСК во всех направлениях.

В соседней теме - определение координат блоков относительно координатных осей spAxis (вообще-то не принципиально, а наоборот сильно усложняет  задачу) 

Вычисление атрибутов (А0:Б1...В12:Г2) как раз и делается через пересчёт локальных координат внутри матрицы осей.

Если я правильно понял вопрос. 

добавлено через 7 минут
32 минуты назад, EdwardSt сказал:

При изменении ПСК необходимо вручную перенести блок в координаты 0,0. Это делается просто, но исключительно вручную

Это просто пример для наглядности.

Сделайте форму с полями ввода координат, или checkBox с переменной, которая будет включать || выключать ПСК

03:27

 

  • Like 2
Link to comment
Share on other sites

20 часов назад, doctorraz сказал:
20 часов назад, EdwardSt сказал:

есть возможность использовать значения, вычисляемые функциями, например, автолиспа или COM?

да (COM) если программно загонять их в ячейки таблицы, либо в какой нить объект.. блок например (оттуда таблицей читать)

а потом использовать эти значения для расчета

Возможно, некорректно задал вопрос.

Я имел ввиду, есть ли возможность использовать пользовательские функции непосредственно в формулах?

Для автоматического определения параметров перевода координат можно было бы использовать свойства и методы объектов, которые не предполагается подцеплять к таблице.

Например, объект UCS обладает методом перевода координат "из-в" между любыми СК. 

Конструкция типа 

    AcadObject.ActiveDocument.Utility.TranslateCoordinates(Point, acWorld, acUCS, False)

выглядит как раз отвечающей поставленной задаче. Вопрос в том, можно ли такую функцию (а также попутно перевод объектов Point в координаты и рассовывание их по ячейкам)  применить в формуле ячейки.

Link to comment
Share on other sites

51 минуту назад, EdwardSt сказал:

можно ли такую функцию (а также попутно перевод объектов Point в координаты и рассовывание их по ячейкам)  применить в формуле ячейки.

насколько я понимаю таблицы, то нет

таблицы работают с "материальными" объектами и их свойствами

добавлено через 2 минуты

кстати наверное можно и в таблицу без СОМ, через именованные ячейки, а дальше уже работать в таблице с этими значениями

лиспом жэж можно в атрибуты блока писать? по аналогии

Link to comment
Share on other sites

43 минуты назад, doctorraz сказал:

кстати наверное можно и в таблицу без СОМ, через именованные ячейки

Я просто не проводил экспериментов с программным доступом к содержимому таблиц.

Понятно, что COM, Lisp via COM или другие технологии - это исключительно на вкус разработчика.

Но при этом, похоже, необходимо проводить некоторые вспомогательные действия типа обновления атрибутов в блоках или команд, выполняющих эти обновления, а уже потом эти изменения отразятся в таблице. Заманчиво было бы, чтоб все происходило в автомате.

Видос от @MCAD очень интересен. Использование специального маркера локальной СК - , пожалуй, самый верный подход. Разумный компромисс между автоматическим переводом при любой смене СК (даже временной) и ручными манипуляциями с объектами и, атрибутами и таблицами. К сожалению, такого маркера у себя в стандартной установке не нашел. Ну и точный поворот маркера - какая-никакая, но все-таки проблемка.

 

Edited by EdwardSt
Link to comment
Share on other sites

1 минуту назад, EdwardSt сказал:

К сожалению, такого маркера у себя в стандартной установке не нашел.

дык @MCAD  из головы на ходу вот это все достает

 

добавлено через 0 минут
5 минут назад, EdwardSt сказал:

Ну и точный поворот маркера - какая-никакая, но все-таки проблемка.

дык лиспом его крутить не?

Link to comment
Share on other sites

3 минуты назад, EdwardSt сказал:

К сожалению, такого маркера у себя в стандартной установке не нашел.

Это не маркер. 

Это Обычный блок

image.png.8758a4d320992feb3454ad95d945ab48.png

Могла бы быть обычная линия

image.thumb.png.e7a38ee98d623f62e891e345023f01bd.png

 

Link to comment
Share on other sites

Только что, MCAD сказал:

Это не маркер. 

Это Обычный блок

Я про видео. 

С этим блоком то все понятно. Для него база не требуется.

Link to comment
Share on other sites

3 минуты назад, EdwardSt сказал:

Я про видео. 

Понятно. Под роликом на Ютубе ссылка на файл и маркер (как всегда).

image.png.214fc201010e015d820c477efb94ab75.png

Только там буржуйский,  а локализацию я не делал (в ресурсах)  

Лучше отсюда взять

Point Coordinate definition marker.zip

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

16 минут назад, doctorraz сказал:
22 минуты назад, EdwardSt сказал:

Ну и точный поворот маркера - какая-никакая, но все-таки проблемка.

дык лиспом его крутить не?

Это уже дополнительный вызов проги. Потому и проблемка, а не проблема. Ибо наличие дополнительных действий, о которых можно случайно забыть.

 

Кстати, если уж смотреть в сторону лиспа, то можно таким же лиспом заполнять атрибуты в блоках, включая попутный перевод координат. Тогда и таблица будет упрощена донельзя.

  • Like 1
Link to comment
Share on other sites

2 часа назад, EdwardSt сказал:

 перевод объектов Point в координаты и рассовывание их по ячейкам

 

Кустарный перевод точки в число.

 

На примере оси (spAxis)

Получение начальной координаты "X"

=subSplit(fmtRaw(Object."Axis start");" ";1)

 

image.png.b61ea2ce44027450b63fe3f111be7654.png

 

Получение конечной "X"

=round(subSplit(fmtRaw(Object."Axis end");" ";1);2)

 

image.png.eac35ad1a77bfb3ac7d2b137a94ba9e5.png

Далее можно посмотреть в примере

 

Перевод POINT в координаты XY.dwg

  • Like 2
Link to comment
Share on other sites

1 час назад, MCAD сказал:
4 часа назад, EdwardSt сказал:

 перевод объектов Point в координаты и рассовывание их по ячейкам

 

Кустарный перевод точки в число.

Когда имеем дело с материальными объектами, "подцепленными" в таблицу, то доступ к их свойствам и всякие математические преобразования - это дело навыка и аккуратности составления формул. 

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

Судя по всему, просто в формулу вставить такую функцию невозможно.

В отличие от объекта типа маркер. Я так понял, что в него (а значит и в другие собственные объекты) можно внедрить

Спойлер

image.png.6d4ee591e860636ab901777a3a013a4d.png

И это могло бы стать интересным решением. Правда, СПДС при этом должен быть обязательно.

 

ЗЫ. Старый добрый лисп мог бы такую табличку на раз сформировать и нарисовать/перерисовать)))

 

Link to comment
Share on other sites

1 час назад, EdwardSt сказал:

просто в формулу вставить такую функцию невозможно

Совершенно верно. Вызвать определённую функцию из ячейки невозможно, хотя очень хотелось бы. Я не могу написать в ячейке (условно А1) выражение и передать в неё параметры для вычисления.

Но. Если это отчёт, то вы в определённой колонке отчета пишете выражение (функцию) получаете:

  • свойства объекта
  • вычисленные значение в именованной ячейке
  • переменные определённые на форме таблицы
  • и т.п.

а потом можете ссылаться на полученный результат в любой строке отчёта. 

Да, это не "пользовательская функция", но суть та же. 

 

 

 

добавлено через 3 минут
1 час назад, EdwardSt сказал:

Правда, СПДС при этом должен быть обязательно.

И все это есть в платформе, включая переменные ФОРМЫ (кроме самой формы)

Но доступно в Инспекторе

image.png.d9b24bad349d0e00e113a6d3a6e38549.png

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...