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

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

Почему не обновляются поля в таблице?

Ответ
Поиск в этой теме
Непрочитано 21.06.2011, 17:19 #1
Почему не обновляются поля в таблице?
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,692

Таблица - в файле, вопрос - в названии темы. Сей глюк коснулся только моего автокада или он живет в файле?

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

__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
Просмотров: 27336
 
Непрочитано 21.06.2011, 17:46
#2
CaMoCAD


 
Регистрация: 25.03.2008
Зелик
Сообщений: 1,602


Сами собой не обновляются. Нужно _Updatefield или _Regen.
PS файл не качал
__________________
* Буква "ё" не используется в тексте исключительно в связи с требованиями ЕСКД.
CaMoCAD вне форума  
 
Автор темы   Непрочитано 21.06.2011, 18:15
#3
AlexV

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


Цитата:
Сообщение от CaMoCAD Посмотреть сообщение
Сами собой не обновляются. Нужно _Updatefield или _Regen.
PS файл не качал
А ты скачай.. Ежели б все было так просто, то и вопросов бы не было.. ни _Updatefield, ни _Regen, ни save поля не обновляют. Обновляются только при заходе в редакторование поля. Может, конечно, это глюк только моей машины или автокада..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 21.06.2011, 22:40
#4
Кулик Алексей aka kpblc
Moderator

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


AlexV, попробуй файл очистить от следов СПДС GraphiCS и AutoCAD Architecture.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.06.2011, 08:07
#5
AlexV

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
AlexV, попробуй файл очистить от следов СПДС GraphiCS и AutoCAD Architecture.
Я, вобщем, так и думал, что виноваты надстройки какие-либо.. AA быть не должно, Project Studio да SPDS. PS объекты убиты, файл почищен explodeproxy ривилисовским. А вот СПДС постоянно используется, убивать его объекты не хотелось бы.. Неужто совместное использование и СПДС, и полей невозможно?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 22.06.2011, 08:22
#6
Лиспер


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


Я попробовал открыть файл (AutoCAD 2012 Rus), но в самой таблице увидел черт-те что.
DEMANDLOAD = 3
Код:
[Выделить все]
Loading AEC Base...
Loading AEC Base Extended...
Loading AEC Project Base...
Loading AEC Schedule Data...
Loading AEC Architectural Base...
Loading AEC Base UI...

Opening an AutoCAD 2010 format file.
Substituting [simplex.shx] for [CS_Gost2304.shx].
Substituting [simplex.shx] for [spds.shx].
Substituting [simplex.shx] for [cs_gost2304.shx].
[GOST 2.303-68.shx] could not be located.
Regenerating model.

AutoCAD menu utilities loaded.
Command:

Autodesk DWG.  This file is a TrustedDWG last saved by an Autodesk application 
or Autodesk licensed application.
В самой таблице наблюдаю то, что на 001.png. При этом входя в редактирование ячейки, я вижу 002.png. И, если честно, я не очень понимаю, что и как должно обновляться. И как вообще добились такого поведения ячейки
Миниатюры
Нажмите на изображение для увеличения
Название: 001.png
Просмотров: 465
Размер:	13.8 Кб
ID:	61887  Нажмите на изображение для увеличения
Название: 002.png
Просмотров: 379
Размер:	12.5 Кб
ID:	61888  
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 22.06.2011, 08:48
#7
AlexV

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


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Я попробовал открыть файл (AutoCAD 2012 Rus), но в самой таблице увидел черт-те что.
В самой таблице наблюдаю то, что на 001.png. При этом входя в редактирование ячейки, я вижу 002.png. И, если честно, я не очень понимаю, что и как должно обновляться. И как вообще добились такого поведения ячейки
Элементарно, Ватсон! Ячейка с типом данных "целое число", вставляем поле "Объект" -"Формула" - "=1000", в "Дополнительный формат" - "Суффикс" "%%c10 А400 ГОСТ 5781-82 l=". Ячейка выглядит как текст, но ссылки на нее можно испольлзовать как число, - в расчете массы единицы (в соответствующей ячейке поле "round(C6/1000*0.617*100)/100", которое должно пересчитываться при изменении длины). Ну и простейшее поле в столбце "Примечание" "=D6*E6", - даже оно не пересчитывается при изменении значений кол-ва и массы.

Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 2653
Размер:	58.3 Кб
ID:	61889  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 22.06.2011, 09:07
#8
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


