Перейти к публикации

Замена ссылок документа


Pit-Bul

Рекомендованные сообщения

Здрасти всем.

С помошью какой солидовкой функции можно заменить ссылки документа на другие файлы, например как это делает SolidWorksExploier

Ссылка на сообщение
Поделиться на других сайтах


AssemblyDoc::ReplaceComponents

See Also:

Example

Description:

This method replaces one or more selected components with another model.

Syntax (OLE Automation)

retval = AssemblyDoc.ReplaceComponents ( fileName, configName, replaceAllInstance, reAttachMates )

Syntax (COM)

status = AssemblyDoc->ReplaceComponents ( fileName, configName, replaceAllInstance, reAttachMates, &retval )

...

Надо бы почитать справку по AIPI SW:

XXX:\Program Files\SolidWorks\api\sldworksapi.chm

PS. в версии SW до 2007

была другая функция:

swApp.ReplaceReferencedDocument(NewNameASM, OldName, NewName)

Ссылка на сообщение
Поделиться на других сайтах

Этот пример показывает как заменять компонент другим компонентом. А мне надо програмно переименовать документ и поправить ссылки на него.

а справку по AIPI SW я перерыл вдоль и поперек

Ссылка на сообщение
Поделиться на других сайтах

и всетаки я нашол как это делать правильно

Dim swApp   As SldWorks.SldWorks

	Dim bRet	  As Boolean



	Set swApp = CreateObject("SldWorks.Application")

	bRet = swApp.ReplaceReferencedDocument(sReferencingDoc, sOldDoc, sNewDoc)

	Debug.Assert bRet

правда с одним ньюансом, надо создать переименованную модель, потом поменять ссылки, потом уже мочить старую модель

:clap_1:

Изменено пользователем Pit-Bul
Ссылка на сообщение
Поделиться на других сайтах

Прям как по заказу

http://fsapr2000.ru/index.php?show...11506&st=40

:clap_1:

Изменено пользователем Странник
Ссылка на сообщение
Поделиться на других сайтах

и всетаки я нашол как это делать правильно...

<{POST_SNAPBACK}>

Посмотри еще мою прогу на :

<noindex>http://www.pogruzka.com/julio/swprog/multi...wtools2/faq.php</noindex>

Если что пиши в ПМ.

Ссылка на сообщение
Поделиться на других сайтах

Посмотри еще мою прогу на :

<noindex>http://www.pogruzka.com/julio/swprog/multi...wtools2/faq.php</noindex>

Если что пиши в ПМ.

на счет твоей проги, если скопировать сборку со входящими сборками, деталями и чертежами, то ссылки автоматически обновляются, т.к. при первом запуске перемещенная модель ищет зависимые документы в новой директории, а если не находит то уж тогда уже спрашивает где искать, у меня есть своя такая же прога

Ссылка на сообщение
Поделиться на других сайтах

Так сказать к слову…

При переименовании проектов, как правило, происходит ещё и некоторое упорядочение индексов. Как-то: заполнение пропущенных ранее или «почивших» строк в спецификациях, присвоение отдельным «кускам» изделия особых обозначений, а то и просто копирование чужого агрегата. То есть, если наше изделие АБВГ.00.00.000 переименовывается в ДЕЖЗ.00.00.000 то это вовсе не значит, что можно будет просто сделать SolidWorks Explorer копию с заменой АБВГ на ДЕЖЗ. То есть, потребен и инструмент копирования с замещением, и массового переименования с наследованием свойств. Ещё лучше иметь возможность последовательно применить и тот и другой инструменты по некоторой, заданной пользователем программе. Очень жаль, что ребята из DS и SW упорно делают вид, что этого не понимают.

И ещё, никакие СТП и санкции не заставят инженера-конструктора перебивать «ручками» многочисленные свойства файлов, из серии «Обозначение» и «Первичное применение», тем более нельзя это поручать людям не представляющим себе структуру изделия.

Ссылка на сообщение
Поделиться на других сайтах

я примерно это и пытаюсь сделать :rolleyes:

в 2007 солиде уж сильно извратились над SolidWorks Explorer'ом. Вот пытаюсь вернуть старый и обогащенными функциями, одна из которых и есть автоматическое переименование узлов и изделий

З.Ы.: Ручное переименование заработало :sport_box::boxed:

Ссылка на сообщение
Поделиться на других сайтах

и всетаки я нашол как это делать правильно

Dim swApp   As SldWorks.SldWorks

	Dim bRet	  As Boolean



	Set swApp = CreateObject("SldWorks.Application")

	bRet = swApp.ReplaceReferencedDocument(sReferencingDoc, sOldDoc, sNewDoc)

	Debug.Assert bRet

<{POST_SNAPBACK}>

