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

Макрос для экспорта данных о деталях


johnny.mk

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

Здравствуйте. Подскажите пожалуйста, есть ли возможность написания макроса, который бы экспортировал данные о деталях сборки в excel-файл? К примеру: моменты инерции, массы, координаты центров масс.

Если такое всё же существует, был бы рад глянуть на пример и источники, с которых можно черпать информацию данного рода. Благодарю)

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


13 часа назад, johnny.mk сказал:

есть ли возможность написания макроса, который бы экспортировал данные о деталях сборки в excel-файл? К примеру: моменты инерции, массы, координаты центров масс.

Можете написать макрос.

Если этими данными заполнены свойства деталей, то можно просто создать таблицу спецификации с добавлением столбцов с необходимыми вам свойствами.

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

Макрос сохраняет свойства файла (не все, а которые я захотел) в экселе...

Sub prop2xls()
 Dim swModel As ModelDoc2
 Dim mde As SldWorks.ModelDocExtension
 Dim swConfigMgr As SldWorks.ConfigurationManager
 Dim swConfig As SldWorks.Configuration
 Dim swCustPropMgr As SldWorks.CustomPropertyManager
 Dim cpm As CustomPropertyManager
 Dim strName() As String
 Dim strValue() As String
 Dim strResValue() As String
 Dim i As Integer
 Dim strTemp1 As String, strTemp2 As String
 Dim vNames As Variant
 Dim xls As Object
 Dim wbs As Excel.Workbooks
 Dim wbk As Excel.Workbook
 Dim wsh As Excel.Worksheet
 Dim rng As Range
 
 Set swApp = Application.SldWorks
 Set swModel = swApp.ActiveDoc

 ' Начальные проверки
 If swModel Is Nothing Then
     MsgBox "Ничего не открыто", , "Откройте сборку или деталь"
     Exit Sub
 End If
 If swModel.GetType <> swDocASSEMBLY And swModel.GetType <> swDocPART Then
     MsgBox "Текущий документ д.б. сборкой или деталью!", , "Откройте сборку или деталь"
     Exit Sub
 End If

 Set mde = swModel.Extension
 Set cpm = mde.CustomPropertyManager("")

 ReDim strName(cpm.Count + 2) As String
 ReDim strValue(cpm.Count + 2) As String
 ReDim strResValue(cpm.Count + 2) As String

 ' обозначение и наименование из текущей конфигурации
 Set swConfigMgr = swModel.ConfigurationManager
 Set swConfig = swConfigMgr.ActiveConfiguration
 Set swCustPropMgr = swConfig.CustomPropertyManager
 strName(0) = "": strName(1) = ""
 vNames = swCustPropMgr.GetNames
 For i = 0 To swCustPropMgr.Count - 1
   swCustPropMgr.Get2 vNames(i), strTemp1, strTemp2
   If UCase(vNames(i)) = "ОБОЗНАЧЕНИЕ" Then
     strName(0) = vNames(i)
     strValue(0) = strTemp1
     strResValue(0) = strTemp2
   End If
   If UCase(vNames(i)) = "НАИМЕНОВАНИЕ" Then
     strName(1) = vNames(i)
     strValue(1) = strTemp1
     strResValue(1) = strTemp2
   End If
 Next i

 ' запоминание имён и значений свойств из средней вкладки в массивы и вывод массивов в Excel
 vNames = cpm.GetNames
 If IsEmpty(vNames) = False Then
    For i = 0 To UBound(vNames)
    cpm.Get3 vNames(i), True, strValue(i + 2), strResValue(i + 2)
    strName(i + 2) = vNames(i)
    Next i
    On Error Resume Next
    i = 0
    Set xls = GetObject(, "Excel.Application")
    If Err Then
      Err.Clear
      Set xls = CreateObject("Excel.Application")
      If Err Then
        Err.Clear
        On Error GoTo 0
        MsgBox "Не могу запустить Excel"
        Exit Sub
      End If
    'Else
      'i = 1
    End If
    On Error GoTo 0
    xls.Visible = True
    'If i = 1 Then
      'Set wbk = xls.ActiveWorkbook
    'Else
      Set wbs = xls.Workbooks
      Set wbk = wbs.Add
    'End If
    With wbk.Worksheets(1)
       For i = 0 To UBound(vNames) + 2
           .Cells(i + 1, 1).Value = strName(i) 'add 1 because row 0 doesn't exist
           .Cells(i + 1, 2).Value = strValue(i)
           .Cells(i + 1, 3).Value = strResValue(i)
       Next i
    End With
    Set rng = wbk.Worksheets(1).UsedRange
    rng.Columns.AutoFit
    Set xls = Nothing
    Set wbs = Nothing
    Set wbk = Nothing
 End If
