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

Как изменить предлогаемое имя файла в SolidWorks


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

21 минуту назад, streamdown сказал:

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

 В дереве переименовывать компоненты удобно, пока модель накидываешь, по 2-3 компонента, не больше. Если больше, то через "сохранить как" или "копировать проект", когда как удобнее, чтобы все ссылки обновились при переименовании файлов. И чертежи переименовываются, и входящие компоненты по "Найти-Заменить" пакетно. Рутинная задача потом вбивать значения в свойства даже для одного-двух файлов. А так для всего проекта из десятков компонентов свойства заполняются за пару секунд без открытия-заполнения-сохранения.

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


В 04.09.2017 в 15:02, streamdown сказал:

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

если бы сделал все таки  АПИ плагин к ТС то можно переименовывать и чертежи. Разместил бы на сайте ТС  и тд.. хорошая реклама и раскрутка.

50 % вопросов тут снялось связанных с файлами и данными в них. Причем почти все у тебя есть, по коду.

Ссылка на сообщение
Поделиться на других сайтах
25 минут назад, Maik812 сказал:

хорошая реклама и раскрутка

Ты серьёзно думаешь что мне нужна раскрутка?  :smile: Я похож на какого нибудь "бизнесмена" салахудинова с его впариванием уроков по компасу))))) ?

Будут деньги - будет товар. Ни больше, ни меньше.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Maik812 сказал:

если бы сделал все таки  АПИ плагин к ТС то можно переименовывать и чертежи. Разместил бы на сайте ТС  и тд

Для этого нужно задействовать раздел API закрытый индивиндуальным ключом Document Manager, который ещё надо получить, а так же использование на свой страх и риск:

http://help.solidworks.com/2010/english/api/swdocmgrapi/SolidWorks.Interop.swdocumentmgr_WelcomeSWDocMgrAPI.html?id=5ad23c9f5ef84546a57c64ec9984a06b#Pg0

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

@Сергей2014 Макрос для сохранения файла по типу "Обозначение_Наименование", значения берутся из ранее заполненных свойств файла.

http://my-files.ru/at7ybc

 

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

Спасибо за макрос. Полезная вещь. Только вопрос почему пр сохранение детали он не подтягивает обозначение и наименование.Называет файл _.sldprt

Ссылка на сообщение
Поделиться на других сайтах
35 минут назад, Anatlijj8 сказал:

не подтягивает обозначение и наименование.Называет файл _.sldprt

@Anatlijj8

Если в свойствах файла заполнено, то работает:

5c7f9daad4e35__.JPG.693b9478a28b11e96fb30e90f9c3573f.JPG

 

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

Интересует еще момент по макрасу который определяет обозначение и наименование с названия файла. Обозначение без проблем подтягивает а наименование но берет вместе с расширением файла. Например D001_База.SLDPRT то в обозначение оно берет D001 а в наименование База.SLDPRT. Как сделать чтобы оно не подтягивало расширение файла?

 

Ссылка на сообщение
Поделиться на других сайтах
25 минут назад, Anatlijj8 сказал:

в наименование База.SLDPRT. Как сделать чтобы оно не подтягивало расширение файла?

Можно например, использовать функцию REPLACE, например: Replace(ВашаСтрокаИлиПеременная, ".SLDPRT", "")

Не помню будет ли учитываться регистр по умолчанию (большие и маленькие буквы или будет сравнивать только буквы не взирая на регистр).

 

Или можно оставить левую часть за минус 7 символов (".SLDPRT") справа: Left(ВашаСтрокаИлиПеременная, Len(ВашаСтрокаИлиПеременная) - 7 )

 

 

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

 

Как вариант в Windows отключить расширения файлов и тогда возможно макрос так же не будет учитывать расширения, тогда их исключать не придётся. Но могут возникнуть проблемы в других местах при наличии точек в имени файлов, а так же от вирусов не убережётесь, которые своё расширение делают двойным, например, КАРТИНКА.JPG.EXE и без расширения видите файл вроде бы картинку, а при двойном клике на самом деле запускаете вредоносную программу.

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

Я скопировал Ваш код который был написан выше для макроса сохранения параметров обозначение и наименование с имени файла. И он работает но минус того что оно в наименование подтягивает еще расширение файла. Там используется InStrRev. Как в этом случае задать точку для определения длины отсечения?

Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, Anatlijj8 сказал:

А может можно как-то указать промежуток от "_" до "."? 

