nkurchanova Posted April 8 Report Share Posted April 8 (edited) Всем добрый день. Меняю систему координат в файле на пользовательскую. Создаю отчет (таблицу), но координаты в таблице остаются мировые. Можно ли сделать так чтобы в таблице показывались пользовательские координаты? Нанокад 23. Всем ответившим заранее спасибо. коордианты всжм геобридж.dwg Edited April 8 by nkurchanova нанокад 23 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 8 Report Share Posted April 8 2 часа назад, nkurchanova сказал: Можно ли сделать так чтобы в таблице показывались пользовательские координаты Нет. В отчёт попадает только мировая система. Но можно пересчитать относительно любого объекта. Кажется тут был пример. 3 Quote Link to comment Share on other sites More sharing options...
alexey.kurenkov Posted April 8 Report Share Posted April 8 Таблица действительно берет координаты только по МСК. Могу предложить сделать выражение для перевода. Но оно будет правомерно только для плоской системы. коордианты всжм геобридж с выражением.dwg 5 Quote Link to comment Share on other sites More sharing options...
nkurchanova Posted April 9 Author Report Share Posted April 9 Спасибо. Алексей, то что надо. MCAD спасибо за ссылку, пока не понятно, попробую разобраться на досуге. Между прочим коллеги предложили "топорный" способ: после изменения пск скопировать точки в лист и уже там извлечь координаты. 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 10 Report Share Posted April 10 9 часов назад, nkurchanova сказал: пока не понятно Просто перемещайте или вращайте блок коордианты всжм геобридж с выражением.dwg 4 Quote Link to comment Share on other sites More sharing options...
alexey.kurenkov Posted April 10 Report Share Posted April 10 4 часа назад, MCAD сказал: Просто перемещайте или вращайте блок коордианты всжм геобридж с выражением.dwg 368 \u043a\u0411 · 2 загрузки Интересное решение. Можно сделать динамическую связь сразу на 2 блока для увязки нескольких ПСК. 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 10 Report Share Posted April 10 12 минут назад, alexey.kurenkov сказал: Интересное решение. То же что и во втором посте, только добавил Ваш алгоритм пересчёта угла наклона блока. 3 Quote Link to comment Share on other sites More sharing options...
nkurchanova Posted April 19 Author Report Share Posted April 19 Добрый день. Подскажите где об этом почитать (не видео): В перечне объектов только Object, а в формуле Object1. Откуда? Quote Link to comment Share on other sites More sharing options...
alexey.kurenkov Posted April 19 Report Share Posted April 19 Объект1 это присоединенных объект через свойство ячейки 3 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 19 Report Share Posted April 19 4 минуты назад, nkurchanova сказал: Подскажите где об этом почитать (не видео): Тут: 2 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 20 Report Share Posted April 20 В 08.04.2023 в 23:11, alexey.kurenkov сказал: Могу предложить сделать выражение для перевода. Но оно будет правомерно только для плоской системы. Хотелось бы уточнить Спойлер Т.е., эта таблица - исключительно под конкретную ПСК автора ветки? Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 20 Report Share Posted April 20 В 10.04.2023 в 07:42, MCAD сказал: Просто перемещайте или вращайте блок Такое решение позволяет изменять содержимое отчета без изменения таблицы. Остается правильно расположить блок ПСК. Только попутно выяснилось несколько моментов, которые необходимо иметь ввиду: При изменении ПСК необходимо вручную перенести блок в координаты 0,0. Это делается просто, но исключительно вручную Определение угла поворота может оказаться нетривиальной задачей. С удивлением узнал, что в окне свойств показываются координаты в ПСК (что логично), а поворот - в МСК. При этом попытка вставки любого блока с поворотом 0 автоматически переводит угол в МСК. Кстати, так же реализовано у конкурента. Вопрос к знатокам таблиц: есть возможность использовать значения, вычисляемые функциями, например, автолиспа или COM? Если да, то можно в отчет включить автоматическое получение матрицы перевода координат ПСК->Объект->МСК во всех направлениях. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted April 20 Report Share Posted April 20 (edited) 7 минут назад, EdwardSt сказал: есть возможность использовать значения, вычисляемые функциями, например, автолиспа или COM? да (COM) если программно загонять их в ячейки таблицы, либо в какой нить объект.. блок например (оттуда таблицей читать) а потом использовать эти значения для расчета Edited April 20 by doctorraz 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 20 Report Share Posted April 20 29 минут назад, EdwardSt сказал: Если да, то можно в отчет включить автоматическое получение матрицы перевода координат ПСК->Объект->МСК во всех направлениях. В соседней теме - определение координат блоков относительно координатных осей spAxis (вообще-то не принципиально, а наоборот сильно усложняет задачу) Вычисление атрибутов (А0:Б1...В12:Г2) как раз и делается через пересчёт локальных координат внутри матрицы осей. Если я правильно понял вопрос. добавлено через 7 минут 32 минуты назад, EdwardSt сказал: При изменении ПСК необходимо вручную перенести блок в координаты 0,0. Это делается просто, но исключительно вручную Это просто пример для наглядности. Сделайте форму с полями ввода координат, или checkBox с переменной, которая будет включать || выключать ПСК 03:27 2 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 21 Report Share Posted April 21 20 часов назад, doctorraz сказал: 20 часов назад, EdwardSt сказал: есть возможность использовать значения, вычисляемые функциями, например, автолиспа или COM? да (COM) если программно загонять их в ячейки таблицы, либо в какой нить объект.. блок например (оттуда таблицей читать) а потом использовать эти значения для расчета Возможно, некорректно задал вопрос. Я имел ввиду, есть ли возможность использовать пользовательские функции непосредственно в формулах? Для автоматического определения параметров перевода координат можно было бы использовать свойства и методы объектов, которые не предполагается подцеплять к таблице. Например, объект UCS обладает методом перевода координат "из-в" между любыми СК. Конструкция типа AcadObject.ActiveDocument.Utility.TranslateCoordinates(Point, acWorld, acUCS, False) выглядит как раз отвечающей поставленной задаче. Вопрос в том, можно ли такую функцию (а также попутно перевод объектов Point в координаты и рассовывание их по ячейкам) применить в формуле ячейки. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted April 21 Report Share Posted April 21 51 минуту назад, EdwardSt сказал: можно ли такую функцию (а также попутно перевод объектов Point в координаты и рассовывание их по ячейкам) применить в формуле ячейки. насколько я понимаю таблицы, то нет таблицы работают с "материальными" объектами и их свойствами добавлено через 2 минуты кстати наверное можно и в таблицу без СОМ, через именованные ячейки, а дальше уже работать в таблице с этими значениями лиспом жэж можно в атрибуты блока писать? по аналогии Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 21 Report Share Posted April 21 (edited) 43 минуты назад, doctorraz сказал: кстати наверное можно и в таблицу без СОМ, через именованные ячейки Я просто не проводил экспериментов с программным доступом к содержимому таблиц. Понятно, что COM, Lisp via COM или другие технологии - это исключительно на вкус разработчика. Но при этом, похоже, необходимо проводить некоторые вспомогательные действия типа обновления атрибутов в блоках или команд, выполняющих эти обновления, а уже потом эти изменения отразятся в таблице. Заманчиво было бы, чтоб все происходило в автомате. Видос от @MCAD очень интересен. Использование специального маркера локальной СК - , пожалуй, самый верный подход. Разумный компромисс между автоматическим переводом при любой смене СК (даже временной) и ручными манипуляциями с объектами и, атрибутами и таблицами. К сожалению, такого маркера у себя в стандартной установке не нашел. Ну и точный поворот маркера - какая-никакая, но все-таки проблемка. Edited April 21 by EdwardSt Quote Link to comment Share on other sites More sharing options...
doctorraz Posted April 21 Report Share Posted April 21 1 минуту назад, EdwardSt сказал: К сожалению, такого маркера у себя в стандартной установке не нашел. дык @MCAD из головы на ходу вот это все достает добавлено через 0 минут 5 минут назад, EdwardSt сказал: Ну и точный поворот маркера - какая-никакая, но все-таки проблемка. дык лиспом его крутить не? Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 21 Report Share Posted April 21 3 минуты назад, EdwardSt сказал: К сожалению, такого маркера у себя в стандартной установке не нашел. Это не маркер. Это Обычный блок Могла бы быть обычная линия Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 21 Report Share Posted April 21 Только что, MCAD сказал: Это не маркер. Это Обычный блок Я про видео. С этим блоком то все понятно. Для него база не требуется. Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 21 Report Share Posted April 21 3 минуты назад, EdwardSt сказал: Я про видео. Понятно. Под роликом на Ютубе ссылка на файл и маркер (как всегда). Только там буржуйский, а локализацию я не делал (в ресурсах) Лучше отсюда взять Point Coordinate definition marker.zip 1 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 21 Report Share Posted April 21 16 минут назад, doctorraz сказал: 22 минуты назад, EdwardSt сказал: Ну и точный поворот маркера - какая-никакая, но все-таки проблемка. дык лиспом его крутить не? Это уже дополнительный вызов проги. Потому и проблемка, а не проблема. Ибо наличие дополнительных действий, о которых можно случайно забыть. Кстати, если уж смотреть в сторону лиспа, то можно таким же лиспом заполнять атрибуты в блоках, включая попутный перевод координат. Тогда и таблица будет упрощена донельзя. 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 21 Report Share Posted April 21 2 часа назад, EdwardSt сказал: перевод объектов Point в координаты и рассовывание их по ячейкам Кустарный перевод точки в число. На примере оси (spAxis) Получение начальной координаты "X" =subSplit(fmtRaw(Object."Axis start");" ";1) Получение конечной "X" =round(subSplit(fmtRaw(Object."Axis end");" ";1);2) Далее можно посмотреть в примере Перевод POINT в координаты XY.dwg 2 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted April 21 Report Share Posted April 21 1 час назад, MCAD сказал: 4 часа назад, EdwardSt сказал: перевод объектов Point в координаты и рассовывание их по ячейкам Кустарный перевод точки в число. Когда имеем дело с материальными объектами, "подцепленными" в таблицу, то доступ к их свойствам и всякие математические преобразования - это дело навыка и аккуратности составления формул. В моем примере имелась ввиду возможность представления сущности типа "3D-точка", которая могла бы являться аргументом предложенной функции. Т.е., сначала из ячеек таблицы нужно сформировать такую структуру, подставить ее в формулу, полученный результат где-то временно разместить. чтоб из этого результата последовательно вытащить нужные координаты. Судя по всему, просто в формулу вставить такую функцию невозможно. В отличие от объекта типа маркер. Я так понял, что в него (а значит и в другие собственные объекты) можно внедрить Спойлер И это могло бы стать интересным решением. Правда, СПДС при этом должен быть обязательно. ЗЫ. Старый добрый лисп мог бы такую табличку на раз сформировать и нарисовать/перерисовать))) Quote Link to comment Share on other sites More sharing options...
MCAD Posted April 21 Report Share Posted April 21 1 час назад, EdwardSt сказал: просто в формулу вставить такую функцию невозможно Совершенно верно. Вызвать определённую функцию из ячейки невозможно, хотя очень хотелось бы. Я не могу написать в ячейке (условно А1) выражение и передать в неё параметры для вычисления. Но. Если это отчёт, то вы в определённой колонке отчета пишете выражение (функцию) получаете: свойства объекта вычисленные значение в именованной ячейке переменные определённые на форме таблицы и т.п. а потом можете ссылаться на полученный результат в любой строке отчёта. Да, это не "пользовательская функция", но суть та же. добавлено через 3 минут 1 час назад, EdwardSt сказал: Правда, СПДС при этом должен быть обязательно. И все это есть в платформе, включая переменные ФОРМЫ (кроме самой формы) Но доступно в Инспекторе 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.