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

Сохранить все конфигурации детали как отдельные файлы.


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

Имеется деталь, имеющая 195 исполнений. Детали будут вырезать на ЧПУ (а перед этим нужно будет сделать оптимальную раскладку всех деталей на листах материала). Соответственно возник вопрос - как сохранить полу- или автоматом все конфигурации в отдельные файлы?

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


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

Или на ЧПУ нужно прямо из модели??

Так то ж можно сделать сборку и вставлять скока нужно этих конфигураций (естессно с выбором оной в Свойствах)...

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

Что тут скажешь. USE SOLIDWORKS API.

Под другому автомата не будет, да и полуавтомата тоже.

А ваще подобные вещи без всяких солидов в дешёвых программах для раскроя по - моему делаются.

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

SERoz

Раскладку, скорее всего, будут делать на производстве. Солид у них старый, поэтому думал закинуть им все детали в парасолиде, пусть крутят.

™¤-=MASTER=-¤™

Дешевые программы раскроя - это для прямолинейных элементов. У меня же криволинейные.

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

kkk

видел на <noindex>офф.форум SW</noindex>SW макрос решающий вашу задачу. К сожалению не сохранился у меня этот макрос.

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

Maze

Спасибо, поищу.

----

Поискал. Нашел. Работает.... :clap_1:

Макрос просто пересохраняет копии под именем конфигурации, одновременно делая ее активной.

Скачал тут: <noindex>http://www.3dcontentcentral.com/macros/mac...spx?id=293131#0</noindex>

Save_configs_as_parts.ZIP

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

Maze

Спасибо, поищу.

----

Поискал. Нашел. Работает.... :clap_1:

Макрос просто пересохраняет копии под именем конфигурации, одновременно делая ее активной.

Скачал тут: <noindex>http://www.3dcontentcentral.com/macros/mac...spx?id=293131#0</noindex>

А кто делает

оптимальную раскладку деталей на листе

?

"хых, не такая это простая работа - ходить в гости" (Винни-Пух, ©)

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

А кто делает

Судя по всему технолог, либо человек, заведующий ЧПУ. Я в данном месте человек новый, еще не в курсе всех тонкостей. :)

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

Вот решил заняться некромантией blush2.gif - заинтересовала возможность сохранения конфигов модели в отдельные файлы...

Скачал и запустил этот макрос (на СВ2012м), но чего и как он там делает так и не понял - пару сек. чего-то поморгало и всё dntknw.gif

 

Если кто пробовал или хотя бы понимает как работает этот макрос...

Может чего не понимаю, но куда и как он сохраняет конфиги???

Может он вообще не работает в СВ2012м???

А может есть другие наработки по сохранению конфигов???

Ссылка на сообщение
Поделиться на других сайтах
как работает этот макрос...
Option Explicit
    Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swModel = swApp.ActiveDoc
    Dim swConfig As SldWorks.configuration
    Set swConfig = swModel.GetActiveConfiguration
    Dim fname, ext, current As String
    fname = swModel.GetPathName 'Узнаём путь к активному файлу
    ext = Mid(fname, InStr(fname, ".")) 'записывает расширение файла в переменную
    fname = Mid(fname, 1, InStr(fname, ".") - 1) 'в переменную записываем путь к файлу с именем файла
    current = swModel.GetActiveConfiguration.name 'в переменную записывается текущая конфигурация
    Dim configs As Variant
    configs = swModel.GetConfigurationNames 'в переменную записывается весь список переменных
    Dim i As Long
    For i = 0 To UBound(configs) 'тут цикл по всем конфигурациям открытой модели детали
        If Not swModel.ShowConfiguration2(configs(i)) Then 'если программа не может открыть конфигурацию, то ошибка
            Debug.Print ("Could not switch to config " + configs(i))
        Else 'если конфигурация открывается нормально
            Dim name As String
            name = fname + "-" + configs(i) + ext 'записываем путь к новому файлу с учётом имени конфигурации
            Dim err As Long
            Dim warning As Long
            Call swModel.SaveAs4(name, swSaveAsCurrentVersion, _
                swSaveAsOptions_Copy + swSaveAsOptions_Silent + swSaveAsOptions_AvoidRebuildOnSave, _
                err, warning) 'в этих строках сохраняем как копию открытый документ под новым именем
            Dim newdoc As SldWorks.ModelDoc2
            Set newdoc = swApp.OpenDoc(name, swDocPART) ' тут открываем только что сохранённую новую модель детали (для сборок вероятно должно быть swDocASM)
            If Not (newdoc Is Nothing) Then ' Если документ новый документ открылся, то в цикле ниже удаляем все конфигурации кроме одной соответствующей текущей конфигурации в основном файле 
                Dim j As Long
                For j = 0 To UBound(configs) 'цикл по всем конфигурациям нового файла
                    If (i <> j) Then newdoc.DeleteConfiguration (configs(j)) 'когда i=j конфигурация не удаляется и остаётся лишь эта конфигурация, соответствующая текущей обрабатываемой конфигурации в основном документе
                Next j 'отрабатываем цикл удаления конфигураций до их завершения и идём дальше
                newdoc.Save 'сохраняем изменения
                swApp.CloseDoc (name) 'закрываем новый документ после удаления лишних конфигураций
            End If
        End If
    Next i 'отрабатываем цикл изменяя конфигурации основного документа до их завершения и идём дальше
    swModel.ShowConfiguration2 (current) 'Возвращаем основной документ к начальной конфигурации