....
__________________
С уважением sbi

Последний раз редактировалось sbi, 23.06.2011 в 08:03.
sbi вне форума  
 
Непрочитано 22.06.2011, 09:17
#9
Лиспер


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


AlexV, ну и ну! Вот уж в жизни бы не подумал о таком варианте Если будет возможность сегодня - поковыряюсь, может, чего и придумается. Кстати, у тебя какая версия AutoCAD?
sbi, "пап, а ты с кем сейчас говорил?" (с)
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 22.06.2011, 09:27
#10
AlexV

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


Цитата:
Сообщение от Лиспер Посмотреть сообщение
AlexV, ну и ну! Вот уж в жизни бы не подумал о таком варианте Если будет возможность сегодня - поковыряюсь, может, чего и придумается. Кстати, у тебя какая версия AutoCAD?
sbi, "пап, а ты с кем сейчас говорил?" (с)
У меня основной для работы 2010. Ну, 2011 тож есть. Вообще, поля в таблицах штука удобная; я на заре туманной юности делал связи полей с дин блоками, получалась даже нечто вроде динамической спецификации. Изменил блок, все автоматом пересчиталось. Но после начала использования СПДС, проджекта и прочих надстроек пришли ко мне глюки, и уходить не желають..
Еще была мысля на VBA сделать расчет спецификаций в таблицах автокада, но пока она варилась, VBA практически издох..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 22.06.2011, 09:39
1 | #11
Сергей Богатов


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


Код:
[Выделить все]
Public Sub TableUnSupress()
 
    Dim Hnya As String
    Dim MyObj As AcadObject
    Dim basePoint(0 To 2) As Double
 
    basePoint(0) = 0#: basePoint(1) = 0#: basePoint(2) = 0#
    ThisDrawing.Utility.GetEntity MyObj, basePoint, "Выбери таблицу"
 
    If TypeOf MyObj Is AcadTable Then
        MyObj.RegenerateTableSuppressed = False    'Разрешили обновление
 
        Hnya = MsgBox("Хорошо...", vbInformation, "Разблокировано")
    Else
        Hnya = MsgBox("Не хорошо...", vbCritical, "Аккуратнее")
    End If
 
End Sub
может в этом дело? см. красное...

P.S.
Хотя нет... Всё остальное-то меняется. Мистика...
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 22.06.2011 в 09:52.
Сергей Богатов вне форума  
 
Автор темы   Непрочитано 22.06.2011, 10:03
#12
AlexV

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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
P.S.
Хотя нет... Всё остальное-то меняется. Мистика...
Ага.. Даже при открытии вычищенного файла в автокаде без установленного PS и SPDS поля не обновляются. Где-то зарылась собака, непонятно.. Может, Яков поможет?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 22.06.2011, 10:22
#13
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,723


Цитата:
Сообщение от AlexV Посмотреть сообщение
Может, Яков поможет?
Ни чем помочь не могу
MCAD вне форума  
 
Непрочитано 22.06.2011, 11:19
#14
Сергей Богатов


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


Вобщем не знаю в чём там дело, но пересоздание формул и типа данных ячеек помогает.
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Автор темы   Непрочитано 22.06.2011, 11:24
#15
AlexV

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


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Вобщем не знаю в чём там дело, но пересоздание формул и типа данных ячеек помогает.
Помогает даже просто переход в "редактирование поля".. Но толку в этом факте мало.
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 22.06.2011, 14:33
#16
kp+

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


VLA-RecomputeTableBlock не пробовали? (Код написать и проверить сейчас не могу, Акада под рукой нет)
kp+ вне форума  
 
Автор темы   Непрочитано 22.06.2011, 23:59
#17
AlexV

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


Цитата:
Сообщение от kp+ Посмотреть сообщение
VLA-RecomputeTableBlock не пробовали? (Код написать и проверить сейчас не могу, Акада под рукой нет)
VLA-RecomputeTableBlock не пробовал, в lisp не силен.. (это ж оттудова?). Аналог коли есть в VBA, могу попробовать..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 23.06.2011, 08:17
#18
Лиспер


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


