Деталь ломается при редактировании в другой версии

Russian forum
Forum rules
Правила форума и полезная информация

ПОЖАЛУЙСТА! Начиная обсуждение, обязательно....
Post Reply
Vcoder
Posts: 9
Joined: Thu Nov 28, 2013 10:34 am
Location: Russia

Деталь ломается при редактировании в другой версии

Post by Vcoder »

Есть некая деталь, созданная скорее всего в версии 0.14 (делал давно, уже не помню. Кстати представляется ли возможным по содержимому файла узнать, в какой версии он создан?).

На днях открыл в новой версии программы и обнаружил, что при попытке изменить некоторые параметры появляется ошибка:
fc-broken-model.png
fc-broken-model.png (14.55 KiB) Viewed 3240 times
Предположил, что это временная недоработка девелоперской версии 0.16, но в 0,15 эффект повторился. Сохранение файла из новой версии программы также не помогает.

Разбирательства показали, что ломается эскиз Sketch002, по которому делается выемка Pocket. В данном эскизе есть привязка к внешним граням (external geometry), порядок которых меняется при редактировании модели, что и приводит к поломке эскиза.

Как воспроизвести:
Открываем деталь.
Меняем какой-нибудь параметр, например высоту Pad001 с 0,8 до 0,3 мм.
Наблюдаем появившийся восклицательный знак около Fillet001.

Модель прикладываю (2p829.FCStd).

Воспроизводится в этих версиях:

OS: Windows 7
Platform: 32-bit
Version: 0.13.1828
Python version: 2.6.2
Qt version: 4.5.2
Coin version: 3.1.0
SoQt version: 1.4.1
OCC version: 6.3.0

OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.15.4671 (Git)
Branch: releases/FreeCAD-0-15
Hash: 244b3aef360841646cbfe80a1b225c8b39c8380c
Python version: 2.7.8
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.5871 (Git)
Build type: Release
Branch: master
Hash: 8645d56acf11bdabb2f24ed40f39c9b2bbff9a40
Python version: 2.7.8
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

В этой версии деталь НЕ ломается:

OS: Windows 7
Word size: 64-bit
Version: 0.14.3700 (Git)
Branch: releases/FreeCAD-0-14
Hash: 32f5aae0a64333ec8d5d160dbc46e690510c8fe1
Python version: 2.7.6
Qt version: 4.8.5
Coin version: 4.0.0a
SoQt version: 1.6.0a
OCC version: 6.6.0
Attachments
2p829.FCStd
(63.97 KiB) Downloaded 143 times
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Деталь ломается при редактировании в другой версии

Post by DeepSOIC »

Vcoder wrote:Кстати представляется ли возможным по содержимому файла узнать, в какой версии он создан?).
Если открыть файл проекта zip-архиватором, и из архива открыть Document.xml, то там можно обнаружить строчку в начале файла:

Code: Select all

<Document SchemaVersion="4" ProgramVersion="0.14R3700 (Git)" FileVersion="1">
Что до ошибки, то у меня метод воспроизведения не срабатывает - модель успешно пересчитыается.
OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.5702 (Git)
Build type: Release
Branch: FreeCAD-DeepSOIC4
Hash: df63cb8957ef4cc6f30f2aeb11c2cc5a16f799f1
Python version: 2.7.8
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.7.1
Подозреваю, что у вас включено в настройках "Automatically refine model after sketch-based operation" (в PartDesign). При удалении лишних ребер нумерация меняется, из-за чего ссылки ломаются. Но вообще нумерация может меняться по поводу и иногда даже без повода, и это серьёзная проблема FreeCADа в целом, и PartDesign в частности (PartDesign как нарочно придуман так, чтобы максимизировать эти проблемы).

Настоятельно рекомендую выключить и не трогать этот параметр. А если нужно подчистить модель, есть явная команда OpenSCAD RefineShapeFeature.
Vcoder
Posts: 9
Joined: Thu Nov 28, 2013 10:34 am
Location: Russia

Re: Деталь ломается при редактировании в другой версии

Post by Vcoder »

Странно. Сейчас проверил на домашнем компьютере. Этот параметр был выключен. Равно как и остальные на данной странице настроек. Попробовал включил "Automatically refine model after sketch-based operation" и затем выключил обратно - в обоих случаях эскиз ломается.

Подождём, может ещё кто-нибудь попробует...

Решение, исключающее подобное, видится мне довольно простым: каждому элементу давать некий уникальный идентификатор типа UUID и внутренние связи строить именно по этим идентификаторам, а читабельные имена (Constraint7, Edge11 и т. п.) использовать только для взаимодействия с пользователем.
Но это идея. А насколько сложно её реализовать, не представляю. Может весь модуль переписывать придётся...

Сведения о программе:
OS: Ubuntu 15.10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.5900 (Git)
Build type: None
Branch: master
Hash: be5e79601a58e3f70194797acb8dd2f807a5f3ae
Python version: 2.7.10
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Деталь ломается при редактировании в другой версии

Post by DeepSOIC »

Попробовал ещё в версии 0.15 c OCC6.8.0, не пересчитывается. видимо дело тут в версии OCC.

OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.15.4669 (Git)
Branch: releases/FreeCAD-0-15
Hash: d8bbbc1d1d111bd600025b2ba83f41b7353e3790
Python version: 2.7.8
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
sandman
Posts: 62
Joined: Sat Mar 22, 2014 11:09 am

Re: Деталь ломается при редактировании в другой версии

Post by sandman »

У меня нормально открывает:
OS: Ubuntu 14.04.3 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.5900 (Git)
Build type: None
Branch: master
Hash: be5e79601a58e3f70194797acb8dd2f807a5f3ae
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
Attachments
polomka.png
polomka.png (243.84 KiB) Viewed 3205 times
Post Reply