| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 17.12.2020
Сообщений: 1
|
Приветствую!
Как я заметила, ссылка на ячейку содержит название таблицы. Можно ли как так сделать, чтобы ссылка была на "свою" таблицу? Я сделала таблицу со ссылками на ячейку, дальше я хочу сделать кучу копий этой таблицы, где информация в ячейке, на которую ссылаюсь, отличается от исходной таблицы. Сейчас все копии ссылаются на изначальную первую таблицу, а хотелось бы чтобы ссылка была на ячейку копии. Каждый раз обновлять ссылки для меня не имеет смысла, по времени это выйдет так же, как если бы я просто руками освежала нужные данные. |
|||
![]() |
|
||||
Инженер-электрик Регистрация: 08.08.2013
Нижний Новгород
Сообщений: 130
|
Добрый день. Вопрос не совсем по данной программе, но по данной тематике)) Можно ли как-то автоматизировать стандартную вставку ссылки на ячейку по ПКМ? Скажем макросом. Чтобы в 1 клик было. И повесить на кнопку или ещё что-то. Просто очень часто и мнорго использую для связки кабельного жруналп и принципиалок, а стандартная вставка по ПКМ отнимает много времени при больших объёмах. Пробовал команду EDITTABLECELL, но не получается
Последний раз редактировалось shmulka, 25.03.2022 в 10:09. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 276
|
уважаемый skkkk, возможно ли допилить лисп так, чтобы можно было просто значение текста (числа) из чертежа отправлять в свойства файла минуя вставку в выноску, и также вставлять полем из свойств?
смысл действия: создать связь разных файлов чертежей через свойства файла, которые отдельным лиспом копировать. ну, например, в первом файле у меня идет спецификация с порядковыми номерами позиций, а во втором файле чертеж детали, в названии которой указана позиция этой детали в общей спецификации. когда создаю спецификацию, все номера отправляю с помощью лиспа в свойства файла, потом эти свойства копирую в файлы с чертежами деталей и в каждом файле с деталью уже беру нужное поле. как только изменится номер позиции в спецификации я свойства файла спецификацией перенесу в другие файлы и обновлю чертежи. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,648
|
posetitel, не совсем понял. Нужно просто быстрая вставка поля со ссылкой на свойство чертежа?
Вроде того: 1. Запускаем лисп 2. Выпадает список всех свойств чертежа 3. Выбираем нужное 4. На курсоре висит поле. Выбираем текстовый объект, его значение отправляется в свойства чертежа? А с каким именем свойства? Так я понял? В общем, ТЗ пока на четвёрочку с минусом) И боюсь, нас за такое поругают. Лучше создать отдельную тему, ибо тут всё же о таблицах. Сделать такое несложно, кодов для работы со свойствами есть немало даже тут, на форуме. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 276
|
skkkk, давайте порассуждаем тут в рамках темы, думаю, все же это не будет оффтопом и строгий админ не накажет.
Итак. В лиспе значение текста из ячейки записывается в переменную, которая сохраняется в свойствах чертежа. Это очень интересное решение, раньше такого вроде не встречал, все происходило через буфер обмена либо через какую-то внутреннюю лисповскую переменную, т.е. нигде не сохранялось значение для возможности дальнейшего использовался. Так вот, раз у нас в чертеже появляется переменная со значением из таблицы, то почему бы и дальше эту переменную не использовать. Как варианты использования как вы ранее писали, можно сделать повторный вызов списка переменных и выбирать, какую конкретно вставить в поле, т.е. если надо сделать две выноски со значением из одной ячейки таблицы, чтобы не плодить переменные просто использовать уже ранее сохраненную. Когда писал предыдущее сообщение, то не совсем верно понимал принцип работы лиспа, в переменную копируется не значение из ячейки, а адрес этой ячейки в таблице, т.е. если перед ячейкой вставить строку или столбец, то все ссылки на эту ячейку собьются, т.к. по адресу ссылки будет уже новая вставленная строка или столбец. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,648
|
Что-то понимания у меня сильно не прибавилось.
Таблица, как я понял, всё же нужна, значения нужно брать из неё. Цитата:
Цитата:
Или я что-то недопонял? Последний раз редактировалось skkkk, 30.06.2023 в 17:08. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 276
|
Да все верно поняли, предыдущие предложения по вариантам модификации лиспа отпали в процессе обсуждения.
В идеале бы конечно, как выразились: "придумать новый эксель",точнее сделать ссылку на конкретную ячейку, чтобы вставка строк в таблице перед этой ячейкой не сбивала привязку к значению... Но сам понимаю, что принципы таблиц автокада несколько иные. |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 4,999
|
Цитата:
Можно конвертировать акадовскую таблицу в массив блоков с атрибутами, каждый из блоков будет соответствовать одной строке, каждый атрибут - одной ячейке (будем считать, что структура столбцов неизменна). На эти атрибуты уже без проблем могут ссылаться поля. Вся штука в том, чтобы обеспечить соответствие "строкоблоков" первый раз заданным строкам. Чтобы если в екселе и связанной акадовской таблице первая строка стала второй, соответствующий "строкоблок" переместился на вторую позицию, а на первой позиции появился новый. Если первый раз заданная строка таблицы будет все время соответствовать одному и тому же "строкоблоку" с одним и тем же хендлом, ссылающиеся на него поля не будут сбиваться! Чтобы этого добиться, при создании массива строкоблоков хендл каждого из них записывается в последнюю, "служебную" ячейку соотв. строки. Профит, что ли... Написал себе для этих целей довольно глючный лисп, пока не хочу выкладывать на посмешище... Последний раз редактировалось kp+, 30.06.2023 в 18:20. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 276
|
Переделывание таблицы в блок - это уже какие-то костыли, не очень хорошая идея. В каком-то отдельном случае может быть и поможет, но в общем случае таблица для того и создается, чтобы потом в ней работать.
Не сочтите за грубость, лишь стараюсь высказывать аккуратную критику, и надеюсь, что она наведет на иные способы решения. Как вариант - копировать в свойство чертежа не адрес ячейки, а содержимое ячейки, и тут же вставлять ссылку свойства чертежа в саму ячейку, т.е. чтобы в ячейке тоже было поле. Тогда, как минимум, при вставке новой строки, значения полей в выносных линиях не уплывут. Проблема будет с корректировкой этих значений этих свойств чертежа. Может быть тогда и пригодится вызов меню со значениями всех свойств и там надо будет руками править. Ну или прям в лоб, т.е. через "свойства файла", "дополнительно" Последний раз редактировалось posetitel, 30.06.2023 в 19:21. |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 4,999
|
Offtop:
Цитата:
И вообще, большая часть всех прог на этом форуме - "костыли" для тех, у кого нет денег на "шашечки", а "ехать" хоть как-то надо Не костыли, то уже полноценная вертикалка типа Acad MEP или близкое к этому, типа VetCAD, ruCAD, линейки CS... |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,648
|
Цитата:
После я полностью пересмотрел модель своей работы, уйдя от полей в пользу генерации результатов лиспом, а отчасти - перейдя всё же в эксель, а еще позднее задача вообще отпала. А так можно было бы и развить эту прогу, можно и бд подкрутить, и даже реактор на таблицу привесить, чтоб при изменении количества строк или столбцов менялась адресация ячеек, но это уже будет настолько грандиозный проект, что съест немеряную кучу времени, а смысла большого от него нет. Автокадовские таблицы для подобных задач - тугая вещь, тупиковый путь это. Разве что для каких-то мелких задачек. |
|||
![]() |
|
||||
Регистрация: 16.10.2013
Сообщений: 276
|
Товарищи, ссылался на другие лиспы, а стал их искать и что-то не нахожу
![]() Поделитесь ссылкой на лисп, который копирует значение из ячейки таблицы и вставляет в другое место (выноска, другая таблица, мультитекст и т.д.), только минует добавление свойств в файл чертежа. Ну т.е. такой же лисп, как и в теме, но без промежуточных переменных в чертеже. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Считывание значение ячейки таблицы в виде Field в AutoLISP | tokhot | LISP | 9 | 08.01.2017 17:54 |
Может ли поле принимать текстовое значение ячейки таблицы? | Sergiy | AutoCAD | 23 | 01.08.2013 12:30 |