Ну, по идее, если есть objTable (указатель на объект таблицы), то у него должен быть метод .RecomputeTableBlock:
Код:
[Выделить все]
objTable.RecomputeTableBlock
Сейчас пишу тоже без када, так что сильно прошу не хаять.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 29.12.2011, 16:48
#19
APavl


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


Здравствуйте . Решения не найдено ? Достали уже эти таблицы . Значение приходится перебивать по несколько раз в каждой ячейке с полями . И не уверен в точности расчета спецификации . Длины в спецификации связаны с объектами на чертеже . Может кто-нибудь помочь ?
APavl вне форума  
 
Непрочитано 21.04.2012, 19:24
#20
Krolik999


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


Господа проектировщики, найдено какое-то комплексное решение?
Krolik999 вне форума  
 
Автор темы   Непрочитано 23.04.2012, 16:17
#21
AlexV

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


Цитата:
Сообщение от Krolik999 Посмотреть сообщение
Господа проектировщики, найдено какое-то комплексное решение?
Решение для борьбы с глюком необновляемости полей? Мною - не найдено. Для конкретного частного случая - спецификаций КЖ написал для себя vba код, считающий врс для арматуры и попутно пересчитывающий веса в таблице.. стабильно работает, увы, токмо под 32 бита..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 24.05.2012, 16:24
#22
ServantosS


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


Возможно причина необновления полей кроется в том, в какой версии автокада сохранент файл. У меня был подобный глюк в полях в таблице при работе в автокаде 2010. При этом в настройках у меня по умолчанию стоит сохранение в версию 2004 автокада. Поля перестали обновляться после сохранения файла и очередного запуска. Причем глюк ушел куда-то глубоко, т.к. даже ручное обновление полей не давало правильной работы таблицы. Ячейки с формулами завязанными на ячейках с полями продолжали брать откуда-то старое значение, т.е. не изменялись. Пришлось и формулы тоже перезабивать, благо, их не много. Когда все обновил в таблице, сохранил файл в версии автокада 2007. После открытия все обновляется через команду "обновить поля".
ServantosS вне форума  
 
Автор темы   Непрочитано 08.06.2012, 17:26
#23
AlexV

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


А вот интересно, товарищи суперлисперы или net-еры.. А нельзя ли замутить простенький код, пробегающий по всем ячейкам таблицы, и при наличии в ячейке поля, считывающий его и заново его же записывающий в сию ячейку? Может эта операция поможет обновиться полям в таблице? Жутко запарили эти глюки с табличными полями.. Как-то пробегаться по полусотне листов и заходить в каждое поле со ссылкой, скажем, на дату или шифр чертеже, - не есть это хорошо..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 30.07.2015, 15:19
#24
Vtrk

Инженер-конструктор
 
Регистрация: 11.05.2006
Сообщений: 163


Решение проблемы кем-нибудь найдено?
__________________
Тот, у кого есть мозги и руки, никогда не пропадет от голода и скуки.
Vtrk вне форума  
 
Непрочитано 23.12.2017, 16:08
#25
zRaFiNaDz


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


Присоединяюсь к вопросу, не нашел никто в чем проблема сидит?
У меня уже шестой проект перестает считать автоматически формулы. Уже снес полностью все и ватокад и СПДС, создал с нуля стили, создал новый чертеж, все замечательно считается, но в какой-то момент просто все крашится и перестает считать. Пробовал менять шрифты на Shx - без толку, пробовал вбивать через Ctrl+F - объект - формула и туда вводил, что нужно посчитать - и вроде бы получалось обновить результат, но после повторного открытия файла - опять не обновляет.

Заметил небольшую закономерность - это начиналось когда в Мтексте на другом листе - слетало форматирование (то междустрочный интервал улетал, то абзац становился 490 мм). Почему слетает форматирование текста - ума не приложу. И вообще кто-нибудь знает где в ватокаде отключить автоформатирование совсем, потому что иногда такую чушь делает, что не знаешь плакать или смеяться?
Вложения
Тип файла: dwg
DWG 2013
Ватокад достал.dwg (376.1 Кб, 26 просмотров)

