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

Сделай свою работу в Solidworks эффективнее


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

1 час назад, malvi.dp сказал:

Создал сборку с тремя деталями - макрос отработал без ошибок, но в старой сборке так с ошибкой и отрабатывает (может в самой сборке что-то не так, непонятно)

Может, дело в шаблонах, попробуй для начала сделать шаблоны из файлов 2016 версии солида. До солида 2015 сп3 такая ошибка появляется при сопряжении по точкам с выравниванием по осям, в следующих сервиспаках исправили. Можешь раскомментировать строчку сопряжений для св2014, а для 2016-закомментировать - будет выравнивать по точкам без выравнивания по осям. Можно раскомментировать строку для св2016-2021, проверь, как отработает. В св2021 работает без ошибок с любым количеством подсборок и на любом уровне сборки/подсборки.

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


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

Может, дело в шаблонах, попробуй

Выяснил одну интересную закономерность - если начать новую сборку и НЕ сохранять ее на диске, то макрос отрабатывает нормально и со вставленными СБ и ДЕ в любом количестве.

После сохранения сборки - макрос работает без ошибок, но вновь вставленная деталь не закреплена, т.е. сопряжения не отрабатывают.

Заметил, при этом появляется звездочка после названия файла вверху панели солида.

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

HM8.JPG

При нажатии "сохранить" она исчезает, но макрос все-равно деталь не сопрягает.

Такие вот чудеса.

Шаблоны пока не трогал, не помню где их искать.

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

если начать новую сборку и НЕ сохранять ее на диске, то макрос отрабатывает нормально и со вставленными СБ и ДЕ в любом количестве.

После сохранения сборки - макрос работает без ошибок, но вновь вставленная деталь не закреплена, т.е. сопряжения не отрабатывают.

Заметил, при этом появляется звездочка после названия файла вверху панели солида

Да ладно, ты только сейчас заметил звёздочку?) Эта звёздочка показывает, что внесены изменения и файл не сохранён. Так не только в солиде, в автокаде появляется звёздочка возле названия файла на вкладке, как только добавишь/удалишь что-нибудь

 

1 час назад, malvi.dp сказал:

При нажатии "сохранить" она исчезает, но макрос все-равно деталь не сопрягает.

Такие вот чудеса

Попробуй всё-таки закомментировать строку под комментарием 'Add the mate sw2016 ... и раскомментировать под 'Add the mate sw2016-2021 ... - эти строки в конце текста макроса

 

1 час назад, malvi.dp сказал:

Шаблоны пока не трогал, не помню где их искать

 Должны быть где-то здесь C:\ProgramData\SOLIDWORKS\SOLIDWORKS 20**\templates

Добавь этот путь в настройках поиска шаблонов (в меню Инструменты -> Параметры -> Настройка пользователя -> Месторасположение файлов)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
07.12.2020 в 09:42, malvi.dp сказал:

В сборку вставляется файл детали (Н.sldprt), он лежит в определенной папке на диске (D:\WORK).
Далее этот файл сопрягается по исходной точке (с исходной точкой сборки).

Кстати говоря на этот момент так же можно использовать Авто-сопряжения, Ссылка на сопряжение:

https://cccp3d.ru/topic/93300-настройка-smart-components/?do=findComment&comment=1128742

 

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

Уголок равнопол гнут 19771.SlDLFP

Уголок неравнопол гнут 19772.SlDLFP

сконфигурированный файл для сварных конструкций, сделано в solidworks 2020

image.pngimage.pngimage.png

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

Кстати говоря на этот момент так же можно использовать Авто-сопряжения

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

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

Про авто-сопряжения знаю и активно их использую в стандартных деталях.

есть какие-нибудь подробности по этой теме? заранее благодарен за подсказки!

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

есть какие-нибудь подробности по этой теме?

 

 

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

 

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

Здравствуйте. Сталкивался ли кто-нибудь с проблемой запуска данного макроса?

Win10x64 20H2. SW 2019 SP5
Выходит диалоговое окно с ошибкой.

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

hQnYloN_S0o.jpg?size=404x148&quality=96&

 

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