End Sub 'в результате работы программы рядом с основным файлом получаем ещё файлы с таким же названием как у исходного и дополнительной приписки имени конфигурации




Похоже автор после удаления конфигураций забыл написать строку сохраняющую файл после этих изменений, а у вас возможно отключены сообщения о сохранение изменённых файлов с выбором Не сохранять (Иструменты-Параметры...-Настройки пользователя-Дополнительно), а у автора возможно такое сообщение было сохранено с выбором сохранять. Вероятно там должна быть ещё одна строка перед закрытием файла (вписал в код выше): newdoc.Save.

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

@@Kelny, Спасибо за пояснения :worthy:

Теперь понял, что этот макрос лишь добавляет к имени файла имя конфиги - не более (то же самое - "Сохранить как..." или "Копировать проект") not_i.gif

Что самое прикольное, запустил дома на 2014м - всё работает (файлы создает)...

Ссылка на сообщение
Поделиться на других сайтах
Теперь понял, что этот макрос лишь добавляет к имени файла имя конфиги - не более
Не только, но ещё и удаляет лишние конфигурации, если после этого сохранить изменённый файл, что не было в исходном файле (дописал об этом в предыдущем сообщении).
Ссылка на сообщение
Поделиться на других сайтах

У меня почему-то, в сохраненных файлах, все конфиги остались - только добавились имена конфигураций к имени исходного файла :g:

Может это так в 2014м работает (изменился АПИ и вот получилось так)??

Ссылка на сообщение
Поделиться на других сайтах
У меня почему-то, в сохраненных файлах, все конфиги остались - только добавились имена конфигураций к имени исходного файла

Повторюсь, выше изложил (дописал после кода с описанием) в чём может быть проблема. Возможно причиной тому, что все конфигурации остаются это то что после внесения изменений (удаления конфигураций) файл просто закрывается без сохранения, попробуйте дописать строку newdoc.Save перед закрытием файла swApp.CloseDoc (name) (выше в коде с описанием добавил эту строку)

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

Пардон-с - не дочитал...

Теперь всё сохраняет с удалением "лишних" конфигов :worthy: - правда опять же молча (без вопросов и сообщений)...

Получилось довольно удобно (ранее это же делал ручкамы)...

 

Завтра попробую на 2012й версии солида...

 

friends.gif

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

 

 

If MsgBox("Текст содержащий вопрос", vbYesNo, "Название сообщения") = vbYes Then
  Selection = "Нажата ДА"
Else
  Selection = "Нажата Нет"
End If
Ссылка на сообщение
Поделиться на других сайтах
Хотите покликать мышкой по кнопкам всплыающих сообщений добавьте что нибудь вроде:
Ну, ДА и НЕТ не особо нужно, просто думал, что будет вопрос типа "куда сохранить"...

Ну опять же не особо нужно...

 

После тренировки в 2012м, обозначилось, что этот макрос не шипко любит длинный путь к файлу...

Когда перенес файл поближе к корню диска - всё поехало...

 

Вообщем, Kelny - спасибо за помощь, всё получилось...

hi.gif

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

подниму тему, а можно сделать так, чтобы отдельные файлы сохранялись в форматах stl, step, pdf3D ?

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

@Сержи Да. Я делал себе сохранение в STEP. Немного изменив код, можно сохранять и в другие форматы

