1 910 сообщений в этой теме
22 минуты назад, streamdown сказал:

Большое спасибо! Буду разбираться. )

Поделиться сообщением


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


23 часа назад, Gaidn сказал:

Можно ли как-то с помощью макроса это сделать

 

Возможно, подойдёт готовое решение

 

 

Поделиться сообщением


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

 

Возможно, подойдёт готовое решение

Ссылка что-то не работает. )

Поделиться сообщением


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

Ссылка что-то не работает. )

 

Похоже, глюк форума.. Со второго раза правильно ссылку открывает..

Поделиться сообщением


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

Добрый, день. Прошу помощи у тех кто освоил api Pack and go? За основу взял код из хэлпа. Проблема при повторном запуске макроса вставки в сборку. На ролике видно, если повторно использую исходный компонент, то подхватываются предыдущие копии. Кто подскажет куда копать?

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

 

Set swPackAndGo = swModelDocExt.GetPackAndGo
' Get number of documents in assembly
namesCount = swPackAndGo.GetDocumentNamesCount'на этом этапе подхватываются лишние экземпляры
Скрытый текст

'---------------------------------------------------------------------------
' Предварительные условия:
' 1. Выбрать заменяемый компонент в дереве построения головной сборки.
' 2. Запустить макрос.
'
' Результат работы программы:
' 1. Генерирует цифровой префикс к выбранному компоненту включая вложенные компоненты.
' 2. Создает экзэмпляр компонента и всех чертежей в папке головной сборки
' 3. Заменяет выбранный компонент созданным экземпляром.
'---------------------------------------------------------------------------


Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim openFile As String
Dim pgFileNames As Variant
Dim pgFileStatus As Variant
Dim pgGetFileNames As Variant
Dim pgDocumentStatus As Variant
Dim status As Boolean
Dim warnings As Long
Dim errors As Long
Dim i As Long
Dim namesCount As Long
Dim myPath As String
Dim statuses As Variant

Dim FilePath1 As String
Dim FilePath2 As String
Dim FileName1 As String
Dim FileName2 As String
Dim curObj As Object
Dim objComponent As SldWorks.Component2
Dim SelMgr As SldWorks.SelectionMgr
Dim swAssy As SldWorks.AssemblyDoc
Public Prefix As String


Private Function myGetDate() As String
    Dim MyStr As String
    Dim MyDate As Variant

    MyDate = Now()
    MyStr = Format(MyDate, "yyMMddHHmmss")

    myGetDate = MyStr
End Function
'функция исключения имени файла из полного пути
'Path - полный путь к файлу (включая имя файла)
Private Function myGetFolder(Path As String) As String