Последний раз редактировалось zRaFiNaDz, 23.12.2017 в 16:29. Причина: Приложил файл с проблемой
zRaFiNaDz вне форума  
 
Непрочитано 23.12.2017, 20:29
#26
Сергей812


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


может, использовать связь с внешней таблицей в эксель?
Сергей812 вне форума  
 
Непрочитано 24.12.2017, 07:05
#27
zRaFiNaDz


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


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

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

Последний раз редактировалось zRaFiNaDz, 24.12.2017 в 11:34. Причина: UPDATE
zRaFiNaDz вне форума  
 
Непрочитано 25.12.2017, 10:27
#28
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


zRaFiNaDz
Таблица считает и обновляет даже несмотря на то, что "Наименование" умножаете на "кол-во" - "D4*C4+D5*C5+D6*C6"!!!
AlexV ваша тоже работает нормально, проверьте, есть ли обновления.
Проверял на AMEP2018 1.1 ENG

Последний раз редактировалось VitalyAF, 25.12.2017 в 10:48.
VitalyAF вне форума  
 
Автор темы   Непрочитано 25.12.2017, 11:07
#29
AlexV

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


Цитата:
Сообщение от VitalyAF Посмотреть сообщение
zRaFiNaDz
Таблица считает и обновляет даже несмотря на то, что "Наименование" умножаете на "кол-во" - "D4*C4+D5*C5+D6*C6"!!!
AlexV ваша тоже работает нормально, проверьте, есть ли обновления.
Проверял на AMEP2018 1.1 ENG
У меня пока А2016. Глюки с обновлением полей в акадотаблицах - сохранились. Высока вероятность, что сие связано с использованием подшивок & СПДС CS (версия 10). По-крайней мере, глюк в СПДС при использовании подшивок разработчики признали и говорят, что в последней (12) версии исправили, но у меня пока десятка..
Вообще, поля в таблицах автокада сейчас использую только в штампах - ссылки на свойства листов подшивки (то, с чего тему начинал, давно не использую - спецификации теперь средствами спдс автоматически считаются). Поскольку убитый в версиях до А2014 зомби - vba нынче вроде как из пепла восстал, написал для себя код, который предлагал в #23 - пробежать по листам, найти штампы, в нужные ячейки перезаписать нужные поля..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 25.12.2017, 16:44
#30
zRaFiNaDz


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


Цитата:
Сообщение от VitalyAF Посмотреть сообщение
zRaFiNaDz
Таблица считает и обновляет даже несмотря на то, что "Наименование" умножаете на "кол-во" - "D4*C4+D5*C5+D6*C6"!!!
AlexV ваша тоже работает нормально, проверьте, есть ли обновления.
Проверял на AMEP2018 1.1 ENG
Проблема до сих пор есть, просто так не писал бы на форум.
Сносил 2017 Автокад и СПДС (почистил реестр и удалил все папки, связанные с Автокадом) поставил 2018, СПДС к нему, посмотрел минут пятнадцать на него - плюнул и снес, СПДС с отдельной панелью свойств испохабили, теперь в обычных свойствах любой объект СПДС как полилиния и чтобы что-то изменить в в объекте, нужно свойства СПДС открывать.
Да и в Автокаде 2018 проблема осталась - ни фига не считалось как надо.

Да а про умножение наименования на количество - это я скопи-пастил косячно))))
Сейчас перешел на связь с экселем. Только Альт-табить много приходится.

Последний раз редактировалось zRaFiNaDz, 25.12.2017 в 16:57. Причина: Автодесковский СПДС.
zRaFiNaDz вне форума  
 
Непрочитано 25.12.2017, 16:56
#31
Кулик Алексей aka kpblc
Moderator

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


zRaFiNaDz, ты уточняй, про какой СПДС говоришь - про автодесковский или про сисофтовский?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.01.2018, 12:48
#32
Евгений_


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


Здравствуйте, попробуйте поменять разделитель дробной и целой части с запятой на точку в региональных стандартах виндовс. В автокаде в качестве разделителя всегда используется точка, а в ваших таблицах стоят запятые возможно причина глюка в этом.
Евгений_ вне форума  
 
