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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Таблица в autocad не пересчитывает формулы

Таблица в autocad не пересчитывает формулы

Ответ
Поиск в этой теме
Непрочитано 26.05.2009, 09:31 #1
Таблица в autocad не пересчитывает формулы
aspid132
 
Регистрация: 28.01.2009
Сообщений: 26

Здравствуйте. У меня проблема с таблицами.
Есть таблица с забитыми в нее формулами. Если поменять числа в таблице, то формула итоговый результат не пересчитывает. Причем, иногда бывают удачные дни, когда все-таки подсчет происходит, но это бывает редко. Скорее всего проблема не с автокадом, т.к. на разных компах результат один и тот же. Таблица была создана в автокаде, но побывала в файле, который изначально был создан в zwcad. Может быть проблема в файле?
Есть еще одна небольшая проблемка: однострочный текст выделяется, когда захочет, ведет себя так же, как растровое изображение при значении переменной imageframe=0. Подскажите, пожалуйста, что делать.

Вложения
Тип файла: dwg
DWG 2004
Таблица.dwg (214.0 Кб, 1784 просмотров)

Просмотров: 47755
 
Непрочитано 26.05.2009, 10:31
#2
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


У тебя практически во всех ячейках текстовый формат данных, вот и не считает
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 26.05.2009, 11:10
#3
aspid132


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


Менял формат данных, все равно не пересчитывает
aspid132 вне форума  
 
Непрочитано 26.05.2009, 11:31
#4
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Создавай заново, и на будущее используй шрифты SHX, а не TTF.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 26.05.2009, 11:56
#5
aspid132


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


А других способов нет? И получается, что из-за шрифта не считает? У меня есть другие таблицы с шрифтом, которые все нормально считают. Кстати, не люблю им пользоваться, но приходится((
aspid132 вне форума  
 
Непрочитано 26.05.2009, 12:10
#6
Nikolay 2


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


ZWcad с таблицами созданными в АСade не дружит ИМХО, имеется отрицательный опыт попытаться сохранить файл с таблицей АСad, гробит напрочь, несколько файлов даже не поддались восстановлению
Nikolay 2 вне форума  
 
Непрочитано 26.05.2009, 12:36
#7
VoVoRoNaLe

Конструктор
 
Регистрация: 29.10.2007
Сообщений: 157


updatefield
VoVoRoNaLe вне форума  
 
Автор темы   Непрочитано 26.05.2009, 13:22
#8
aspid132


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


updatefield не работает
aspid132 вне форума  
 
Непрочитано 26.05.2009, 13:41
#9
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


У меня работает только так: выделить ячейку - ПКМ контекстное меню - Вставить - Редактировать поле - и сразу Ок
__________________
*...И Случай, бог изобретатель. *
skif58 вне форума  
 
Непрочитано 26.05.2009, 15:32
#10
VoVoRoNaLe

Конструктор
 
Регистрация: 29.10.2007
Сообщений: 157


FieldEval = 31
RegenAll
VoVoRoNaLe вне форума  
 
Непрочитано 26.05.2009, 15:40
#11
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Тоже пробовал - не помогает.
__________________
*...И Случай, бог изобретатель. *
skif58 вне форума  
 
Автор темы   Непрочитано 26.05.2009, 16:32
#12
aspid132


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


Цитата:
Сообщение от skif58 Посмотреть сообщение
У меня работает только так: выделить ячейку - ПКМ контекстное меню - Вставить - Редактировать поле - и сразу Ок
Помогает. Хоть так, тоже способ.
aspid132 вне форума  
 
Непрочитано 27.05.2009, 12:09
#13
VoVoRoNaLe

Конструктор
 
Регистрация: 29.10.2007
Сообщений: 157


Command: _updatefield
Select objects: 1 found

Select objects:

31 field(s) found.
0 field(s) updated.

Ищите почему!
VoVoRoNaLe вне форума  
 
Непрочитано 27.05.2009, 12:59
#14
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Цитата:
Сообщение от VoVoRoNaLe Посмотреть сообщение
Ищите почему!
Вообще то с этого все и началось.

aspid132, а по тексту ЭТО не помогло?
__________________
*...И Случай, бог изобретатель. *
skif58 вне форума  
 
Непрочитано 27.05.2009, 23:47
#15
Кулик Алексей aka kpblc
Moderator

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


По-моему, формулы вбивались "впрямую" в ячейки. Если их создавать "длинным" путем, через вставку поля,- то вроде все нормально.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.05.2009, 00:51
#16
skkkk


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


Может кто знает, есть ли возможность в кадовских таблицах присвоить каждой ячейке уникальный адрес, который бы не менялся при удалении/добавлении строк/столбцов (переменная, может, есть какая)? По аналогии с excell (либо там ссылки обновляются - не знаю точно того алгоритма). Дело в том, что поле, ссылающееся на ячейку, допустим, A3 в таблице слетает (2008), либо принимает значение ячейки A4 (2010) при удалении строки 2. А мне нужно, чтобы поле ссылалось на конкретную ячейку.
skkkk вне форума  
 
Автор темы   Непрочитано 28.05.2009, 08:49
#17
aspid132


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


skif58, с текстом помогло. Но был найден и другой способ: заблокировать, а потом разблокировать слой на котором находится текст))
Может кто подскажет, появилась еще проблема. При копировании таблиц или при очередном открытии файла в таблицах в ранее чистый ячейках появляются какие-то знаки, которых там не должно быть.
aspid132 вне форума  
 
Непрочитано 24.03.2010, 11:26 Не обновляются поля (вычисления) в таблицах AutoCAD 2006,2008,2010
#18
pungarov


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