Интересно долго искали ведь во втором (#2) посте о ней и написано, в последней строчке она и есть.

правда с одним ньюансом, надо создать переименованную модель, потом поменять ссылки, потом уже мочить старую модель

<{POST_SNAPBACK}>

А не проще тогда использовать ModelDocExtension.SaveAs , а потом удалить старую модель, в таком варианте оно даже уменьшит размер файла (только перед удалением неплохо проверить действительно ли файл такойже). На сколько я понимаю в таком случае ссылка должна поменяться на файл с новым имененем в открытом документе, если в "Options" не задано значение swSaveAsOptions_Copy, если этот параметр задан в таком случае будет просто скопирован документ и ему присвоено новое имя.

Я правда не знаю, но может это использовать (или это только для PDM работает?)

pVal = PDMWDocument.Name (VB Get property)

PDMWDocument.Name = pVal (VB Set property)
Ссылка на сообщение
Поделиться на других сайтах

в 2007 солиде уж сильно извратились над SolidWorks Explorer'ом.

<{POST_SNAPBACK}>

Что есть, то есть... ребята из SW зря время не теряли.

И прибавили и подгадили, всё по полной программе.

Интересно, чем они в самом деле руководствуются в своей политике развития системы. Хотя это ужо лирика.

Успехов.

Ссылка на сообщение
Поделиться на других сайтах

А не проще тогда использовать ModelDocExtension.SaveAs , а потом удалить старую модель, в таком варианте оно даже уменьшит размер файла (только перед удалением неплохо проверить действительно ли файл такойже). На сколько я понимаю в таком случае ссылка должна поменяться на файл с новым имененем в открытом документе, если в "Options" не задано значение swSaveAsOptions_Copy, если этот параметр задан в таком случае будет просто скопирован документ и ему присвоено новое имя.

Kelny, в этом случае придется открывать модель сборки либо чертежа и после уже переименовывать входящие в них элементы, а это существенно замедлит работу программы. А swApp.ReplaceReferencedDocument позволяет все делать без открытия файла у которого меняешь ссылки(правда солид должен быть запущен), а насчет ньюанса это в хелпе было написанно, на самом деле можно менять ссылки без существования обоих файлов на которые делаешь ссылку. Если нет старого файла все прокатывает, а соответсвенно на отсутствие файла на который ты указал солид естественно обидится и попросит уточнить его местоположение, соответственно требуется только новый переименованный файл(проверенно by Pit-Bul) :velho:

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • IgorT
      Да че там хорошего? По мне уже то, что нет возможности выбрать плоскость симметрии напряг.
    • AlexKaz
      А если сделать такой финт: есть два тела, на телах две площадки с одинаковой сеткой. Что будет, если создать много RBE2 от площадки к площадке, но каждый RBE2 связывает только 1 узел на первой площадке с 1 узлом на второй (а не несколько узлов с одним узлом)? По логике вещей, получается аналог нескольких простых MPC узел в узел, т.е. для каждой пары узлов с разных площадок имеем Ux1-Ux2=0, Uy1-Uy2=0, Uz1-Uz2=0. Т.е. получим деформируемые границы площадок (вместо абсл. жёстких), но "сшитые" попарно по площадкам узлы, и попарные узлы на площадках должны перемещаться на одинаковое расстояние. Или нет?
    • Anat2015
      Не путайте модель станка и модель ЧПУ. Синумерик - это ЧПУ, у вас точно ЧПУ Sinumerik SN-770, или это все таки название станка, не встречал, чтобы Сименс станки делал. Определитесь с точным названием УЧПУ.   Теоретически, да, но можно и с внешнего инструмента (ноутбука) а процесс восстановления привязан к модели ЧПУ. Только arc. (архив) бывает разный, могут быть отдельно архивы NCU, PLC, HMI, а может быть объединенный. Где батарейка, какие настройки вы имеете ввиду? Может и архивы не надо восстановливать? Подробнее опишите свои проблемы.
    • ID_Hacker
      Бывает на пульте кнопка, бывает М командами откидывается. Если заходите в меню измерения инструмента в режиме Jog, возможно надо выбрать параметры измерения и нажать "Цикл старт" Вариантов реализации много, и без осмотра подсказать практически нереально. Вы вообще уверены, что у вас моторизированная рука, а не откидываемая руками? Правильно вам пишут - необходимо смотреть в руководстве пользователя станка. Если нет руководства, просить поставщика, производителя. Ну а если уже совсем край, искать специалиста, готового провести исследование и возможно пусконаладку.
    • Мрачный
      Компас напоминает в своих способностях SW 2001-2006 г. Очень во многих местах. А вот с зеркальными деталями-сборками там вроде бы все весьма неплохо, гораздо лучше чем в SW. Вот такое неоднозначие...
    • maxx2000
      там посыл скорее про оформление чертежей согласно ГОСТ Айтишники и манагеры. Что с них взять. 1 семестр начерталки и 1 семестр инженерной графики, если не всё вместе, на отстань в каком нить педагогическом или аграрном вузе
    • brigval
      Заложено, но на усмотрение пользователя. К сожалению.
    • Ветерок
      Хочешь сказать, что разработчики Компаса не знают начерталку? Это же должно быть заложено в программу.
    • gudstartup
      бывает что и не в нуле если в 1240 что то записано 
    • Viktor2004
      Думаю можно брать оправку SK40 для OMP60
×
×
  • Создать...