myGetFolder = Left$(Path, InStrRev(Path, "\"))

End Function

Sub main()

Set swApp = Application.SldWorks

' Open assembly

Set swModelDoc = swApp.ActiveDoc
Set swModelDocExt = swModelDoc.Extension

Set SelMgr = swModelDoc.SelectionManager
Set curObj = SelMgr.GetSelectedObjectsComponent4(1, 0)
'i = SelMgr.GetSelectedObjectCount2(-1)
Set objComponent = curObj
Set swAssy = swModelDoc

FilePath2 = curObj.GetPathName() 'путь к детали с выбраными телами
FileName2 = Dir(FilePath2, vbDirectory)
FilePath1 = swModelDoc.GetPathName()
FileName1 = Dir(FilePath1, vbDirectory)
FilePath1 = myGetFolder(FilePath1) 'убираем имя компонента из пути
FilePath2 = myGetFolder(FilePath2) 'убираем имя компонента из пути
Prefix = myGetDate
MainForm.TextBox1.Text = Prefix
MainForm.Show
' Open assembly
Set swModelDoc = swApp.OpenDoc6(FilePath2 + FileName2, swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
' Get Pack and Go object
Debug.Print "Pack and Go"
Set swPackAndGo = swModelDocExt.GetPackAndGo
' Get number of documents in assembly
namesCount = swPackAndGo.GetDocumentNamesCount
Debug.Print "  Number of model documents: " & namesCount

' Include any drawings, SOLIDWORKS Simulation results, and SOLIDWORKS Toolbox components
swPackAndGo.IncludeDrawings = True
Debug.Print "  Include drawings: " & swPackAndGo.IncludeDrawings
swPackAndGo.IncludeSimulationResults = False
Debug.Print "  Include SOLIDWORKS Simulation results: " & swPackAndGo.IncludeSimulationResults
swPackAndGo.IncludeToolboxComponents = False
Debug.Print "  Include SOLIDWORKS Toolbox components: " & swPackAndGo.IncludeToolboxComponents

' Get current paths and filenames of the assembly's documents
status = swPackAndGo.GetDocumentNames(pgFileNames)
Debug.Print ""
Debug.Print "  Current path and filenames: "
If (Not (IsEmpty(pgFileNames))) Then
    For i = 0 To UBound(pgFileNames)
        Debug.Print "    The path and filename is: " & pgFileNames(i)
    Next i
End If

' Get current save-to paths and filenames of the assembly's documents
status = swPackAndGo.GetDocumentSaveToNames(pgFileNames, pgFileStatus)
Debug.Print ""
Debug.Print "  Current default save-to filenames: "
If (Not (IsEmpty(pgFileNames))) Then
    For i = 0 To UBound(pgFileNames)
        Debug.Print "   The path and filename is: " & pgFileNames(i)
    Next i
End If

' Set folder where to save the files
myPath = FilePath1
status = swPackAndGo.SetSaveToName(True, myPath)
' Flatten the Pack and Go folder structure; save all files to the root directory
swPackAndGo.FlattenToSingleFolder = True
' Add a prefix to the new Pack and Go filenames

swPackAndGo.AddPrefix = Prefix

 ' Verify document paths and filenames after adding prefix and suffix
ReDim pgGetFileNames(namesCount - 1)
ReDim pgDocumentStatus(namesCount - 1)
status = swPackAndGo.GetDocumentSaveToNames(pgGetFileNames, pgDocumentStatus)
Debug.Print ""
Debug.Print "  My Pack and Go path and filenames after adding prefix: "
For i = 0 To (namesCount - 1)
     Debug.Print "    My path and filename is: " & pgGetFileNames(i)
Next i
' Pack and Go
statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
swApp.CloseDoc (FilePath2 + FileName2)
status = swAssy.ReplaceComponents(FilePath1 + Prefix + FileName2, "", True, True)
End Sub

 

solid 2016 sp5.0

Поделиться сообщением


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

немного намудрил с кодом. Кое-что подправил, теперь не копируется сама сборка а компоненты входящие в нее копируются. Как сделать чтобы сборка тоже копировалась? :dash1:

код:

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

'---------------------------------------------------------------------------
' Предварительные условия:
' 1. Выбрать заменяемый компонент в дереве построения головной сборки.
' 2. Запустить макрос.
'
' Результат работы программы:
' 1. Генерирует цифровой префикс к выбранному компоненту включая вложенные компоненты.
' 2. Создает экзэмпляр компонента и всех чертежей в папке головной сборки
' 3. Заменяет выбранный компонент созданным экземпляром.
'---------------------------------------------------------------------------

Dim swApp As SldWorks.SldWorks
Dim swModelDoc1 As SldWorks.ModelDoc2
Dim swModelDoc2 As SldWorks.ModelDoc2
Dim swModelDoc1Ext As SldWorks.ModelDocExtension
Dim swModelDoc2Ext As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim openFile As String
Dim pgFileNames As Variant
Dim pgFileStatus As Variant
Dim pgGetFileNames As Variant
Dim pgDocumentStatus As Variant
Dim status As Boolean
Dim warnings As Long
Dim errors As Long
Dim i As Long
Dim namesCount As Long
Dim myPath As String
Dim statuses As Variant

Dim FilePath1 As String
Dim FilePath2 As String
Dim FileName1 As String
Dim FileName2 As String
Dim curObj As Object
Dim objComponent As SldWorks.Component2
Dim SelMgr As SldWorks.SelectionMgr
Dim swAssy As SldWorks.AssemblyDoc
Public Prefix As String


Private Function myGetDate() As String
    Dim MyStr As String
    Dim MyDate As Variant

    MyDate = Now()
    MyStr = Format(MyDate, "yyMMddHHmmss")

    myGetDate = MyStr
End Function
'функция исключения имени файла из полного пути
'Path - полный путь к файлу (включая имя файла)
Private Function myGetFolder(Path As String) As String

myGetFolder = Left$(Path, InStrRev(Path, "\"))

End Function

Sub main()

Set swApp = Application.SldWorks
Set swModelDoc1 = swApp.ActiveDoc 'указатель на головную сборку
Set SelMgr = swModelDoc1.SelectionManager
Set curObj = SelMgr.GetSelectedObjectsComponent4(1, 0)
Set objComponent = curObj 'выбранный компонент в дереве построения
FilePath2 = curObj.GetPathName() 'путь к выбранному компоненту
FileName2 = Dir(FilePath2, vbDirectory)
FilePath1 = swModelDoc1.GetPathName() 'путь к головной сборке
FileName1 = Dir(FilePath1, vbDirectory)
FilePath1 = myGetFolder(FilePath1) 'убираем имя компонента из пути
FilePath2 = myGetFolder(FilePath2) 'убираем имя компонента из пути
Prefix = myGetDate
'MainForm.TextBox1.Text = Prefix
'MainForm.Show

'получаем указатель на выбранный компонент
Set swModelDoc2 = swApp.ActivateDoc3(FileName2, False, swRebuildOnActivation_e.swDontRebuildActiveDoc, errors)
Set swModelDoc2Ext = swModelDoc2.Extension

Debug.Print "Pack and Go"
Set swPackAndGo = swModelDoc2Ext.GetPackAndGo

' Get number of documents in assembly
namesCount = swPackAndGo.GetDocumentNamesCount
Debug.Print "  Number of model documents: " & namesCount

' Include any drawings, SOLIDWORKS Simulation results, and SOLIDWORKS Toolbox components
swPackAndGo.IncludeDrawings = True
Debug.Print "  Include drawings: " & swPackAndGo.IncludeDrawings

' Получаем список файлов сборки в исходной папке
status = swPackAndGo.GetDocumentNames(pgFileNames)
Debug.Print ""
Debug.Print "  Current path and filenames: "
If (Not (IsEmpty(pgFileNames))) Then
    For i = 0 To UBound(pgFileNames)
        Debug.Print "    The path and filename is: " & pgFileNames(i)
    Next i
End If

' Get current save-to paths and filenames of the assembly's documents
status = swPackAndGo.GetDocumentSaveToNames(pgFileNames, pgFileStatus)

' Set folder where to save the files
myPath = FilePath1
status = swPackAndGo.SetDocumentSaveToNames(pgFileNames)
status = swPackAndGo.SetSaveToName(True, myPath)

' Flatten the Pack and Go folder structure; save all files to the root directory
swPackAndGo.FlattenToSingleFolder = True
' Add a prefix to the new Pack and Go filenames

swPackAndGo.AddPrefix = Prefix

status = swPackAndGo.GetDocumentSaveToNames(pgGetFileNames, pgDocumentStatus)

' Pack and Go
statuses = swModelDoc2Ext.SavePackAndGo(swPackAndGo)
swApp.CloseDoc (FilePath2 + FileName2)
'
'Set swModelDoc1 = swApp.OpenDoc6(FilePath1 + FileName1, swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
Set swModelDoc1 = swApp.ActivateDoc3(FileName1, False, swRebuildOnActivation_e.swDontRebuildActiveDoc, errors)
Set swAssy = swModelDoc1
status = swAssy.ReplaceComponents(FilePath1 + Prefix + FileName2, "", True, True)

End Sub

 

 

Хэлп!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 13.06.2018 в 12:14, Gaidn сказал:

Здравствуйте! По много раз за день приходится пользоваться командой "Копировать проект" со стандартным фиксированным для нас набором параметров. Можно ли как-то с помощью макроса это сделать? Как выйти на этот модуль? Запись макроса, естественно, не помогла. ))

Всем заранее спасибо! )

Не знаю, что Вы имеете ввиду под "Копировать проект". Если это все, что так или иначе относится к Вашему проекту, то PackAndGo Вам в руки. Только вряд ли это Вас устроит хотя бы из-за неопределенности того, что ОНО там копирует. И невменяемого времени. Тоже столкнулся с подобной проблемой когда потребовалось гарантированное сохранение ВСЕХ элементов модели в одном месте. Тут как минимум два способа, один с использованием метода "GetDocumentDependencies2" и второй с использованием функции "TraverseComponent" (из help'а). С последней особо не разбирался (не программист), вроде тоже работает. Важно! Эти методы не дают идентичного результата, хотя и позволяют практически идеально скопировать исходник (открывается из копии без проблем в обоих случаях). Существенное отличие их в том, что первый метод "выдирает" практически все, вплоть до того, что "разбирает" на запчасти деталь, составленную из деталей (вставка детали в деталь. При том, что штатными средствами выделить вставленную в деталь другую деталь у меня не получалось). Второй метод этого не делает, для него деталь это один компонент. Но первый способ менее информативен и не дает полной информации о состоянии детали в сборке (например она может быть погашена), ну или я не до конца разобрался. Второй способ позволяет оценить "степень бедствия", т.е если что-то не скопировалось, то можно понять насколько это серьезно. Возможно не скопирован погашенный компонент. Два макроса (vba) вложил, "06 Копия проекта - ARR" - первый способ, "05 Копия проекта + Log" - второй. Прожки в состоянии доработки, as is, комменты есть, код открытый. То, что я не программер я уже писал. Ну и да, Вас приятно удивит скорость копирования.

05 Копия проекта + Log.swp

06 Копия проекта - ARR.swp

1 пользователю понравилось это

Поделиться сообщением


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

Здравствуйте! В help есть такой пример на эскпорт файла в STEP формате. В нём непонятны несколько строк.

Set swApp = Application.SldWorks    
    'Open the SOLIDWORKS part document to export to a STEP file
    fileName = "C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\api\db9 male.sldprt"
    Set swPart = swApp.OpenDoc6(fileName, swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", errors, warnings)
    Set swModel = swPart 						'зачем эта строка? Если они равны, то почему бы сразу не ссылаться на swModel
    Set swModelDocExt = swModel.Extension 		'непонятно, что делается здесь.
    
    'Export the SOLIDWORKS part document to a STEP file
    stepFileName = "C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\api\db9 male.STEP"
    status = swModelDocExt.SaveAs(stepFileName, 0, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, errors, warnings)
    Set swPart = Nothing 						'и здесь непонятно)
    swApp.CloseDoc "db9 male.sldprt" 

И непонятно, что делать с параметрами (или аргументами, или свойствами, не знаю, как правильно) errors и warnings. Как их обрабатывать, или что тут указывать? В справке есть какие-то варианты ошибок и предупреждений, но куда их вставлять или что с ними делать - непонятно.

Заранее всем большое спасибо.)

Поделиться сообщением


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

И непонятно, что делать с параметрами (или аргументами, или свойствами, не знаю, как правильно) errors и warnings. Как их обрабатывать, или что тут указывать? В справке есть какие-то варианты ошибок и предупреждений, но куда их вставлять или что с ними делать - непонятно.

Начните с книжки по азам программирования, возможно для начала какой-нибудь краткий курс по VBA. Потому как судя по вашим вопросам вам будет туго без первичных знаний.

 

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

Поделиться сообщением


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

'зачем эта строка?

Низачем. Тупанули индусы))

33 минуты назад, Gaidn сказал:

Как их обрабатывать, или что тут указывать?

Если они не равны нулю после открытия - значит что-то может пойти не так (или уже пошло). В описании к OpenDoc6 есть описание параметров. Почитайте, там всё написано.

Поделиться сообщением


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

Начните с книжки по азам программирования, возможно для начала какой-нибудь краткий курс по VBA

Вот не поверите, но у меня есть несколько книжек по VB. Правда не VBA, a VB.Net. И я их периодически даже почитываю по мере необходимости. ))

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