Добрый день создал кучу таблиц в файле AutoCAD 2006 завязал их с полями, вычисления, вообщем работало на ура просто сказка.
После установки AutoCAD 2010 лицензионного в файлах АutoCAD перестали обновлятся поля в некоторых таблицах.
Переделывать таблицы - долго и то не факт что будут работать.
Значение переменной fieldeval = 31.
Самое интересное, что в тексте поля обновляются, а вычисления типа
2+3 = 1 приходится каждый раз заходить нажимаешь редактировать поле - там вычисление правильное. Нажимаешь ок и обновляется.
Как решить данную проблему ? Может у кого есть лисп хотя бы типа каждую ячейку обновляешь поле.
pungarov вне форума  
 
Непрочитано 24.03.2010, 12:00
#19
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Есть команда принудительного обновления всех полей объекта (объектов). Попробуй _updatefield, потом выбрать все (или то, что надо)
kp+ вне форума  
 
Непрочитано 24.03.2010, 12:00
#20
Кулик Алексей aka kpblc
Moderator

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


А сервис-пак на 2010 установлен?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.03.2010, 12:38
#21
pungarov


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


kp+ _updatefield не помогает
Кулик Алексей aka kpblc - Сервис Пак установлен
Файл с табличкой прикреплён.
Вложения
Тип файла: dwg
DWG 2007
Табличка.dwg (96.5 Кб, 1300 просмотров)
pungarov вне форума  
 
Непрочитано 30.03.2010, 15:58
#22
Кулик Алексей aka kpblc
Moderator

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


Попробовал погонять таблицу. Странное поведение: если войти в редактирование поля, и там по новой создать формулу (нажав по ходу дела кнопку [Evaluate]), то все начинает считаться корректно.
Программного решения придумать не удалось.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.04.2010, 16:50
#23
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


И у меня такая ж хрень.. Запаривает сия невзгода.. Перебиваешь формулу по-новой, - работает..
Вложения
Тип файла: dwg
DWG 2004
Таблица.dwg (75.9 Кб, 1278 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 06.04.2010, 17:16
#24
pungarov


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


Ну пока что я решаю данную проблемку через одно место и долго. Выделяю ячейку, кликаю правой кнопонькой, выбираю редактировать поле, потом кликаю на кнопоньку Вычислить и кликаю ОК. Но проблема, что так нужно делать во всех формулах. Мо на VBA сделать перебор всех полей в ячейках таблицы и выполнение функцию Вычислить.
Сколько не искал решения, пока его нету. Уже разобрался откуда поля берутся, но они подвязаны с dll, так что понять, где проблема зарыта мне неясно.
pungarov вне форума  
 
Непрочитано 29.11.2013, 13:11
#25
Genf

Другие берега
 
Регистрация: 12.09.2009
г. Краснодар
Сообщений: 315


Попытаюсь возродить тему - тот же косяк в 2013 версии. До этого ни разу нигде не встречал. Есть ли какое нибудь решение?
Genf вне форума  
 
Непрочитано 29.11.2013, 14:23
#26
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Genf Посмотреть сообщение
Попытаюсь возродить тему - тот же косяк в 2013 версии. До этого ни разу нигде не встречал. Есть ли какое нибудь решение?
Нет, не найдено. Косяк таинственный, непонятно с чем связанный, т.к. в одном файле может все нормально обновляться, в другом - нет. Много раз уже и лисперов форумских просил посмотреть, что можно сделать, - никто не отозвался. (ну, хотя бы какой-нибудь имитатор прохода по ячейкам таблицы с заходом в редактор поля и нажатием "ОК"..)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 29.11.2013, 14:32
#27
Genf

Другие берега
 
Регистрация: 12.09.2009
г. Краснодар
Сообщений: 315


Самое интересное - те поля, которые связаны со свойством чертежа для заполнения штампа работают без проблем, а вот именно те, которые в таблицах работают косячно. Из-за этого спецификации выходят неверными - приходится все проверять перед печатью.
Genf вне форума  
 
Непрочитано 29.11.2013, 14:40
#28
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Genf Посмотреть сообщение
Самое интересное - те поля, которые связаны со свойством чертежа для заполнения штампа работают без проблем, а вот именно те, которые в таблицах работают косячно. Из-за этого спецификации выходят неверными - приходится все проверять перед печатью.
Если штамп - таблица, то не факт. Ссылки на свойства документа в ячейках тоже имеют свойство глючить. Причем, иногда - безнадежно, то бишь в редактор поля зашел, отредактировал, окей нажал, - вроде все нормально. Файл сохранил, закрыл.. Открыл, - поле показывает не то значение. Я теперь в ячейку таблицы вставляю блок, а в блоке - ссылку на поле. Если с полями все нормально, тогда обновляется автоматом, если нет - захожу в блок, меняю там, - меняется во всех штампах..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 29.11.2013, 14:51
#29
Genf

Другие берега
 
Регистрация: 12.09.2009
г. Краснодар
Сообщений: 315


Штамп сделан в виде блока - без использования таблиц. Хотя и вариант с таблицей где то валяется.

Дело ясное, что дело темное с этими полями.
Genf вне форума  
 
Непрочитано 29.11.2013, 15:56
#30
pungarov


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


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

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

----- добавлено через ~7 мин. -----
конфликт форматов
pungarov вне форума  
 
Непрочитано 29.11.2013, 16:33
#31
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от pungarov Посмотреть сообщение
Вроде решилась проблема с изменением форматов таблицы. Тоесть нужно изменить формат с текстового на десятичное число, должно помочь.

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

----- добавлено через ~7 мин. -----
конфликт форматов
То бишь формат ячеек, на которые ссылается поле, должен быть числовым? Вроде обычно так и делаешь, хотя все возможно.. Но косяки не только с "числовыми" и формульными полями, - ссылки на ячейки таблицы и свойства документа тоже зачастую глючат..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 12.10.2017, 07:59
#32
zRaFiNaDz


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


Всем привет!
В-общем есть два файла. Первый образец, где все считается в таблицах и ссылках на ячейки, взял первый файл как образец, скопировал как новый проект, через "найти и заменить" поменял штампы, наименование и т.д по тексту.
Текст (МТЕКСТ) форматированный с абзацем и междустрочным интервалом. После того как зашел в текст слетело форматирование (gost_tybe B) - именно это я думаю и есть причина, и после этого даже если вбить в ячейку с формулой "=2+2" она не обновляет значение.
До этого с теми же форматированиями и стилями текста и таблиц создал и правил +100500 файлов - и такого бага никогда не было, все считалось без проблем.
Автокад сейчас 2017 как всегда с СПДС Модулем. Грешил на лисп "Prokat" с этого сайта, но даже после сноса его, всех настроек, чистки реестра и переустановки Ватокада, проблема осталась.
Надеюсь может кто-то глянет и возможно найдет причину бага.
Заранее спасибо!
P.D. Чертежи очищать не стал, команда _updatefield - не помогает, при аудите - ошибок нет.
Вложения
Тип файла: dwg
DWG 2013
файл 1 работает.dwg (498.3 Кб, 29 просмотров)
Тип файла: dwg
DWG 2013
файл 2 не работает.dwg (505.1 Кб, 20 просмотров)
zRaFiNaDz вне форума  
 
Непрочитано 18.12.2017, 09:54
#33
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


Не создавая новую тему, вопрос задам здесь!
Есть две таблицы в одной объемы работ в другой материалы на эти работы.
Эти таблицы идут парой из листа в лист.
Когда копирую две таблицы, та в которой есть ссылка на ячейку сохраняет путь к таблице и не изменяет ее при копировании.
Это не сразу замечаешь, а только когда понимаешь что при изменении объемов кол-во материала не меняется. Как быть?
FRAER вне форума  
 
Непрочитано 18.12.2017, 10:35
#34
Искромэн


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


Делать таблицы через ексель и вставлять как оле объекты
Искромэн вне форума  
 
Непрочитано 18.12.2017, 10:38
#35
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


Не вариант. Не хочется.
Мне надо понять почему здесь так!
FRAER вне форума  
 
Непрочитано 18.12.2017, 10:42
#36
Искромэн


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


Потому что автодоски делали таблицы через известное место.
Искромэн вне форума  
 
Непрочитано 18.12.2017, 10:50
#37
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


Про такую мелочь забыли? Думаю где то в настройках должно быть что то)))))
FRAER вне форума  
 