@malvi.dp хэлп я уже вдоль и поперек перечитал, там слишком мало информации про "ссылка на сопряжения". расставил я их у себя просто наугад, не зная точно как работает каждый из пунктов.

поэтому и спросил, может кто-нибудь знает и активно применяет эти ссылки...

 

изображение.png

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

Уголок равнопол гнут Разные.SlDLFP

сделано в солиде 2020

 

Попробывал сделать шаблон нестандартного гнутого уголка. Получилось сложно, может есть попроще путь )). А всё из-за того что у нас накидали в папку с профилями сварных для гнутых уголков не гостовских размеров.

 

Когда применяем этот профиль - в спецификацию сварных вырезов попадёт длина развёртки профиля, в данном случае, например: Лист 2х60.

Сложность с округлением, применил такую себе формулу:

Ширина_пред = "D2@профиль" * 2 - ( 3.14 / 2 * ( "D1@профиль" + 0.27 * "S@профиль" ) ) 

Ширина = iif ( "Ширина_пред" - int ( "Ширина_пред" ) < = 0.1 , int ( "Ширина_пред" ) , iif ( "Ширина_пред" - int ( "Ширина_пред" ) < 0.5 , int ( "Ширина_пред" ) + 0.5 , int ( "Ширина_пред" ) + 1 ) )

здесь проверка на близость к 0.5 и если ровное значение, но оно таковым вряд ли получится. тут было, например, 60.00012574.

решил, что 60.1 - округлить до 60, а 60.2 уже будет 60.5 )), или лучше округлять до 0.5 начиная с 0.23? ))

 

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

image.png

т.е. в самом файле-то работает, и даже можно создать сварную деталь с профилем, но сохранить не удастся, да и в свойствах сварных не определялся размер.

ладно,

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

image.png

третье )): мне казалось, что можно высветить несколько развёрток одновременно в модели, но можно одну

image.png

 

в чертёж, в общем, можно вставить все необходимые развёртки (путём выбора нужного тела) и он "хавает" нужный мне сортамент (не стоит придираться к лист или полоса ))) мы так делаем), для примера - пойдёт ))

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

image.png

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

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

Так что конкретно не понятно?

Цитата
  • Чтобы автоматически создать сопряжение между двумя компонентами, у ссылок на сопряжение должны быть одинаковыми следующие элементы:

  • Имя

  • Количество объектов

  • Тип сопряжения для соответствующих объектов

Там даже пример есть.

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

Доброго дня, уважаемые обитатели сей темы. Скачал макрос для создания многолистового чертежа сборки (сам писать не умею) . Работает не корректно, создает первым листом чертеж сборки. Следующими создает листы деталей но, собака, не вставляет туда виды. То есть лист детали есть, называется как деталь но он пустой, только основная надпись и все. Чертежи подсборок тоже создает. 

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

Сам макрос: https://yadi.sk/d/Kf-7EFhfCCxPOg. Извините, не нашел тут как его прикрепить. 

SW 2021

 

Option Explicit

'********************************************************************************************************************************************************

'   Code originally written by Jake Carr and Uploaded to 3D Content Central on 8/9/2017

'********************************************************************************************************************************************************

'Variable Declarations
Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim docDepend As Variant
Dim swDraw As DrawingDoc
Dim swSheet As Sheet
Dim swView As View
Dim viewNames As Variant
Dim swBomAnnotations As BomTableAnnotation
Dim asmPath As String
Dim asmName As String
Dim docNames() As String
Dim docPaths() As String
Dim viewName As String
Dim i As Integer
Dim sourceCount As Integer
Dim label As MSForms.label
Dim listBox As MSForms.CheckBox
Dim result As Boolean
Dim swConfig As String


'********************************************************************************************************************************************************

'   Set the parameters below for your specific use case. These include the drawing template, format template, and bom template.

'********************************************************************************************************************************************************


'Include components in subassemblies or not
Const subAssemblies As Boolean = False

'Full path to drawing template
Const drawingTemplatePath As String = "C:\Solidworks\Templates\Size A Template.drwdot"