Непрочитано 10.01.2018, 12:53
#33
zRaFiNaDz


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


Цитата:
Сообщение от Евгений_ Посмотреть сообщение
Здравствуйте, попробуйте поменять разделитель дробной и целой части с запятой на точку в региональных стандартах виндовс. В автокаде в качестве разделителя всегда используется точка, а в ваших таблицах стоят запятые возможно причина глюка в этом.
Пробовал. В-общем, как делал, вставлял столбец рядом, формат чисел не менял, формулы копировал в новый столбец - считалось на ура, что с точкой, что с запятой. После закрытия файла и повторного открытия - считать переставало, даже если разделитель был точкой и формат ячейки вообще не трогался.
zRaFiNaDz вне форума  
 
Непрочитано 10.01.2018, 13:32
#34
Евгений_


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


Странно, а у меня все работает. При повторном открытии чертежа формула с запятой не обновляется, а та что с точкой пересчитывается даже без регенерации.
AutoCAD 2017 сохранял в версии 2013

----- добавлено через ~7 мин. -----
Еще объясните, как вам удалось создать разделитель запятую если вы поменяли стандартный на точку?
Евгений_ вне форума  
 
Непрочитано 16.01.2018, 22:31
#35
DMS-chiii


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


Содержимое > Дополнительный формат > Дробная часть
DMS-chiii вне форума  
 
Непрочитано 04.02.2018, 08:10
#36
МишаИнженер


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


Файл скачал. Поля не обновляются. Какой способ решения этой проблемы? У меня подозрение что эти проблемы начинаются когда ACAD сильно подвисает из-за проблем с привязками при вставке блоков. После этого ACAD оптимизирует файл (отключает опцию обновления полей в каждой таблице) чтобы сократить объём вычислений. Блок вставляется а потом ACAD забывает включить опцию обновления полей в таблице и таблица не обновляется
МишаИнженер вне форума  
 
Непрочитано 17.04.2018, 13:07
#37
Sambioz


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


Решение:
Постараюсь описать как можно подробнее, извиняюсь, если слишком
Итак, имеем таблицу со столбцами A В и С, в которых А и В - исходные данные, С - формула А+В. В итоге, по стечению звезд неизвестным причинам вместо результата в столбце С имеем "решетки" ###
Исправляем:
1. Выделяем столбцы с исходными данными А и В, правая кнопка -> меню -> "Формат данных" (у меня там уже настроено "Десятичное число-десятичные-точность не важно") ничего не меняя просто нажимаем ОК. Тут есть нюанс. Если в таблице было хоть одно ненулевое значение, то все формулы автоматически обновятся и можно переходить к п.2. Если мы делаем шаблон с "нулями", то формулы визуально не обновятся, не обращаем на это внимание и также жмем ОК, после чего в любую ячейку из А или В подставляем любое число - все формулы обновятся. Опять забиваем "ноль" и выделяем столбцы А и В.
2. Для выделенных столбцов опять вызываем меню правой кнопкой. Выбираем Блокирование -> Формат заблокирован
3. Всё! Сохраняем и радуемся

Проверено для форматов *.dwt и *.dwg 2010/2018
Sambioz вне форума  
 
Непрочитано 14.12.2018, 20:11
#38
tsetse

Инженер-конструктор
 
Регистрация: 25.12.2015
Москва
Сообщений: 77