Option Explicit
    Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swModel = swApp.ActiveDoc
    Dim swConfig As SldWorks.Configuration
    Set swConfig = swModel.GetActiveConfiguration
    Dim fname, current As String
    Dim step As Long
    Dim configs As Variant
    
    step = swApp.SetUserPreferenceIntegerValue(swStepAP, 214) 'Сохранять в формат STEP AP214
    fname = swModel.GetPathName
    fname = Mid(fname, 1, InStr(fname, ".") - 1) 'Записать путь к файлу с именем файла без расширения
    current = swModel.GetActiveConfiguration.name 'Имя текущей конфигурация
    configs = swModel.GetConfigurationNames 'В переменную записывается весь список конфигураций
     
    Dim i As Long
    For i = 0 To UBound(configs) 'Цикл по всем конфигурациям модели
        swModel.ShowConfiguration2 (configs(i))
        Dim name As String
        name = fname + configs(i) + ".STEP"   'Путь к файлу для новой конфигурации
        Call swModel.SaveAs3(name, 0, 0) 'Сохраняем как STEP открытый документ
    Next i 'К следующей конфигурации
    
    MsgBox ("Saved " + CStr(i) + " file(s)!"), vbInformation, "Done"
    swModel.ShowConfiguration2 (current) 'Возвращаем документ к исходной конфигурации
End Sub

 

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

Call swModel.SaveAs3(name, 0, 0) 'Сохраняем как STEP открытый документ

это не нужно. Метод возвращает int, и судя по тому, что это устаревшая функция, лучше этот тип переменной использовать. В случае успеха = 0, провала = 1.

Ну или вообще всю левую часть опустить.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Jesse
      судя по всему, у вас разные детали построены в разных системах единиц
    • Guhl
      Вам бы схему смотреть на станок. Что понять, почему силовое не приходит
    • Jesse
      выкиньте призмы из расчёта.. считайте балочными конечными элементами, ограничив на концах лишь перемещения, как на картинке выше. Тогда всё будет збс..))
    • Jesse
      хз, запустил расчёт с вашими дефолтными настройками, всё посчитало. Но я бы упростил модель. Трубу можно точно исключить из расчётной модели (можно юзануть опцию "рассматривать как удалённую массу"). Всё остальное можно сделать оболочками, временно выкинув болты из модели. Также лучше использовать "Сетка на основе смешанной кривизны". Вот результаты. Напряжения небольшие, 09Г2С спокойно выдержит..))  
    • Killerchik
      Смысл в том, что подача должна указываться для фактического перемещения режущего клина. При одинаковой угловой скорости, в зависимости от радиуса траектории линейная скорость движения точки будет пропорциональна радиусу.
    • Killerchik
      Вероятно, я не совсем понятно написал. почта "имя@домен компании.com", хостер почты - Гугл.   Я, быть может, был бы готов из интереса рискнуть своей компанией - но точно не чужой.
    • Turgenev
      Не, греться будет, конкретно, потому что разъем будет прямо на стенке "стакана", а сам "стакан" будет нагреваться от нагревателя до 300 градусов. 3Д модель в процессе. погуглил, это разъемы типа таких: У них все круто, но нет фланца, чтобы хоть как-то закрепить разъем на стенке "стакана". По вашей наводке нагуглил еще разъемов, стоят дорого и очень большой габарит: Есть интересные варианты, но я не смог найти к ним ответную часть:   Это что-то типа такого: Мне не подходит по форм-фактору. Нагреватель должен быть в форме диска- плоский цилиндр диаметром 75мм и высотой около 10-20мм То есть запах идет от обгорания металла нагревателя? Вариант с заливкой нагреватель термостойким бетоном был, я даже его опробовал, но очень уж трудозатратно выходит. Любой металл будет иметь запах при нагреве, если его никуда не засовывать?
    • FROST_R6
      Здравствуй, ты можешь свой дискорд дать и показать?
    • Guhl
      У вас питание силовое на привод приходит? Е09 - отсутствие силового питания
    • Максим604
      В мануале написано что подача при Резьбофрезеровании считается по центру инструмента. Ок. Тогда почему когда пишешь в кам системе, то выдает подачу для движение  по траектории.      Перефразирую.  Нужно нарезать внутреннюю резьбу М20х2.  Фреза 3 зуба ∅12. Скорость резания 50. (Оборотов 1326)  Подача на зуб 0.05   Когда пишу в джи кодах, то выдаётся подача 198.9 мм/мин. С этой подачей станок и режет.    А если написать через шопмилл, то при тех же условиях( скорость резания и подача на зуб), он подачу пересчитывает для центра фрезы.  И выходит подача 80 мм/мин.   И выходит что при одних и тех же условиях меняется время обработки.    Когда пишешь через кам, то подача считается по траектории, а шопмилл считает для центра.    И я не понимаю как правильно считать. И почему именно так.  И в мануалах не нашёл ответа. 
×
×
  • Создать...