Можно и так, вычисляйте начальный символ и длину строки, а дальше используйте Mid(string, start[, length]).

 

 

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

Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, Anatlijj8 сказал:

Там используется InStrRev. Как в этом случае задать точку для определения длины отсечения?

Наверно можно как-то так:
swModel.CustomInfo("Наименование") = Mid(swModel.GetTitle, InStr(swModel.GetTitle, "-"), Len(swModel.GetTitle)-InStr(swModel.GetTitle, "-") - InStrRev(swModel.GetTitle, "."))

или:

swModel.CustomInfo("Наименование") = Mid(swModel.GetTitle, InStr(swModel.GetTitle, "-"), Len(swModel.GetTitle)-InStr(swModel.GetTitle, "-") - 7)

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

Не работает по этому примеру что Вы написали

Второй пример почти только он перед наименованием ставит "_". Может подскажите как его убрать чтобы его не включало в наименование?

Ссылка на сообщение
Поделиться на других сайтах
13 часа назад, Anatlijj8 сказал:

Только вопрос почему пр сохранение детали он не подтягивает обозначение и наименование.Называет файл _.sldprt

А в чем проблема или суть проблемы с именем в файле и тд? что то говорить то что бьетесь вы с как бы проблемой не понятно зачем.

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Anatlijj8 сказал:

Второй пример почти только он перед наименованием ставит "_". Может подскажите как его убрать чтобы его не включало в наименование?

Добавить единицу и все дела:

swModel.CustomInfo("Наименование") = Mid(swModel.GetTitle, InStr(swModel.GetTitle, "-")+1, Len(swModel.GetTitle)-InStr(swModel.GetTitle, "-") - 7)

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

@Anatlijj8

Скрытый текст

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swCustProp As CustomPropertyManager
Dim bool As Boolean
Sub main()
Dim swModel As ModelDoc2
Dim vComps As Variant
Dim swComp As SldWorks.Component2
Dim swAssy As SldWorks.AssemblyDoc
Dim i As Integer
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
    updateProperty swModel
If swModel.GetType = swDocASSEMBLY Then
    Set swAssy = swModel
    vComps = swAssy.GetComponents(False)
    For i = 0 To UBound(vComps)
        Set swComp = vComps(i)
        Set swModel = swComp.GetModelDoc2
        updateProperty swModel
    Next i
End If
    Dim vModels As Variant
    Dim count As Long
    Dim index As Long
   
    count = swApp.GetDocumentCount
    vModels = swApp.GetDocuments
   
    For index = LBound(vModels) To UBound(vModels)
        Set swModel = vModels(index)
    Next index
   
    ' Save All
Dim swErrors As Long
Dim swWarnings As Long
bool = swModel.Save3(swSaveAsOptions_Silent, swErrors, swWarnings)
MsgBox "Готово"
End Sub
Function updateProperty(swModel As SldWorks.ModelDoc2) As Boolean

Dim cpm As CustomPropertyManager
Dim i As Long
Dim path As String, filename As String

    Set swModelDocExt = swModel.Extension
    Set swCustProp = swModelDocExt.CustomPropertyManager("")
path = swModel.GetPathName
filename = Mid$(path, InStrRev(path, "\") + 1) ' With extension
filename = Left$(filename, InStrRev(filename, ".") - 1) ' Remove extension

  ' Убирает предупреждения, если файл не назван по типу Обозначение-Наименование
    On Error GoTo ErrorHandler
    For i = 1 To 999
        MsgBox " Iteration number " & i & ". DisplayAlerts is " & Application.DisplayAlerts
        Err.Raise 9999 'fake an error
ContinueLoop:
    Next i
   
    Application.DisplayAlerts = True
    
ErrorHandler:
    Err.Clear
    Resume Next
   
     'Разделитель в имени файла "-" можно заменить на свой, например —(длинное тире, клавиши Alt+0151)
    bool = swCustProp.Add3("Наименование", swCustomInfoText, Right$(filename, Len(filename) - InStrRev(filename, "-")), 2)
    bool = swCustProp.Add3("Обозначение", swCustomInfoText, Left$(filename, InStr(filename, "-") - 1), 2)

End Function

 

Мне удобнее разделителем ставить длинное тире, а то в обозначении или наименовании дефисы иногда встречаются.

Этим макросом удобно пользоваться, когда проект скопировал через "Pack and Go" и потом всем входящим компонентам поменять обозначение.

В макросонаписании не силён, набрал разных кусков с солидовского форума :)

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...