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

Как изменить предлогаемое имя файла в 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 пользователей

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




  • Сообщения

    • Viktor2004
      Уважаемые коллеги Чего-то я туплю страшно Пытаюсь в P-CODE писать программу редактирования барабана инструментов Макропеременная @MDIKEYI #8549 /* MDI Key image должна мне давать номер нажатой кнопки Кнопка F1 под экраном имеет код 249 Кнопка <INPUT> имеет код 152 При нажатии F1 у меня должна включаться D5001.0 а при нажатии <INPUT> выключаться Но в макропеременной #8549 код нажатой клавиши лишь кратковременно мигает. И надо много раз нажимать нужную клавишу что бы она сработала Макропеременная #8549 у меня выводится в диагностический D5000 Кто знает, может #8549 как-то настраивается, что бы программа успела на него отреагировать IF [#8549 EQ 249] THEN #548 = 1 ENDIF IF [#8549 EQ 152] THEN #548 = 0 ENDIF https://www.youtube.com/watch?v=jvsv0YoTy-8  
    • malvi.dp
      SW2020 работает. Пожелание - уменьшить размеры окна, а то перекрывает весь чертеж, исправить ошибку в слове детели и, если получится, сделать выбор толщины и типа линии.  
    • sippovich
      Добрый вечер Уважаемые Форумчане,нет ли ни у кого инструкции по восстановлению нулевых точек револьверной головы на станки серии TF и TD серии Fanuc? Заранее благодарен.
    • Heroend
    • ДОБРЯК
      А выкинуть строчку и столбец  это не закрепление? :=)
    • nicomed
      @Kelny  То что,Вы, описали это варианты, а как я понял, @Евдоким Жаркий требуется именно комплекты. Как я понимаю различие: Балка может быть и катанного профиля или гнутого, но она может быть только одна. - это варианты , и, они, не исключают комплекты сменных частей. А, к примеру у заказчика есть три домкрата, и, в процессе эксплуатации зацепа, в разных ситуациях, может использоваться разный тип домкрата. У каждого домкрата свое посадочное место, и для него уже заказчик, будет менять пятки зацепа. Т.е. у него их (пяток) столько, сколько типов домкратов. И это у же комплекты сменных частей. Резюмируя - варианты это еще на уровне изготовителя, а комплекты на уровне заказчика (эксплуатации).       
    • maxx2000
      пусть так это тебе и продолжает казаться, для меня например всё ясно как божий день. Есть вещи которые требуют понимания. Я не ставлю своей задачей выдать набор кнопок, а лишь указать возможный вектор решения задачи. Артас обрабатывает по нормали к элементу(поверхности), а надо обрабатывать вдоль оси Z РП элемента которая должна совпадать с осью Z станка. Он намного ближе к понимаю 5 осевой обработки чем может казаться со стороны.   а зачем его разворачивать? разворачивать надо с конкретной целью. Боком режет, и пусть себе режет.
    • Heroend
      Добрый день! Сел за изучение FS и решил смоделировать настоящую АВО типа БАВО-К. В процессе были некоторые проблемы, но все решалось постепенно. Однако, так и не смог исправить одну ошибку, которая портит весь расчет. Ахиллесовой пятой моего моделирования стала 3-х ходовая теплообменная секция АВО, при входных данных P=3,2 МПа, T газа = 160 С (взятых с работающего оборудования) расчет заканчивается досрочно, с ошибкой "Твердое тело расплавилось". Во время самого расчета система набирает безумное давление (смотрел по дополнительному окну), причем как только я не игрался с расходом, динамика ошибок остается та же.  Может кто-то подсказать из-за чего может быть такая проблема?  
    • Jesse
      скорей всего ДК - это какое-то "общее" требование для всех роторных машин, где есть вал..) вот и копипастят, сами не пойми чего. Ну я уже на 90% уверен, что ДК - это про гироскопику, когда достаточно большой диск кренится вдоль оси и создаёт "гироскопику" - момент, которые гнёт вал и искажает частоты. Наблюдается две ветви - т.н. "вилка". Если эти гироскопич-е эффекты пренебрежимо малы, то это уже не ДК, а просто зав-ть СЧ от оборотов..) Пока так.   да там и от скорости вращения ротора должна зависеть added mass; когда замедляется/ускоряется, везде разная масса получится.  Интересно, а можно из эксперимента определить added mass? ну типа тот же ротор постепенно разгоняешь, и смотришь как меняется основная акустическая мода по времени..
    • Orchestra2603
      @ДОБРЯК: Решил вашу задачку с одним элементом без факторизации...   Частоты:     Формы:  
×
×
  • Создать...