Непрочитано 18.12.2017, 11:02
#38
Искромэн


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


К сожалению, это так, ссылки видимо привязываются в файле, а в другом уже слетают, а еще эти таблицы жутко тормозящие (особенно если есть операция деления). Сам быстро это просек и пересел на ексель)
Искромэн вне форума  
 
Непрочитано 18.12.2017, 11:06
#39
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


Выложите файлик автокада с таблицей эксель!
Погляжу может и понравится.
FRAER вне форума  
 
Непрочитано 18.12.2017, 11:27
#40
skkkk


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


В Excel выделить диапазон ячеек, Ctrl+C, в AutoCAD Ctrl+V. Получится
Цитата:
Сообщение от FRAER Посмотреть сообщение
файлик автокада с таблицей эксель!
skkkk вне форума  
 
Непрочитано 18.12.2017, 11:33
#41
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


А как сделать что бы таблица была не белой?

Что бы отображалась как обычна автокадовская!
И разве если ее скопировать в паре с другой таблицей в одном файле автокада ссылки между ячейками согласуются?
FRAER вне форума  
 
Непрочитано 18.12.2017, 11:52
#42
Искромэн


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


Вот

----- добавлено через ~1 мин. -----
Ну вы можете в екселе цветом заливки управлять и вставлять как захотите, потом чтобы отредактировать выбираете таблицу и "редактировать оле объект"
Вложения
Тип файла: dwg
DWG 2013
таблица.dwg (1.77 Мб, 38 просмотров)
Искромэн вне форума  
 
Непрочитано 18.12.2017, 11:58
#43
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


А теперь помучаю вопросиками:
- высота шрифта в шапке таблицы - строго 5мм
- высота текста в остальной части - 3,5мм
- высота строк строго не менее 8мм

Шрифт отличается - я пользуюсь ГОСТ тип А. Шрифт в таблице отличается от самого чертежа.
FRAER вне форума  
 
Непрочитано 18.12.2017, 12:12
#44
Искромэн


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


Заходим в редактор оле объекта и меняем как удобно вам)
(Правой кнопкой по таблице)
Искромэн вне форума  
 
Непрочитано 18.12.2017, 13:19
#45
FRAER

Инженер
 
Регистрация: 02.04.2009
РФ
Сообщений: 864


Что то у меня там только высота текста и тип!
FRAER вне форума  
 
Непрочитано 18.12.2017, 13:26
#46
Искромэн


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


Я про это говорю, а потом в экселе делайте как захотите)
После нажатия опен оле открывается лист экселя
Миниатюры
Нажмите на изображение для увеличения
Название: Untitled.jpg
Просмотров: 142
Размер:	106.1 Кб
ID:	196919  
Искромэн вне форума  
 
Непрочитано 16.01.2018, 22:15
#47
DMS-chiii


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


Шел 2018 год а таблицы все не пересчитывает. Как видно из прилагаемых файлов и скрина, значение в таблице не верное. Оно останется не верным т. е. вообще не пересчитается если попробовать изменить цифры в таблице уже заданный ячеек. Попытка скопировать ячейку в другое место и изменить значение цифр там, тоже не даст правильного результата. Только если войти в ячейку и скопировать текст из нее, тогда математические формулы заработают. Почему так получается и как этого избежать?
Миниатюры
Нажмите на изображение для увеличения
Название: таблица.jpg
Просмотров: 95
Размер:	33.1 Кб
ID:	197770  
Вложения
Тип файла: dwg
DWG 2018
таблица.dwg (47.7 Кб, 21 просмотров)
Тип файла: dwg
DWG 2013
таблица 2013.dwg (48.3 Кб, 23 просмотров)
DMS-chiii вне форума  
 