Низачем. Тупанули индусы))

Спасибо. )

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

В описании к OpenDoc6 есть описание параметров. Почитайте, там всё написано.

Первым делом прочитал. Но всё равно непонятно. Хотя сейчас начинает проясняться. То есть это некие переменные (errors, warnings), в которые будут заноситься коды ошибок и я смогу их отследить. Так получается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 13.06.2018 в 13:14, Gaidn сказал:

Здравствуйте! По много раз за день приходится пользоваться командой "Копировать проект" со стандартным фиксированным для нас набором параметров. Можно ли как-то с помощью макроса это сделать? Как выйти на этот модуль? Запись макроса, естественно, не помогла. ))

Всем заранее спасибо! )

Добрый день.

В конце всех манипуляций нужен завершающий шаг с выходом на PackAndGo с одной галочкой у конкретной сборки и ее чертежа (остальное - должно быть неизменным). То есть у пользователя просто должно появиться окно копирования проекта, где стоят две отметки.

Как это можно прописать в общем макросе?

 

P.s. Пожалуйста, не предлагайте саму команду PackAndGo... 

P.s.2 Пожалуйста, не отправляйте ссылку в справку...

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 20.07.2018 в 14:33, Gaidn сказал:

То есть это некие переменные

да, переменная которая передалась по ссылке. Изменилась внутри метода, и вернулась назад изменённая. Это применяется когда из метода нудно вернуть несколько разных типов и значений.

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 22.07.2018 в 11:54, streamdown сказал:

да, переменная которая передалась по ссылке. Изменилась внутри метода, и вернулась назад изменённая. Это применяется когда из метода нудно вернуть несколько разных типов и значений.

Большое спасибо! Всё получилось. )

Поделиться сообщением


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

Снова здравствуйте!

Может быть у кого-то есть макрос на сворачивание всего дерева сразу? Или может это как-то можно сделать силами обычного солида? ) Заранее всем большое спасибо! )

Поделиться сообщением


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

ПКМ на сборке - свернуть элементы. Это же можно хоть на кнопку в настройках повесить. Макрос блин)))

Поделиться сообщением


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

ID: 1897   Опубликовано: (изменено)

38 минут назад, Gaidn сказал:

сворачивание всего дерева сразу?

А зачем?

Может лучше так?  

Clip469.png.27d2eb654be03540760e4b129fbff809.png

Hide  
Изменено пользователем Plumber

Поделиться сообщением


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

ПКМ на сборке - свернуть элементы. Это же можно хоть на кнопку в настройках повесить. Макрос блин)))

Вот я тоже нашел этот способ, но не то чтобы на сборке ПКМ, а в любом месте дерева. ) Оказывается, уже горячая клавиша есть на это действие по умолчанию.) Shift+С. )

 

14 минуты назад, Plumber сказал:

А зачем?

Может лучше так?

Clip469.png.27d2eb654be03540760e4b129fbff809.png

Hide

Не, так не пойдет. ) Спасибо. )

 

А есть ли у кого макрос по сортировке дереве по заданным критериям? К примеру, по алфавиту, и все детали или сборки со словом "Кран" помещаются в папку "Арматура". 

Поделиться сообщением


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

ID: 1899   Опубликовано: (изменено)

43 минуты назад, Gaidn сказал:

А есть ли у кого макрос по сортировке дереве по заданным критериям? К примеру, по алфавиту

Инструменты-Визуализация сборки:

http://help.solidworks.com/2010/russian/solidworks/sldworks/allcontent/solidworks/core/assemblies/c_assembly_visualization_overview.htm

 

43 минуты назад, Gaidn сказал:

все детали или сборки со словом "Кран"

Фильтр по дереву конструирования (строка для ввода вверху над деревом):

http://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/assem_1/filtering_the_featuremanager_design_tree_in_assemblies.htm

 

 

43 минуты назад, Gaidn сказал:

помещаются в папку "Арматура". 

Через контекстное меню СОЗДАТЬ НОВУЮ ПАПКУ и/или ДОБАВИТЬ В НОВУЮ ПАПКУ, но туда не всё можно добавить, например, массивы это отдельная песня:

http://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/fundamentals/add_folders.htm

