Допустим, есть много деталей и подсборок в отдельных файлах с размерами, заданными глобальными переменными. В каждом из этих файлов созданы чертежные виды. Мы хотим сделать сборку из этих деталей. Можно все внешние детали локализовать. Размер деталей станет соответствовать глобальным переменным сборки, но при локализации чертежные виды деталей не переносятся в сборку и нельзя будет получить уже подготовленные чертежные виды с новыми размерами. Остается делать сборку с внешними деталями, но глобальные переменные внешних деталей привести в соответствие с переменными сборки. Сделать это можно следующим способом.
При открытом файле сборки открыть для редактирования файл внешней детали (можно через меню File или выбрать деталь в браузере и через контекстное меню Open to Edit. Если теперь находясь в окне внешней детали просмотреть глобальные переменные, то увидим, что это переменные файла сборки. Остается только выполнить команду AMUPDATE и закрыть файл детали с сохранением.Такие действия нужно выполнить для каждого внешнего файла (открываем для редактирования -> AMUPDATE -> закрываем с сохранением). После того, как изменены значения глобальных переменных во всех внешних файлах, в окне файла сборки вызываем команду AMREFRESH.
Если внешних файлов очень много, то эту процедуру удобнее выполнить с помощью макроса на VBA.
Private Sub GlobalVarsRefresh()
Dim mcad As McadApplication
Set mcad = ThisDrawing.Application.GetInterfaceObject("Mcad.Application")
Dim mcds As McadComponentDefinitions
Dim mcd As McadComponentDefinition
Set mcds = mcad.ActiveDocument.AssemblyMgr.Definitions
For Each mcd In mcds
If mcd.IsExternal Then
ThisDrawing.Application.Documents.Open (mcd.ExternalPath)
mcad.ActiveDocument.Update
ThisDrawing.Save
ThisDrawing.Close
End If
Next mcd
End Sub
После завершения работы макроса вызываем команду AMREFRESH.