End Sub

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

Перед запуском макроса нужно ещё библиотеку подключить в VBA Tools->Reference-

Microsoft Excel XX.0 Type Library (ХХ-версия Эксель)

 

Ссылка на сообщение
Поделиться на других сайтах
В 02.04.2019 в 21:57, johnny.mk сказал:

есть ли возможность написания макроса, который бы экспортировал данные о деталях сборки в excel-файл? К примеру: моменты инерции, массы, координаты центров масс.

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

Если нужно работать с обьемами файлов Solidworks, то Вам нужно сделать так чтоб записывались данные  моменты инерции и др. Прописываете в файле как пользовательские поля.

А вообще еще бывает потребность сортировать по ним (на фотках по материалу) и с именем файла.

Есть вариант оригинальный Total commander Solidworks.wdx . Может Вам просто и достаточно смотреть сразу их или сортировать без файла, ну если фаил то в Excel вставляете из буфера. Вывод данных плагином Solidworks.wdx и потом командой cm_CopyFileDetailsToClip копируете содержимое выведенных данных плагинов. Это универсальный вариант, для любых файлов.

Koмпас и др . тоже самое , главное плагин WDX, а еще если нужно изысканы вещи по данным ну например на каждый фаил данные в отдельный готовый и автоматически, то

http://wincmd.ru/plugring/WdxInfopacker.html

 

Плагин под Solidworks 2014 и ниже.

Вот бы кто сделал бы выше :)

 

колонки.gif

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Buka_juve
      Здравствуйте!!!   Может кто-то сможет поделиться постпроцессором для стойки Fanuc 31i TD или Fanuc 0i-TD (XZC). Вообще интересует обработка фрезерованием шнеков с поворотом детали по оси C.   Станки Hyundai Wia L280LM или L150SY.   Спасибо
    • Sabadash
      Поправьте режим легкой сборки в настройках, включается с определенного количества деталей, просто увеличьте количество деталей или отключите этот режим. Быстрое переключение в дереве построения (Set resolved to lightweight)
    • mixey53rus
      Вот пример программы, которой сам пользуюсь O0001 ( T17 | M10 METCHIK | H17 ) N100 G21 N102 G0 G17 G40 G49 G80 G90 N104 T17 M6 ( T17 | M10 METCHIK | H17 ) N106 G0 G90 G54 X-.75 Y0. S100 M3 N108 G43 H17 Z5. N110 G94 N112 M29 N114 G98 G84 Z-10. R.5 F150. N116 G80 N118 G94 N120 M9 N122 G53 Z0 N124 G53 Y0 N126 M30
    • Fedor
      Видел я как швейцарцы проектировали кран один, рама нижняя пополам переломилась на заводе где цветняк собирали и в вагоны грузили.  Квадратный лючок устроили в самом напряженном месте ну и переломился естественно из-за концентрации напряжений и усталости. Чайники проектировали, одно слово .  Объяснил заводчанам как чинить, все посчитал.  Кинули на три штуки бакинских , не заплатили. Думал сначала бандюкам долг продать, потом пожалел убогих. Все-таки сам когда-то работал на этом заводе, поэтому и доверял. А зря. Предают обычно свои :)  Швейцарцы с них за новую раму запросили двести штук бакинских.  Этот кран для фермеров делался, а они редко грузят вот гарантийный режим и выдерживался. Да и нагрузка не металл, а сельскохозяйственная.  А на заводе   в две смены цветняк грузили в вагоны на экспорт прибалты.  Грабили Россию   :) 
    • vad0000
      Не понял? Если гиб 1, то зачем повторения?   Повторения имеют смыслы, когда гибов больше 2-х   Например, есть программа 1 Гиб Х=20 2 Гиб Х=20 3 Гиб Х=50   Эту программу можно по другому записать 1 Гиб Х=20 (2 повтора) 2 Гиб Х=50     
    • Artas28
      А почему направление стружки вверх??? Я влево - вправо выбирал . Спасибо)      
    • MagicNight
      Да. Напротив, оператор станка не расслабляется!
    • andrei4ik
      Всем доброго дня. Заметил что солид каждый раз при запуске при рткрытии сборки сам ее открывает по умолчанию в сокращеном виде... в настройках галочка снята. И приходится каждый раз руками при открытии сборки уирать переключатель с сокращеного режима... Солид 2022
    • Ninja
      я сделал так как ты и сказал - ось вдоль UV. Ткнул направление стружки вверх и всё!
    • Artas28
      Молодец, а как сделал рассказать не хочешь?) или пример обратно скинуть?
×
×
  • Создать...