Изменено пользователем Kelny

Поделиться сообщением


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

ID: 1900   Опубликовано: (изменено)

18 минут назад, Kelny сказал:

Фильтр по дереву конструирования (строка для ввода вверху над деревом):

http://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/assem_1/filtering_the_featuremanager_design_tree_in_assemblies.htm

Это понятно, но совсем другое. Я имел ввиду макрос, который шерстит дерево построения и элементы (детали или сборки) по определенному критерию (например по имени, чаще всего надо) складывает в определенную папку.

18 минут назад, Kelny сказал:

Через контекстное меню СОЗДАТЬ НОВУЮ ПАПКУ и/или ДОБАВИТЬ В НОВУЮ ПАПКУ, но туда не всё можно добавить, например, массивы это отдельная песня:

http://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/fundamentals/add_folders.htm

аналогично

Изменено пользователем Gaidn

Поделиться сообщением


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

Это понятно, но совсем другое. Я имел ввиду макрос

Это понятно, но зачем макрос? Если есть штатные функции программы, тем более если сами вы этот макрос писать не собираетесь.

 

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

В справке есть примеры, например, помещение компонента в новую папку:

http://help.solidworks.com/2010/english/api/sldworksapi/move_assembly_components_to_new_folder_example_vb.htm

 

Поделиться сообщением


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

Это понятно, но зачем макрос? Если есть штатные функции программы, тем более если сами вы этот макрос писать не собираетесь.

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

 

зачем писать самому макрос, если он уже у кого то есть? ))

А если нет, то придется самому. ) Спасибо большое за пример. ) Тоже на него натыкался и взял себе на примет. ;)

Поделиться сообщением


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

все детали или сборки со словом "Кран" помещаются в папку "Арматура". 

 

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

 

5 часов назад, Kelny сказал:

но туда не всё можно добавить, например, массивы это отдельная песня:

 

А что туда нельзя добавить?? Массивы прекрасно добавляются..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 27.07.2018 в 20:40, ILL сказал:

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

Да, зачастую очень много. Это я как пример привел. И даже если папки по разделам спецификации. Как было бы хорошо не отвлекаться на перетаскивание компонента в папку, а просто периодически нажимать горячую клавишу без отрыва от работы. И я уж не говорю о том случае, когда получаю чью-то сборку на доработку. Там бывает такая каша и сотен компонентов на одном уровне... В такие моменты я "грезю" о заветной кнопке такого макроса. )))

Поделиться сообщением


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

В такие моменты я "грезю" о заветной кнопке такого макроса. ))

 

Элементарно..

 

1. http://help.solidworks.com/2015/English/api/sldworksapi/Traverse_Assembly_at_Component_Level_Example_VB.htm

записать в массив и, возможно, отсортировать..

3. 

В 27.07.2018 в 17:52, Kelny сказал:

 

Поделиться сообщением


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

Хочу удалить пустые папки в дереве сборки. Думаю, что примерно выглядеть должно так: перебираем все папки, выбираем папку, проверяем есть ли в ней потомки, если потомков больше 0 - удаляем. Может кто знает команду, которая проверяет есть ли в папке потомки или берет их количество. Буду очень признателен.

 

Эти волшебным образом не работают:

ChildCount = Feature.IGetChildCount()

Child = Feature.GetChildren()
 

 

Поделиться сообщением


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

Хочу удалить пустые папки в дереве сборки. Думаю, что примерно выглядеть должно так: перебираем все папки, выбираем папку, проверяем есть ли в ней потомки, если потомков больше 0 - удаляем. Может кто знает команду, которая проверяет есть ли в папке потомки или берет их количество. Буду очень признателен.

 

Эти волшебным образом не работают:

ChildCount = Feature.IGetChildCount()

Child = Feature.GetChildren()
 

 

Вопрос снят, разобрался

Поделиться сообщением


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

Вопрос снят, разобрался

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 03.08.2018 в 10:12, Kelny сказал:

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

сорри, не все правила еще знаю, буду исправляться, готовый макрос положу в тему Сделай свою работу в Solidworks эффективнее

Поделиться сообщением


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