'Sheet format Template
Const drawingFormatPath As String = "C:\Solidworks\Templates\Size A Sheet 1.slddrt"

'BOM Template Path
Const bomTemplate As String = "C:\Solidworks\Templates\BOM.sldbomtbt"

'Page size
Const paperSize As Integer = swDwgPaperAsize

'X and Y position of view inserted into each sheet in meters. These will probably have to be tweaked for your template
Const x As Double = 0.06
Const y As Double = 0.075

'Set the view to insert into each document
Const namedView As String = "*Isometric"

'Set the view to shaded edges
Const displayMode As Integer = swSHADED_EDGES

'BOM Anchor Point
Const bomAnchor As Long = swBOMConfigurationAnchor_TopLeft

'Bom Type
Const bomType As Long = swBomType_TopLevelOnly

'Bom Numbering
Const bomNumbering As Integer = swNumberingType_None


'********************************************************************************************************************************************************

'   This function initializes the form. It will return false if there are any problems and true otherwise. It loads all of the components into the listbox

'********************************************************************************************************************************************************


Public Function initialize() As Boolean

'Get Solidworks Apps
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If IsNull(swModel) Then initialize = False

'Check for Assembly, get path, title, and dependencies. Get the active configuration name. Exit if not assembly type.
If swModel.GetType = swDocASSEMBLY Then
    asmPath = swModel.GetPathName
    asmName = swModel.GetTitle
    docDepend = swApp.GetDocumentDependencies2(asmPath, subAssemblies, True, False)
    swConfig = swApp.GetActiveConfigurationName(asmPath)
Else
    MsgBox ("Error! Not an Assembly File")
    Exit Function
End If

'Make sure document has dependencies
If IsEmpty(docDepend) Then Exit Function

'Loop through the document dependencies and built a list of the names and paths
i = 0
sourceCount = 1
While i <= UBound(docDepend)

    ReDim Preserve docNames(sourceCount)
    ReDim Preserve docPaths(sourceCount)
    
    docNames(sourceCount) = docDepend(i)
    docPaths(sourceCount) = docDepend(i + 1)

    i = i + 2
    sourceCount = sourceCount + 1
Wend

'Add all the names to the list box
drawingComponents.componentListBox.Clear
With drawingComponents.componentListBox

    For i = 1 To UBound(docNames)
    
        .AddItem docNames(i)
    
    Next i

End With

initialize = True

End Function


'********************************************************************************************************************************************************

'   This is where all of the code happens to create the drawing. Basic Process:

'   1. Create a new drawing with the template specified
'   2. Add the view specified to the first sheet
'   3. Add the BOM of the Assembly to the anchor point specified
'   4. Loop through components in listbox
'   5. Create a new sheet for each selected component and activate it
'   6. Place the view on the new sheet
'   7. Activate the first sheet with the assembly
'   8. Close the form

'********************************************************************************************************************************************************


Private Sub okButton_Click()

Dim sheetProperties As Variant
Dim scale1 As Double
Dim scale2 As Double

'Create a new drawing using the template path
Set swDraw = swApp.INewDocument2(drawingTemplatePath, paperSize, 0, 0)
Set swSheet = swDraw.GetCurrentSheet
swSheet.SetName (asmName)

'Insert the view for the Assembly
Set swView = insertView(asmPath, namedView, displayMode, x, y)

'Insert the BOM for the assembly
Set swBomAnnotations = swView.InsertBomTable4(True, 0, 0, bomAnchor, bomType, swConfig, bomTemplate, False, bomNumbering, False)

'Get the sheet properties to ensure all sheets have the same scale
sheetProperties = swSheet.GetProperties
scale1 = sheetProperties(2)
scale2 = sheetProperties(3)

'Loop through the components in the list box and add a sheet with a view if they were selected
For i = 1 To drawingComponents.componentListBox.ListCount
    If drawingComponents.componentListBox.Selected(i - 1) Then
    
    swDraw.NewSheet4 docNames(i), swDwgPapersUserDefined, swDwgTemplateCustom, scale1, scale2, False, drawingFormatPath, 0, 0, "", 0.5, 0.5, 0.5, 0.5, 1, 1
    swDraw.ActivateSheet (docNames(i))
    
    Set swView = insertView(docPaths(i), namedView, displayMode, x, y)
    
    End If
