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

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


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 пользователей

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



  • Сообщения

    • SAVASTEEV
      Всем привет, у фанука есть цикл G72 очень удобный цикл когда нужно отрезным резцом сделать какие-либо проточки контура, а как можно задать такую же обработку на сиеменсе? Стойка siemens 808d ? То есть создаю нужный контур, но какой вариант обработки нужно указать? Либо как правильно нужно задать контур, попробовал разные варианты у меня резец выходит либо в заготовку (по симуляции), либо идет как проходной резец (типа как по тому же циклу G71 фанучному)   Буду благодарен за помощь, так-как вручную прописывать и рассчитывать все контуры такое себе.... В 840 и в 828 стойки вроде можно выбрать вариант проточки продольная либо поперечная, но вот как сделать это в 808.... 
    • maxx2000
      установить сверхкомпактные противовесы из обеднённого урана  а если серьёзно, то рассмотреть верньерный механизм
    • gudstartup
      а вы на манометр при резке посмотреть не пробовали?
    • Aurifer
      Добрый день, подскажите что я делаю не так.  Имеется такая сборка: Расстояние между валами не фиксировал, чтобы потом сопряжения сделать по факту. Сборку сделал. Теперь задача сохранить деталь (подсборку) с зафиксированными валами. Но вот не задача.Редактирую подсборку прямо из сборки, делаю валы зафиксированными. Но при открытии файла вне сборки, валы фиксированны, но не в тех местах как в сборке, а в тех где они были до вставки в сборку.  Ладно, опять открываю эту подсборку, делаю в ней сопряжение "граничащее расстояние" . Расстояние оставляю, то которое программа автоматически подставила. Сохраняю. Основная сборка пытается перестроиться и выпадают ошибки, что нельзя решить данные сопряжения!  Пробовал измерить расстояние на ответной части и вбить вручную, ошибки перестроения. 
    • Guhl
      Ха, точно. Я почему-то был уверен, что это только для аналоговых шпинделей. Спасибо! Это согласование датчика
    • Tad
      Делал не раз и не два. Более десячти лет тому назад рекомендовал эту схему с соответствующей картинкой на одном техническом форуме для проверки насоса. Там она была уместна. А теперь хотел бы услышать от вас, в чем я неправ - если выдаете себя за специалиста - аргументы в студию, дабы не прослыть простым трепачем.  
    • Иван1987
    • Maik812
      автоматиче5ская рольставня сама все сделает ей хватает мощности
    • Александр1979
      Есть параметр 3706 TCW CWM для всех шпинделей сразу
    • mmaag
      Посмотрите сначала гидросхему - где измеряли механики и есть ли где-то ещё контрольные точки. Может быть все правы.
×
×
  • Создать...