Кто нибудь с api в pdm занимался? Есть задача по списку состава изделия скопировать (сделать общими) файлы в другую папку хранилища. Не могу найти команду создания (vba или с) общей детали в pdm... Если кто сталкивался - ткните в ссылку плиз..

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • FAHRENHEIT
      @don108  за наглядное пособие спасибо,все нормально отрабатывает в solidworks 2018,но только для новых ( в будущем ) моделей ,а если открыть любую имеющуюся модель, то ползунок нужно снова двигать в сторону лучшего качества отображения ...
    • Александр Кушелев
      Сложность сборки не зависит от точности шариков... Кушелев: Конечно не важно. Ведь в процессе изготовления можно добавлять калибровочные элементы с отрицательным коэффициентом температурного расширения.
    • mrvcf1
      А у рубина решетка ведет себя по другому? Или это не важно? 2." Однорядность" (имею в виду массив по плоскости, неважно сколько там рядов) массива, основанного на касательности шариков не обеспечит вам соприкосновение шариков, в местах максимальных габаритов этих шариков. К примеру точность позиционирования шарика возможна, более 50% диаметра шарика, а у вас их там сотни, и о какой точности возможно говорить? Чем меньше шарик тем точнее будет линейка, только при одинаковом количестве шариков. Говорить о точности в данном исполнении возможно рассматривая, 1 элемент, это шарик, дальше это уже идет фантастика, не на чем не основанная. Вот изображение: Верхний ряд показывает, то во что вы пытаетесь убедить. А нижний показывает как есть на самом деле.     Почему вы пользуетесь, на своих примерах, линейками? почему не фракталонами?
    • kens
      Смотрю в демо-базе тоже не указаны размеры L5-L9 кроме  L7, они в основном для Т-образных используются и для квадратных матриц их указывать все же не обязательно?
    • MotorManiac
      Ну что товарищи, кто нибудь уже прикупил браслетик  ? дело то чем кончилось )
    • Anat2015
      Ну,ну, импортные датчики так просто не помирают один за другим. Может ловитель по ним слегка ударяет?
    • Александр Кушелев
      Я могу проконтролировать погрешность изготовления сферической поверхности рубиновых шариков и отверстий в них. Для этого в первом приближении достаточно пасаметра и ещё одного приборчика:       Типовая китайская точность сверления отверстий   Процесс сверления рубинового шарика с погрешностью не более 10 микрон: https://imperiya.by/video/4Vh-SEJG4qG/sverlim-rubinovyiy-sharik-igloy-dlya-ruchnogo-shitya.html   Оборудование лаборатории Наномир для сверления точных отверстий: http://nanoworld88.narod.ru/data/255.htm Контроль на уровне погрешности 0.1 микрона осуществляется по ширине спектра рубинового резонатора:   Подробнее: http://nanoworld88.narod.ru/data/165.htm Кушелев: Есть даже такой термин: "Инженерное искусство". Речь идет о том, что настоящая наука неотделима от искусства.   Современные устройства, например, магнетроны, ЛБВ и др. иногда являются шедеврами инженерного искусства. Именно такие изделия обладают рекордными, уникальными параметрами. Настройка мощных импульсных ЛБВ - очень тонкое инженерное искусство. Траектория пучка в таких ЛБЫ корректируется миниатюрными магнитами, который мастер размещает вдоль замедляющей системы. Это кропотливое занятие значительно сложнее, чем собрать фрактальный эталон длины из калиброванных корундовых шариков, что под силу даже школьнику младших классов:   https://yadi.sk/i/A4xTV44V3a6qDn Подробнее: http://nanoworld.org.ru/topic/1819/       Фрактальный эталон длины со шкалой из африканского племени Химба
    • vad0000
      Естественно с проставкой   Вы не указали все размеры. Если  L5 L6 будут равны Н, то L8 L9 можно не указывать. А так, для Т-образной матрицы Вы должны указать все размеры, кроме  L7.
    • АйнурБатталов
      Объявление ещё актуально? Хотел бы купить все. Где можно забрать в Питере?
    • kens
      Высота H- это все же с проставкой или без? Тогда для чего L5 L6 указывать?