Next i
   
'Activate the first page and zoom to fit the drawing
swDraw.ActivateSheet (asmName)
Set swModel = swApp.ActiveDoc
swModel.ViewZoomtofit2

'Close the form
Unload drawingComponents

End Sub


'********************************************************************************************************************************************************

'   This function places a view on the current sheet of the part/assembly specified and returns the view.

'   fullPath is the path to the part/assembly you want to add. e.g. C:\Temp\part.sldprt
'   viewName is the view to insert. e.g. *Isometric, *Front, etc.
'   displayMode is the mode in which to display the model. e.g. swSHADED_EDGES, swWIREFRAME, ect.
'   xPos and yPos give the coordinate to place the view in meters from the bottom left corner of the drawing

'   example: set swView = insertView(C:\Temp\part.sldprt, "*Isometric", swSHADED_EDGES, 0.05, 0.05)

'********************************************************************************************************************************************************

Public Function insertView(fullPath As String, viewName As String, displayMode As Integer, xPos As Double, yPos As Double) As View

Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swDraw As DrawingDoc
Dim swSheet As Sheet
Dim swView As View
Dim viewNames As Variant
Dim i As Integer

'Get Solidworks Apps
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

'Check for drawing type
If swModel.GetType = swDocDRAWING Then
    Set swDraw = swModel
    Set swSheet = swDraw.GetCurrentSheet
Else
    MsgBox ("Error! Not a Drawing File")
    Exit Function
End If

'Generate the pallete views and get their names
swDraw.GenerateViewPaletteViews (fullPath)
viewNames = swDraw.GetDrawingPaletteViewNames()

'Loop through their names and insert the view
For i = 0 To UBound(viewNames)

    If viewNames(i) = viewName Then
    
    Set swView = swDraw.DropDrawingViewFromPalette2(viewName, xPos, yPos, 0)
    swView.SetDisplayMode3 True, displayMode, False, True
    Exit For
    End If

Next i

Set insertView = swView

End Function


'********************************************************************************************************************************************************

'   Cancel button closes the form

'********************************************************************************************************************************************************


'If cancel button is clicked close the form
Private Sub cancelButton_Click()
    'close the form and don't do anything
    Unload drawingComponents
End Sub


'********************************************************************************************************************************************************

'   Check/uncheck all will select/unselect all itmes in the listbox

'********************************************************************************************************************************************************


Private Sub checkAll_Click()

Dim i As Integer

If checkAll.Value = True Then
    For i = 0 To componentListBox.ListCount - 1
        componentListBox.Selected(i) = True
    Next i
End If

If checkAll.Value = False Then
    For i = 0 To componentListBox.ListCount - 1
        componentListBox.Selected(i) = False
    Next i
End If

End Sub
 

 

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
09.11.2017 в 15:53, Kir95 сказал:

Макрос для удаления подвешенных размеров в чертеже:

@Kir95 А можете переделать Ваш макрос на удаление подвешенных указателей центров? Уж очень часто приходится вручную это делать...

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

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

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

@Crystal3d в левом верхнем углу значки - там где галка, крест, отмена и 4 кнопка - оставить

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

переделать Ваш макрос на удаление подвешенных указателей центров?

Посмотрел, удаляет все подвешенные примечания в чертеже и указатели центров тоже или речь о другом?

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

Посмотрел, удаляет все подвешенные примечания в чертеже и указатели центров

Подтверждаю, подвешенные указатели также удаляет. Sw2016sp5

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

@Kir95 @malvi.dp Не работает на старых шаблонах, на родных (SW 2018 SP5.0) работает норм.

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

Не работает на старых шаблонах, на родных (SW 2018 SP5.0) работает норм

Разрабы солида что-то добавляют/убавляют. Этот макрос раньше не удалял подвешенные ординатные размеры, а в 21 солиде начал удалять - стало ещё удобнее.

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

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

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

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

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

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

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

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

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

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

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



×
×
  • Создать...