Заинтересовала проблема, сам с ней сталкивался. Решил с использованием lisp. По крайней мере на этой таблице работает. загружаем lisp, запускаем REPAIR_TAB, выбираем таблицу.
Код:
[Выделить все]
 (defun C:REPAIR_TAB ( / *error* objsel cur_tab Rows Cols row col cur_txt cur_h cur_style cur_alig elemi elnth elem regenold Fieldold field_string)
;
; Функция читает и записывает заново содержимое таблицы

; записываем и обнуляем значения regenmode и fieldeval
(setq regenold (getvar 'regenmode))
(setq Fieldold (getvar 'Fieldeval))
(setvar 'regenmode 0)
(setvar 'Fieldeval 0)

; в случае ошибки выводим сообщение об отмене
(defun *error*(msg)
	; Восстанавливаем regenmode и fieldeval
	(setvar 'regenmode regenold)
	(setvar 'Fieldeval Fieldold)
	(if (/= tblobj nil)
	(vla-put-RegenerateTableSuppressed tblobj :vlax-false)
	)
	(princ "Команда отменена")
) 

; выбираем таблицу
(progn
	(setq objsel (ssget "_+.:E:S" '((0 . "ACAD_TABLE")) ))
	(if (/= objsel nil)
		(setq cur_tab (ssname objsel 0))
		(princ "Выбрана не таблица!")
	) ;end if
) ; end progn

; преобразуем таблицу в vla
(setq tblobj (vlax-ename->vla-object cur_tab))

; читаем число строк и столбцов таблицы
(setq Rows nil)
(setq Cols nil)
(setq Rows (vlax-get-property (vlax-ename->vla-object cur_tab) 'Rows))
(setq Cols (vlax-get-property (vlax-ename->vla-object cur_tab) 'Columns))
(setq row nil)
(setq col nil)
(setq row 0)
(setq col 0)
(setq alltab nil)
; читаем содержимое таблицы и записываем в список alltab
(repeat Rows
	(progn
	(setq col 0)
	(repeat Cols
		(setq elemi nil)
		(setq cur_txt nil)
		(setq cur_txt (CELL_FIELD row col tblobj)) ; читаем текст
		(setq cur_h nil)
		(setq cur_h (vla-GetCellTextHeight tblobj row col)) ;читаем высоту текста
		(setq cur_style nil)
		(setq cur_style (vla-GetCellTextStyle tblobj row col)) ;читаем текстовый стиль
		(setq cur_alig nil)
		(setq cur_alig (vla-getCellAlignment tblobj row col)) 	;читаем выравнивание
		(setq elemi (list row col cur_txt cur_h cur_style cur_alig)) ; записываем информацию по ячейке в elemi
		(setq alltab (cons elemi alltab)) ; добавляем в список alltab информацию о ячейке elemi
		(setq col (1+ col))
	) ; end of repeat Cols
	(setq row (1+ row))
	)
) ; end of repeat rows

(setq alltab (reverse alltab))

; Заполняем содержимое таблицы из списка alltab
(setq row nil)
(setq col nil)
(setq row 0)
(setq col 0)
(vla-put-RegenerateTableSuppressed tblobj :vlax-true)
(repeat Rows
	(progn
	(setq col 0)
	(repeat Cols
		(setq elnth nil)
		(setq elnth (+ (* Cols row) col)) ;определяем необходимый номер элемента в списке alltab
		(setq elem nil)
		(setq elem (nth elnth alltab)) ; достаем необходимый элемент из списка alltab и записываем в elem 
		(setq cur_txt nil)
		(setq cur_txt (nth 2 elem)) ;достаем из elem текст
		(vla-SetText tblobj row col "")
		(vla-SetText tblobj row col cur_txt) ;записываем текст в ячейку
		(setq cur_h nil)
		(setq cur_h (nth 3 elem)) ;достаем из elem высоту текста
		(vla-SetCellTextHeight tblobj row col cur_h) ;записываем высоту текста в ячейку
		(setq cur_style nil)
		(setq cur_style (nth 4 elem)) ;достаем из elem текстовый стиль
		(vla-SetCellTextStyle tblobj row col cur_style)  ;записываем текстовый стиль в ячейку
		(setq cur_alig nil)
		(setq cur_alig (nth 5 elem)) ;достаем из elem выравнивание
		(vla-SetCellAlignment tblobj row col cur_alig) ;записываем выравнивание в ячейку
		(setq col (1+ col))
	) ; end of repeat Cols
	(setq row (1+ row))
	)
) ; end of repeat rows
(vla-put-RegenerateTableSuppressed tblobj :vlax-false)
; Восстанавливаем regenmode и fieldeval
(setvar 'regenmode regenold)
(setvar 'Fieldeval Fieldold)

) ; end of defun



; Функция получения значения ячейки или значения ее поля
; koMon  forum.dwg.ru
(defun CELL_FIELD (#row #col #tbl / fieldlen field_id)
; определяем id поля в выбранной ячейке #row #col таблицы #tbl
(setq field_id (vla-getfieldid #tbl #row #col))
; если field_id=0 (содержимое не поле, то читаем текст, иначе читаем поле
(if (= 0 field_id)
(setq field_string (vla-getText #tbl #row #col))
(progn
(setq field_string 
	(cdr 
		(assoc 2 
			(entget 
				(cdr 
					(assoc 360 
						(entget 
							(vlax-vla-object->ename
								(vla-objectidtoobject
									(vla-get-activedocument (vlax-get-acad-object))
								field_id)
							)
						)
					)
				)
			)
		)
	)
) ; end of seq
(setq field_string (strcat  "%<" field_string ">%"))
) ; end progn
) ; end if
) ; end defun
Вложения
Тип файла: lsp Repair_TABLE.lsp (4.2 Кб, 153 просмотров)
tsetse вне форума  
 
Непрочитано 16.12.2018, 02:34
#39
tsetse

Инженер-конструктор
 
Регистрация: 25.12.2015
Москва
Сообщений: 77


Цитата:
Сообщение от zRaFiNaDz Посмотреть сообщение
Присоединяюсь к вопросу, не нашел никто в чем проблема сидит?
У меня уже шестой проект перестает считать автоматически формулы. Уже снес полностью все и ватокад и СПДС, создал с нуля стили, создал новый чертеж, все замечательно считается, но в какой-то момент просто все крашится и перестает считать. Пробовал менять шрифты на Shx - без толку, пробовал вбивать через Ctrl+F - объект - формула и туда вводил, что нужно посчитать - и вроде бы получалось обновить результат, но после повторного открытия файла - опять не обновляет.

Заметил небольшую закономерность - это начиналось когда в Мтексте на другом листе - слетало форматирование (то междустрочный интервал улетал, то абзац становился 490 мм). Почему слетает форматирование текста - ума не приложу. И вообще кто-нибудь знает где в ватокаде отключить автоформатирование совсем, потому что иногда такую чушь делает, что не знаешь плакать или смеяться?
К таблице из 25 поста приложенный мной лисп не подошел, т.к. ячейка таблицы содержит "поле" в "поле". Нужно копать дальше поэтому. Лисп сработал, когда удалил в "неработающих" ячейках знак "=" перед полями
tsetse вне форума  
 
Непрочитано 20.03.2019, 22:32
#40
Жданов Вячеслав 89

Инженер
 
Регистрация: 05.08.2017
Санкт-Петербург
Сообщений: 5


Можно отключить автосохранение и тогда таблицы не будут ломатся, но появится другая проблема)
Жданов Вячеслав 89 вне форума  
 
Непрочитано 02.08.2019, 15:05
#41
KrugloKot


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


Смог решить проблему необновляемых полей в таблице только присвоив данным свойство "десятичное число". текстовую часть добивал префиксами и суффиксами к ячейке. Но у меня содержание чуть попроще чем у ТС.
KrugloKot вне форума  
 
Непрочитано 02.08.2019, 15:34
#42
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 911


https://forum.dwg.ru/showpost.php?p=...2&postcount=70
kacugu вне форума  
 
Непрочитано 03.08.2019, 06:07
#43
divanci


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


исходя из опыта использования таблиц в автокаде 2016 архитектурный, могу посоветовать не пользоваться таблицами вообще, если их больше 20. Выявленные косяки:
- не пересчитываются поля:
- пропадает содержимое ячеек с полями
- таблицы в несколько столбцов расслаиваются с созданием новой таблицы (копии 2 столбца)
divanci вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Почему не обновляются поля в таблице?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Не обновляются поля (вычисления) в таблицах AutoCAD 2006,2008,2010 pungarov AutoCAD 16 04.02.2018 09:35
Некорректно обновляются поля блока NEDIS AutoCAD 50 19.02.2013 15:47
Пропадают поля на видовом экране в листе klerik AutoCAD 6 06.05.2011 08:05
Как сделать сток канализационных вод из отстойника на поля фильтрации, при чем поля находятся на 70 метров выше отстойника? Мария_Мар Водоснабжение и водоотведение 4 04.04.2011 11:43