Непрочитано 04.02.2018, 08:17
#48
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Действительно в 1 файле всё считается, во 2 не считается! Может это проявление санкций? Где наши хвалёные программисты? Вся страна мучается с этой проблемой!
МишаИнженер вне форума  
 
Непрочитано 04.02.2018, 08:27
#49
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Нашёл способ решения!
1) Стереть знак "=" в формуле
2) Выйти из ячейки
3) Зайти в ячейку
4) Написать знать "="
5) Выйти из ячейки
Всё это можно запрограммировать в VBA. Правда предварительно надо запомнить высоты строк таблицы, так как при появлении текста формул на шаге 2 меняется высота строк таблицы. Когда сделаю програмку в Excel напишу вам об этом!
МишаИнженер вне форума  
 
Непрочитано 04.02.2018, 09:35
1 | #50
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Вся страна мучается с этой проблемой!
Заметил одну особенность: Если скопировать значение ячейки с формулой в буфер, вбить туда просто текст, вновь зайти в редактор и вставить значение ячейки из буфера, то она начинает работать.
Т.е нужно заменить значение ячейки текстом, а затем опять формулой

----- добавлено через ~7 мин. -----
Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Где наши хвалёные программисты?
Взял из этой темы LISP. Подготовка подосновы пару функций. Написал команду, которая в ячейках с формулами:
- запоминает значение формулы ячейки
- заполняет значение пустым текстом
- заполняет значение запомненной формулой
Вроде после этого формулы "оживают" (проверено на файлах в #15, #6, #4)
Код:
[Выделить все]
(defun C:ReTable (/ Doc ss mtlist)
  (vl-load-com)
  (setq Doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark Doc)
  (if (setq ss (ssget "_:L" '((0 . "ACAD_TABLE"))))
    (progn
      (foreach obj (mapcar (function vlax-ename->vla-object)
                           (vl-remove-if
                             (function listp)
                             (mapcar (function cadr) (ssnamex ss))
                           ) ;_ end of vl-remove-if
                   ) ;_ end of mapcar
        (and (vlax-property-available-p Obj 'RegenerateTableSuppressed)
             (vla-put-regeneratetablesuppressed Obj :vlax-true)
        ) ;_ end of and
        (setq mtlist nil)
        (vlax-for item
                  (vla-item
                    (vla-get-blocks DOC)
                    (cdr (assoc 2 (entget (vlax-vla-object->ename obj)))
                    ) ;_ end of cdr
                  ) ;_ end of vla-item
          (if (and (vlax-write-enabled-p item)
                   (vlax-property-available-p item 'TextString)
              ) ;_ end of and
            (progn
              (setq mtlist
                     (cons
                       (list
                         (mip_MTEXT_Unformat (vla-get-textstring item))
                         (bg:FieldCode (vlax-vla-object->ename item))
                       ) ;_ end of list
                       mtlist
                     ) ;_ end of cons
              ) ;_ end of setq
            ) ;_ end of progn
          ) ;_ end of if
        ) ;_ end of vlax-for
        (vl-catch-all-apply
          '(lambda (col row / i j tmp lock)
             (setq j '-1)
             (repeat row
               (setq j (1+ j)
                     i '-1
               ) ;_ end of setq
               (repeat col
                 (setq i (1+ i))
                 (if (and (= (vla-getcelltype Obj j i) actextcell)
                          (not (zerop (vla-getfieldid obj j i)))
                     ) ;_Add VVA 2014-11-06
                   (progn
                     (setq lock (vla-getcellstate obj j i)) 
                     (vla-setcellstate obj j i 0) 
                     (if (setq tmp (assoc (mip_MTEXT_Unformat
                                            (vla-gettext Obj j i)
                                          ) ;_ end of mip_MTEXT_Unformat
                                          mtlist
                                   ) ;_ end of assoc
                         ) ;_ end of setq
                       (progn
                         (vla-settext Obj j i "")
                         (vla-settext Obj j i (cadr tmp))
                       ) ;_ end of progn
                     ) ;_ end of if
                     (vla-setcellstate obj j i lock)
                   ) ;_ end of progn
                 ) ;_ end of if
               ) ;_ end of repeat
             ) ;_ end of repeat
           ) ;_ end of lambda
          (list
            (vla-get-columns Obj)
            (vla-get-rows Obj)
          ) ;_ end of list
        ) ;_ end of VL-CATCH-ALL-APPLY
        (and (vlax-property-available-p Obj 'RegenerateTableSuppressed)
             (vla-put-regeneratetablesuppressed Obj :vlax-false)
        ) ;_ end of and
        (vla-recomputetableblock Obj :vlax-true)
      ) ;_ end of foreach
    ) ;_ end of progn
  ) ;_ end of if
  (vla-endundomark Doc)
  (command "_.Regenall")
  (princ)
) ;_ end of defun
(defun mip_MTEXT_Unformat (Mtext / text Str)
;;;http://www.caduser.ru/forum/index.php?PAGE_NAME=read&FID=44&TID=20992
  (setq Text "")
;;;  (if (wcmatch (strcase Mtext) "\\PI-#*,\\PT*") ;;_ñïèñîê
;;;    (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
  (while (/= Mtext "")
    (cond
      ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
       (setq Mtext (substr Mtext 3)
             Text  (strcat Text Str)
       ) ;_ end of setq
      )
      ((wcmatch (substr Mtext 1 1) "[{}]")
       (setq Mtext (substr Mtext 2))
      )
      ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
       (setq Mtext (substr Mtext 3))
      )
      ((wcmatch (strcase (substr Mtext 1 8)) "\\FSYMBOL")
;;;Add VVA remove Symbol
       (setq Mtext (substr Mtext
                           (+ 2
                              (cond ((vl-string-search "}" Mtext))
                                    ((vl-string-search ";" Mtext))
                              ) ;_ end of cond
                           ) ;_ end of +
                   ) ;_ end of substr
       ) ;_ end of setq
      )
      ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
       (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext))))
      )
      ((wcmatch (strcase Mtext) "\\PI-#*,\\PT*")
;;;VVA 2011-01-20
       (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext))))
      )
      ((wcmatch (strcase (substr mtext 1 4)) "\\PQ[CRJD],\\PTZ")
;;;Add by KPblC
       (setq mtext (substr mtext (+ 2 (vl-string-search ";" mtext))))
      )
      ((wcmatch (strcase (substr mtext 1 3)) "\\PX")
;;;àáçàö è ìåæäóñòðî÷íûé èíòåðâàë \\PX[QITSBA]
       (setq mtext (substr mtext (+ 2 (vl-string-search ";" mtext))))
      )
      ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
       (if (or
             (zerop (strlen Text))
             (= " " (substr Text (strlen Text)))
             (= " " (substr Mtext 3 1))
           ) ;_ end of or
         (setq Mtext (substr Mtext 3))
         (setq Mtext (substr Mtext 3)
               Text  (strcat Text " ")
         ) ;_ end of setq
       ) ;_ end of if
      )
      ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
       (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
             Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
             Mtext (substr Mtext (+ 4 (strlen Str)))
       ) ;_ end of setq
      )

      (t
       (setq Text  (strcat Text (substr Mtext 1 1))
             Mtext (substr Mtext 2)
       ) ;_ end of setq
      )
    ) ;_ end of cond
  ) ;_ end of while
  Text
) ;_ end of defun
(defun bg:FieldCode (ent / foo elst xdict dict field str)
  ;; credits gile gc:FieldCode
  (defun ObjIdxStr (fld / pos)
    (setq pos (vl-string-search "ObjIdx " (cdr (assoc 2 fldId)) 0))
    (substr fld
            (1+ pos)
            (- (vl-string-search ">%" fld pos) pos)
    ) ;_ end of substr
  ) ;_ end of defun
  (defun foo (field str / pos fldID objID)
    (setq pos 0)
    (if (setq pos (vl-string-search "\\_FldIdx " str pos))
      (while (setq pos (vl-string-search "\\_FldIdx " str pos))
        (setq fldId (entget (cdr (assoc 360 field)))
              field (vl-remove (assoc 360 field) field)
        ) ;_ end of setq
        (setq
          str (strcat
                (substr str 1 pos)
                (if (setq objID (cdr (assoc 331 fldId)))
                  (vl-string-subst
                    (strcat "ObjId " (bg:GetObjectIDString objID))
                    (ObjIdxStr (cdr (assoc 2 fldId)))
                    (cdr (assoc 2 fldId))
                  ) ;_ end of vl-string-subst
                  (foo fldId (cdr (assoc 2 fldId)))
                ) ;_ end of if
                (substr str (1+ (vl-string-search ">%" str pos)))
              ) ;_ end of strcat
        ) ;_ end of setq
      ) ;_ end of while
      str
    ) ;_ end of if
  ) ;_ end of defun
  (setq ent (bg:conv-ent-to-ename ent))
  (setq elst (entget ent))
  (if (vlax-property-available-p
        (vlax-ename->vla-object ent)
        'Textstring
      ) ;_ end of vlax-property-available-p
    (cond ((= (cdr (assoc 0 elst)) "MULTILEADER")
           (setq str (cdr (assoc 304 elst)))
          )
          ((and
                (member (cdr (assoc 0 elst)) '("ATTRIB"))
                (member '(101 . "Embedded Object") elst)
           ) ;_ end of and
           (setq str
                  (apply
                    'strcat
                    (append
                      (bg:massoc 3 elst)
                      (bg:massoc 1 (member '(101 . "Embedded Object") elst))
                    ) ;_ end of append
                  ) ;_ end of apply
           ) ;_ end of setq
          )

          ((member (cdr (assoc 0 elst)) '("TEXT" "MTEXT" "ATTRIB"))
           (setq str (apply 'strcat
                            (append (bg:massoc 3 elst) (bg:massoc 1 elst))
                     ) ;_ end of apply
           ) ;_ end of setq
          )
          (t
           (setq str (vla-get-textstring (vlax-ename->vla-object ent)))
          )
    ) ;_ end of cond
  ) ;_ end of if
  (if (and
        (member (cdr (assoc 0 elst))
                '("ATTRIB" "MTEXT" "TEXT" "MULTILEADER")
        ) ;_ end of member
        (setq xdict (cdr (assoc 360 elst)))
        (setq dict (dictsearch xdict "ACAD_FIELD"))
        (setq field (dictsearch (cdr (assoc -1 dict)) "TEXT"))
      ) ;_ end of and
    (setq str (foo field (cdr (assoc 2 field))))
  ) ;_ end of if
  str
) ;_ end of defun

(defun bg:conv-ent-to-ename (ent / ret)
  (cond
    ((= (type ent) 'vla-object) (vlax-vla-object->ename ent))
    ((= (type ent) 'ename) ent)
    ((= (type ent) 'str) (handent ent))
    ((and (= (type ent) 'list)
          (= (type (setq ret (car ent))) 'ename)
     ) ;_ end of and
     ret
    )
    ((= (type ent) 'list) (cdr (assoc -1 ent)))
    (t nil)
  ) ;_ end of cond
) ;_ end of defun
(defun bg:massoc (key alist)
  (mapcar 'cdr
          (vl-remove-if-not
            (function (lambda (x) (= key (car x))))
            alist
          ) ;_ end of vl-remove-if-not
  ) ;_ end of mapcar
) ;_ end of defun
(defun bg:GetObjectIDString ( obj / *util* )
  (if (eq (type obj) 'ENAME)
    (setq obj (vlax-ename->vla-object obj))
    )
  (setq *util* (vla-get-Utility (vla-get-ActiveDocument (vlax-get-acad-object))))
  (if  (vlax-method-applicable-p *util* 'GetObjectIdString)
    (vla-GetObjectIdString *util* obj :vlax-false)
    (itoa (vla-get-ObjectId obj))
  )
 )
----- добавлено через 29 сек. -----
Обновил код. Добавил пропущенную Ф-цию
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.02.2018 в 11:02.
VVA вне форума  
 
Непрочитано 04.02.2018, 10:53
#51
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


МишаИнженер, Решение выложил а этой теме Не обновляются поля (вычисления) в таблицах AutoCAD 2006,2008,2010
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.02.2018, 12:31
#52
Кулик Алексей aka kpblc
Moderator

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


Темы объединены
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.02.2018, 15:52
#53
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Сделал программу для обновления формул в таблицах! Проверял, всё работает! Теперь проверьте сами: скачайте файл zip и запустите Excel (библиотеки в Excel настроены на AutoCAD2013, для настройки на другие версии AutoCAD запускайте команду Tools->References в VBA Excel). Вопрос модератору: почему нельзя загружать файлы xlsm? Это выглядит не современно! Вы отстаете от мировых тенденций!
Вложения
Тип файла: zip Обновление формул.zip (166.7 Кб, 111 просмотров)
МишаИнженер вне форума  
 
Непрочитано 04.02.2018, 20:01
#54
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,298
Отправить сообщение для doctorraz с помощью Skype™


Offtop:
Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
почему нельзя загружать файлы xlsm? Это выглядит не современно!
может потому что загрузка любых исполняемых файлов на адекватные ресурсы запрещена?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 04.02.2018, 23:18
#55
Сергей812


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


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
библиотеки в Excel настроены на AutoCAD2013, для настройки на другие версии AutoCAD запускайте команду Tools->References в VBA Excel
после отладки перейдите на позднее связывание, отключив референс на акад и заменяя типы данных акада на object. Этим снимете явную зависимость от версии.

Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Вопрос модератору: почему нельзя загружать файлы xlsm?
Задавался уже этот вопрос - ответ был типа: нет существенного спроса)

Цитата:
Сообщение от doctorraz Посмотреть сообщение
может потому что загрузка любых исполняемых файлов на адекватные ресурсы запрещена?
и давно файлы Excel c макросами *.xlsm стали исполняемыми?
Сергей812 вне форума  
 
Непрочитано 04.02.2018, 23:39
1 | 1 #56
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,298
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
и давно файлы Excel c макросами *.xlsm стали исполняемыми?
так же, как и vbs и bat
уязвимость
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 05.02.2018, 00:16
#57
Сергей812


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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
так же, как и vbs и bat
уязвимость
только vbs и bat запускается на уровне операционной системы кликом пользователя, а xlsm - надо загрузить в excel сначала, и еще преднамеренно поставить выполнение макросов без подтверждения (что уже требует определенного уровня от пользователя). И что мешает сохранить в старый формат xls, который разрешен к загрузке тут на форуме?
Сергей812 вне форума  
 
Непрочитано 05.02.2018, 06:24
#58
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,298
Отправить сообщение для doctorraz с помощью Skype™


тем не менее на многих форумах и других ресурсах так. не мы решаем.
ну и правила хорошего тона подразумевают все же файлы упаковывать
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 05.02.2018, 12:58
#59
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от VVA Посмотреть сообщение
Взял из этой темы LISP. Подготовка подосновы пару функций. Написал команду, которая в ячейках с формулами:
- запоминает значение формулы ячейки
- заполняет значение пустым текстом
- заполняет значение запомненной формулой
Вроде после этого формулы "оживают"
Да, код работает (небыстро, правда), спасибо..

Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Сделал программу для обновления формул в таблицах! Проверял, всё работает! Теперь проверьте сами: скачайте файл zip и запустите Excel (библиотеки в Excel настроены на AutoCAD2013, для настройки на другие версии AutoCAD запускайте команду Tools->References в VBA Excel)
Автокад 2016. Работает, но не без косяков. Фокус на автокад не передается, при переключении на окно акада вручную - не всегда доходит до выбора объекта (иногда программа пролетает мимо и сразу вешает окошко "обработано 0 объектов.." и т.д.
Ну и время действия - пока не понял, отчего - но очень сильно различается. Одна табличка обрабатывается то 5 секунд, то :

Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 1071
Размер:	5.9 Кб
ID:	198752  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 05.02.2018, 13:48
1 | #60
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,298
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Сделал программу для обновления формул в таблицах!
если ты не против...
перед началом работы с таблицами включи подавление регенерации
objТабл.RegenerateTableSuppressed = True
а по окончании выключи
objТабл.RegenerateTableSuppressed =False
должно побыстрее работать..
------
недостаточно активировать окно АК objAcadDoc.Activate
надо ему еще фокус передать
AppActivate objПриложениеAutoCAD.Caption
--------------
ну и последнее, коль собираешь таблицы селсетом, примени фильтр выбора именно таблиц ("Acad_Table"), что бы потом не проверять является ли объект набора таблицей.
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 06.02.2018, 16:52
1 | #61
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


doctorraz,
Исправил программу: отключил регенерацию таблиц и потом снова включил, сделал передачу фокуса программам, фильтр выбора настроить не удалось
Добавил таймер подсчёта времени в функцию
Поменял название файла. Проверьте работу программы. Всё ли нормально?
Вложения
Тип файла: zip Обновление таблиц.zip (90.2 Кб, 165 просмотров)
МишаИнженер вне форума  
 
Непрочитано 06.02.2018, 21:20
#62
Сергей812


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


Зачем в файле экселя листы с какими то расчетами?
Сергей812 вне форума  
 
Непрочитано 27.03.2018, 12:55
1 | #63
Klo

Инженер-конструктор
 
Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 269


МишаИнженер, спасибо за скрипт, надеюсь пригодится!
Протестировать сложно в связи с тем, что этот долбаный глюк с не обновляющимися формулами появляется в самый неподходящий момент...
У меня acad2018x64, поэтому пришлось немного исправить объявление переменных и функций на ptrsafe и LongPtr. Может я там чего и нахимичил, но, вроде, работает.
Выкладываю для тех, кто в vba ещё бо'льший ламер, чем я.
Вложения
Тип файла: rar Обновление таблиц2018x64.rar (94.2 Кб, 196 просмотров)
Klo вне форума  
 
Непрочитано 31.08.2018, 14:16
#64
DMS-chiii


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


А есть такое обновление таблиц на чистом автокаде 2018 и выше? А увидел чуть выше

Последний раз редактировалось DMS-chiii, 31.08.2018 в 14:26.
DMS-chiii вне форума  
 
Непрочитано 17.09.2018, 15:04
#65
DMS-chiii


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


Так так так скрипт по ведомому ему желанию меняет буквы ячеек в формулах (было например A10 после обработки A19) проверить такое становиться еще сложнее чем знать, что формулы просто не пересчитаны. И два он меняет цифровые значения ( было видимая часть число 90, после входа в ячейку с этим числом 90.99999 ). Закономерность проявления багов не проследилась Версия лиспа из 50 поста.

Последний раз редактировалось DMS-chiii, 17.09.2018 в 15:12.
DMS-chiii вне форума  
 
Непрочитано 26.03.2019, 11:27
#66
Bumbastic85

конструктор
 
Регистрация: 03.03.2011
СПб
Сообщений: 26


Цитата:
Сообщение от VVA Посмотреть сообщение
Заметил одну особенность: Если скопировать значение ячейки с формулой в буфер, вбить туда просто текст, вновь зайти в редактор и вставить значение ячейки из буфера, то она начинает работать.
Т.е нужно заменить значение ячейки текстом, а затем опять формулой

Взял из этой темы LISP. Подготовка подосновы пару функций. Написал команду, которая в ячейках с формулами:
- запоминает значение формулы ячейки
- заполняет значение пустым текстом
- заполняет значение запомненной формулой
Вроде после этого формулы "оживают" (проверено на файлах в #15, #6, #4)
[/color][/size]
спасибо за труды
но лисп работает на выбранном объекте (объектах)... можно ли сделать чтобы лисп по запуску обновлял все таблицы на разных листах (layout) ??? оченема надо

Последний раз редактировалось Bumbastic85, 26.03.2019 в 11:35.
Bumbastic85 вне форума  
 
Непрочитано 12.04.2019, 07:37
#67
zRaFiNaDz


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


Всем доброго времени суток!
До сих пор борюсь с этой проблемой. Сделал КЖ, используя lisp "TCF", связи с экселем (в исходнике ("шаблоне") все работало). Когда делал - тоже все обновлялось в таблицах, на следующий день доделал проект и заметил, что не обновляется. Лечил lispом RETABLE - но сбивалось форматирование ячеек - что не есть хорошо - врукопашную много действий. Не смирился.
Открыл чистый файл - переносил из старого чертежа примитивы, таблицы, размеры, выноски делал заново, после каждого листа - бэкапил чертеж. Сегодня пришел - надо было изменить в проекте некоторые моменты. Хрясь и опять ни фига не работает. При этом на двух листах общих данных есть "МТЕКСТ", это "МТЕКСТ" был отформатирован под абзац 10 и междустрочный 1,4. Захожу на листы общих данных и вижу, что форматирование падлы МТЕКСТА слетело: междустрочный везде разный, поля со значениями на разной высоте с текстом. Как я понял после бага с "МТЕКСТОМ" - возникает баг с обновлением таблиц. В бэкапе все с форматированием хорошо и все работает.
Файл приложить не могу - конфиденциальность, но может кому-то хорошо понимающему в Ватокаде - эта подсказка поможет выявить проблему с "необновлением" полей в таблицах.
zRaFiNaDz вне форума  
 
Непрочитано 02.05.2019, 10:21
#68
DMS-chiii


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


Люди добрые помогите для 2020 обновить обновлятор.
DMS-chiii вне форума  
 
Непрочитано 05.05.2019, 16:21
#69
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от DMS-chiii Посмотреть сообщение
Люди добрые помогите для 2020 обновить обновлятор.
Чего??
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.05.2019, 15:51
3 | #70
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


DMS-chiii,
Можно попробовать мой вариант пересчета таблиц. Команда RECALCTABLE.
(подразумевается, что командой _NETLOAD для загрузки dll-файла пользоваться умеешь и как разблокировать приложение, загруженное из интернета знаешь).
Должно работать начиная с AutoCAD 2013 (проверял только в 2017...2020)
Вложения
Тип файла: zip ReCalcTable.dll.zip (4.0 Кб, 492 просмотров)
Александр Ривилис вне форума  
 
Непрочитано 07.05.2019, 19:50
#71
DMS-chiii


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


2 kpblc про этот https://forum.dwg.ru/showpost.php?p=...0&postcount=63 файл.
2 Александр Ривилис большое спасибо в 2020 полёт нормальный
DMS-chiii вне форума  
 
Непрочитано 07.05.2019, 20:37
#72
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от DMS-chiii Посмотреть сообщение
2 Александр Ривилис большое спасибо в 2020 полёт нормальный
Отлично. Похоже вся проблема связана с тем, что в какой-то момент времени у полей устанавливается признак "Disable" вместо "Automatic". Моя программа рекурсивно находит все поля в таблице, меняет им признак на "Automatic" и обновляет их.
На AutoLisp/VBA это сделать нельзя. Только AutoCAD .NET API или ObjectARX. Я выбрал AutoCAD .NET API, чтобы не плодить кучу различных arx-файлов (версии и разрядность AutoCAD)
Александр Ривилис вне форума  
 
Непрочитано 07.05.2019, 21:21
#73
Кулик Алексей aka kpblc
Moderator

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


Александр Ривилис, а исходник можно глянуть? Ну так, для понимания, насколько я в C# никакой
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.05.2019, 22:48
3 | #74
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Кулик Алексей aka kpblc,
Можно.
Код:
[Выделить все]
 // (C) Copyright 2019 by  
//
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;

#pragma warning disable 0618

// This line is not mandatory, but improves loading performances
[assembly: CommandClass(typeof(Rivilis.ReCalcTable))]

namespace Rivilis
{
  public class ReCalcTable
  {
    [CommandMethod("ReCalcTable")]
    public void ReCalcTableHandler() // This method can have any name
    {
      int lcid = SystemObjects.DynamicLinker.ProductLcid; // Язык AutoCAD
      Document doc = Application.DocumentManager.MdiActiveDocument;
      if (doc == null)
        return;
      Editor ed = doc.Editor;
      Database db = doc.Database;
      PromptSelectionOptions prOpt = new PromptSelectionOptions();
      prOpt.MessageForAdding = (lcid == 0x419) ?
        "Выберите таблицы для пересчета полей" :
        "Select tables in order to recalculate fields";
      prOpt.MessageForRemoval = (lcid == 0x419) ?
        "Удалите таблицы из набора" :
        "Remove tables from selection";
      SelectionFilter sf = new SelectionFilter(
        new TypedValue[] {
          new TypedValue (0, "ACAD_TABLE")
        }
      );
      PromptSelectionResult rs = ed.GetSelection(prOpt, sf);
      if (rs.Status != PromptStatus.OK || rs.Value.GetObjectIds().Length == 0)
        return;
      ObjectId[] ids = rs.Value.GetObjectIds();
      foreach (ObjectId id in ids)
      {
        using (Table tab = id.Open(OpenMode.ForWrite) as Table)
        {
          for (int i = 0; i < tab.Rows.Count; i++)
          {
            for (int j = 0; j < tab.Columns.Count; j++)
            {
              ObjectId idField = tab.Cells[i, j].FieldId;
              if (!idField.IsNull && idField.IsValid)
              {
                using (Field fld = idField.Open(OpenMode.ForWrite) as Field)
                {
                  FieldEvalRecursive(fld);
                }
              }
            }
          }
          tab.RecomputeTableBlock(true);
          tab.RecordGraphicsModified(true);
        }
      }
      ed.Regen();
    }
    /// <summary>
    /// Функция рекурсивно обновляет связанные поля 
    /// </summary>
    /// <param name="fld"></param>
    public void FieldEvalRecursive(Field fld)
    {
      ObjectId[] idsChilds = fld.GetChildrenIds();
      foreach (ObjectId idChild in idsChilds)
      {
        using (Field fldChild = idChild.Open(OpenMode.ForWrite) as Field)
        {
          if (fldChild.EvaluationOption == FieldEvaluationOptions.Disable) {
            fldChild.EvaluationOption = FieldEvaluationOptions.Automatic;
          }
          FieldEvalRecursive(fldChild);
          fldChild.Evaluate();
        }
      }
      if (fld.EvaluationOption == FieldEvaluationOptions.Disable) {
        fld.EvaluationOption = FieldEvaluationOptions.Automatic;
      }
      fld.Evaluate();
    }
  }
}
Александр Ривилис вне форума  
 
Непрочитано 20.08.2021, 14:05
#75
Евгений_22


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


Александр Ривилис, Здравствуйте! Попробовал установить в 2019 автокад команду RECALCTABLE - не работает. После загрузки dll автокад выдает ошибку:

Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Program Files\Autodesk\1\ReCalcTable.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'file:///C:\Program Files\Autodesk\1\ReCalcTable.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
at loadmgd()

Подскажите как это исправить?
Евгений_22 вне форума  
 
Непрочитано 20.08.2021, 18:12
1 | #76
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Евгений_22 Посмотреть сообщение
Александр Ривилис, Здравствуйте! Попробовал установить в 2019 автокад команду RECALCTABLE - не работает. После загрузки dll автокад выдает ошибку:

Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Program Files\Autodesk\1\ReCalcTable.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'file:///C:\Program Files\Autodesk\1\ReCalcTable.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
at loadmgd()

Подскажите как это исправить?
Похоже вы не разблокировали файл, после скачивания его с сайта. Его нужно разблокировать:

Александр Ривилис вне форума  
 
Непрочитано 21.09.2021, 17:16 Таблица в autocad не пересчитывает формулы
#77
Darkside121


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


Добрый вечер! возникла проблема, копирую две связанные таблицы из одного файла автокад 2019 в другой, связь в ячейках таблицы изменяется и мы видим ####, к тому же в редактировании формулы в поле ячейки вместо ссылки на таблицу с номером появляется =Table(0). Если править в каждой ячейке формулу руками, при сохранении всё слетает обратно к =Table(0). Может быть кто то сталкивался с таким и знает решение данной проблемы?
Darkside121 вне форума  
 
Непрочитано 30.11.2021, 13:56
#78
Barmaley Bubusikin


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


Цитата:
Сообщение от Darkside121 Посмотреть сообщение
Добрый вечер! возникла проблема, копирую две связанные таблицы из одного файла автокад 2019 в другой, связь в ячейках таблицы изменяется и мы видим ####
А как копируешь? ctrl+c, ctrl+v? Попробуй копировать с базовой точкой
Barmaley Bubusikin вне форума  
 
Непрочитано 21.04.2022, 16:05
#79
DMSskop


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


Если что в 2023 это повторяется из ранее созданных файлов и таблиц.
DMSskop вне форума  
 
Непрочитано 21.04.2022, 16:15
#80
Кулик Алексей aka kpblc
Moderator

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


https://autolisp.ru/2020/09/09/formulas-in-tables/ ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Таблица в autocad не пересчитывает формулы



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формулы в таблицах AutoCAD Krieger AutoCAD 94 04.02.2024 17:17
Видеоуроки AutoCAD kosmax AutoCAD 173 17.02.2017 15:08
Таблица Exel -> Autocad Skydog AutoCAD 14 11.03.2009 14:58
Autocad 2005 формулы в таблицах? X-DeViL AutoCAD 1 24.05.2004 15:20