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

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


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

17 часов назад, alek77 сказал:

Редко пользуюсь PackAndGo, при этом очень часто просто копирую нужную имеющуюся модель, даю новое имя, корректирую и т.д.
При оформлении копирую чертеж от старой, переименовываю, а потом начинается свистопляска с привязкой нового чертежа к новой модели. Это ж надо нажать открыть, выбрать этот чертеж, заменить ссылки, муторно короче, особенно когда файлов в папке много. Набросал макрос, который открывает скопированный и переименованный чертеж и автоматом перепривязывает его к новой модели. Попробуйте, может кому будет полезен.

 

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


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

 

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

 

Выявленные косяки приветствуются! Тестировал не много, не проверяйте на рабочей документации.

OpenDrwAndChangeRef.swp 72 \u041a\u0431 · 2 скачивания OpenDrwAndChangeRef.bmp 3 \u041a\u0431 · 2 скачивания

Там выше есть макрос ПЕ-КО, делает тоже самое плюс еще несколько функций. Очень удобный. 

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


а НЕ поможет кто переделать данный макрос (сохранение в pdf)

Сейчас он сохраняет как ИмяДокумента-ИмяЛистаЧертежа1.pdf, ИмяДокумента-ИмяЛистаЧертежа2.pdf и т.д.

 

У меня обычно имя листов выглядит так: DRW1, DRW2, DRW3..., SP1, SP2.

Мне бы сохранять DRW1, DRW2, DRW3... как один PDF -> ИмяДокумента СБ.pdf,

а SP1, SP2... как второй (если они есть) PDF -> ИмяДокумента СП.pdf

 

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

 


'*********************************************************************************************
'Copyright(C) 2020 Xarial Pty Limited
'Reference: https://www.codestack.net/solidworks-api/import-export/export-sheets-pdf/
'License: https://www.codestack.net/license/
'*********************************************************************************************
' Изменения и дополнения: Дербуш Олег aka Snake 60 (snake-60@bk.ru)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Последние изменения :: (18.11.2021) ::
''' в версии 1.0.4 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - Убрал косяк при сохранении чертежей в папку
''' в версии 1.0.3 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - Убрал дублирование открытых папок при каждом сохранении
''' в версии 1.0.2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - Если в чертеже 2 или более страниц, то создаются файлы в формате ИмяФайла - ИмяЛиста.pdf
' - Если в чертеже 1 страница, то создается файл в формате ИмяФайла.pdf
''' в версии 1.0.1 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - макрос сохраняет чертеж в формате PDF, создает папку PDF и открывает ее после сохранения
'*********************************************************************************************

Const INCLUDE_DRAWING_NAME As Boolean = True
Const FOLDER_FOR_SAVING As String = "" 'сохраняем в папку с чертежем
'Const FOLDER_FOR_SAVING As String = "PDF" 'сохраняем в указанную папку, папка создается автоматически

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Dim outFile As String
Dim outFolder As String
Dim outFolderStrip As String

Sub main()

    Set swApp = Application.SldWorks
    
try_:
    
    On Error GoTo catch_
    
    Dim swDraw As SldWorks.DrawingDoc
    
    Set swDraw = swApp.ActiveDoc
    
    Set swModel = swDraw
        
    If swModel.GetPathName() = "" Then
        Err.Raise vbError, "", "Пожалуйста, сохраните чертеж!"
    End If
        
    Dim vSheetNames As Variant
    
    Dim i As Integer

    Dim swSelMgr As SldWorks.SelectionMgr
    
    Set swSelMgr = swModel.SelectionManager
    
    Dim selSheetNames() As String
    
	'узнаем кол-во листов чертежа в документе
    For i = 1 To swSelMgr.GetSelectedObjectCount2(-1)
        
        If swSelMgr.GetSelectedObjectType3(i, -1) = swSelectType_e.swSelSHEETS Then
            
            If (Not selSheetNames) = -1 Then
                ReDim selSheetNames(0)
            Else
                ReDim Preserve selSheetNames(UBound(selSheetNames) + 1)
            End If
            Dim swSheet As SldWorks.Sheet
            Set swSheet = swSelMgr.GetSelectedObject6(i, -1)
            
            selSheetNames(UBound(selSheetNames)) = swSheet.GetName()
            
        End If
    Next
    
	'задаем количество листов
   Debug.Print "swSheet = " + Str(swSheet)
   Debug.Print "swSheet.GetName() = " + Str(swSheet.GetName()) переменной
    If (Not selSheetNames) = -1 Then
        vSheetNames = swDraw.GetSheetNames
    Else
        vSheetNames = selSheetNames
    End If
    
    'запускаем цикл обработки по кол-ву листов чертежа
    For i = 0 To UBound(vSheetNames)
        
        Dim sheetName As String
        sheetName = vSheetNames(i)
        
        Dim swExpPdfData As SldWorks.ExportPdfData
        Set swExpPdfData = swApp.GetExportFileData(swExportDataFileType_e.swExportPdfData)
        
        Dim errs As Long
        Dim warns As Long
        
        Dim expSheets(0) As String
        expSheets(0) = sheetName
        
        swExpPdfData.ExportAs3D = False
        swExpPdfData.ViewPdfAfterSaving = False
        swExpPdfData.SetSheets swExportDataSheetsToExport_e.swExportData_ExportSpecifiedSheets, expSheets
        
        Dim drawName As String
        drawName = swModel.GetPathName()
        drawName = Mid(drawName, InStrRev(drawName, "\") + 1, Len(drawName) - InStrRev(drawName, "\") - Len(".slddrw"))
        
        outFile = swModel.GetPathName()
        outFile = Left(outFile, InStrRev(outFile, "\"))
        'outFile = outFile & IIf(INCLUDE_DRAWING_NAME, drawName & "_", "") & sheetName & ".pdf"
		
        If FOLDER_FOR_SAVING = "" Then
            outFolder = outFile & FOLDER_FOR_SAVING
            outFolderStrip = outFolder
        Else
            outFolder = outFile & FOLDER_FOR_SAVING & "\"
            outFolderStrip = outFile & FOLDER_FOR_SAVING
        End If
        
        'если папка не существует, то
        If Not DirExists(outFolder) Then
            'создаем ее
            MkDir (outFolder)
        End If
        
        'если листов в чертеже 1, то
        If UBound(vSheetNames) = 0 Then
            'сохраняем PDF-файл в формате ИмяФайла.pdf
            outFile = outFolder & IIf(INCLUDE_DRAWING_NAME, drawName, "") & ".pdf"
        'иначе
        Else
            'сохраняем PDF-файл в формате ИмяФайла - ИмяЛиста.pdf
            outFile = outFolder & IIf(INCLUDE_DRAWING_NAME, drawName & "-", "") & sheetName & ".pdf"
        End If
        
        'если ошибка не произошла, то выполняем сохранение
        If False = swModel.Extension.SaveAs(outFile, swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, swExpPdfData, errs, warns) Then
            'иначе выводим сообщение об ошибке
            Err.Raise vbError, "", "Не удалось сохранить PDF в " & outFile
        End If
        
    'переходим к следующему листу чертежа
    Next
    
    If False <> swDraw.GetSaveFlag() Then
        If False = swDraw.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, errs, warns) Then
            Err.Raise vbError, "", "Не удалось сохранить чертеж"
        End If
    End If
    
	'открыть папку в которую сохраняется .pdf
    'OpenFolder
    
    GoTo finally_
    
catch_:
    
    swApp.SendMsgToUser2 Err.Description, swMessageBoxIcon_e.swMbStop, swMessageBoxBtn_e.swMbOk
    
finally_:


'автоматическое закрытие чертежа (кому это не нужно комментируем или удаляем строку)
'swApp.CloseDoc swDraw.GetTitle
    
End Sub

Function OpenFolder()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    
    IsFolderOpen (outFolder)

End Function

Function IsFolderOpen(folderpath$)

    With CreateObject("Shell.Application")
        Dim iWin As Object
        Dim PathCompare As String
        For Each iWin In .Windows
            PathCompare = Replace(iWin.LocationURL, "file:///", "")
            PathCompare = Replace(PathCompare, "%20", " ")
            PathCompare = Replace(PathCompare, "/", "\")
             If iWin.LocationName = FOLDER_FOR_SAVING And PathCompare = outFolderStrip Then
             'If iWin.LocationURL = "file:///C:/Имя%20папки" Then
                .Open iWin.LocationURL
                GoTo step1_
             End If
         Next
    End With
    OpenExplorerWithFileSelected (outFile)
step1_:
End Function

Function OpenExplorerWithFileSelected(filepath$)
'Проверка наличия файла
retval = Dir(filepath$)
    If retval <> "" Then
            Shell "explorer.exe /select, " & """" & filepath$ & """", vbNormalFocus
    End If
End Function

'Функция проверки существования дирректории
Function DirExists(outFolder As String) As Boolean
    On Error GoTo ErrorHandler
    DirExists = GetAttr(outFolder) And vbDirectory
ErrorHandler:
'Завершение функции
End Function

 

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

Уважаемый АвтоматТомпсона, а можно ли попросить Вашей подсказки по проблеме:

- есть список вырезов сварного изделия, типа рис.1

- там  свойствах Солид автоматом ставит в поле количества в спецификации пункт ДЛИНА

- в итоге в сборке, полученной из сварной детали через "Создать сборку", рис2, в спецификацию (рис 3) на чертеже периодически вместо количества попадает ДЛИНА. И выглядит как Деталь, 1234.56 шт 

 

Заметил, что длина как количество начинает глючить в производной детали, если редактировать свойства файла этой детали

 

Задолбался в свойствах списка вырезов ставить вариант -Нет- (тогда экспорт нормальный)

 

Можно ли как то прогнать список вырезов через макрос и проставить всем профилям вариант - Нет -?

Перерыл кучу макросов, к сожалению НИАСИЛИЛ рабочий вариант макроса. Искал и у буржуев - тоже проблема не решена

1.jpg

2.jpg

3.jpg

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

Здравствуйте, уважаемые пользователи форума, подскажите есть ли решения на следующие вопросы:

1.  Есть ли измененный макрос Roughness (столкнулся с проблемой, что данный макрос ставит слишком большой знак шероховатости (не по гост) )

2. Как изменить размер шрифта в TT (мне нужно, чтобы он ставил 5 шрифтом обозначения)

3.Есть ли библиотека стандартных изделий, которая подойдет под макрос SpecEditor (просто Solid лицензионный и нет Toolbox, а каждую модель не хочется переименовывать с помощью MProp)

4. Может ли SpecEditor группировать стандартные изделия по ГОСТ (Спецификация от iTools почему-то не подбирает наименования с моделей стандартных изделий (скорее всего из-за Toolbox))

Извиняюсь за глупые вопросы (только начинаю входить в профессию).

Спасибо за ответы!!

Ссылка на сообщение
Поделиться на других сайтах
13.10.2023 в 15:01, madalik сказал:

Уважаемый АвтоматТомпсона, а можно ли попросить Вашей подсказки по проблеме:

- есть список вырезов сварного изделия, типа рис.1

- там  свойствах Солид автоматом ставит в поле количества в спецификации пункт ДЛИНА

- в итоге в сборке, полученной из сварной детали через "Создать сборку", рис2, в спецификацию (рис 3) на чертеже периодически вместо количества попадает ДЛИНА. И выглядит как Деталь, 1234.56 шт 

 

Заметил, что длина как количество начинает глючить в производной детали, если редактировать свойства файла этой детали

 

Задолбался в свойствах списка вырезов ставить вариант -Нет- (тогда экспорт нормальный)

 

Можно ли как то прогнать список вырезов через макрос и проставить всем профилям вариант - Нет -?

Перерыл кучу макросов, к сожалению НИАСИЛИЛ рабочий вариант макроса. Искал и у буржуев - тоже проблема не решена

1.jpg

2.jpg

3.jpg

вы смотрели китайские решения по сварным деталям?

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

вы смотрели китайские решения по сварным деталям?

Ужасы говорите какие :)

Китайским к сожалению не владею, поэтому решений не видел

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

 

Добрый день, прошу помощи в вопросе применения сварных швов в SW2019.

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

 

Спасибо за ответ.

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

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

 

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

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

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

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

Можно еще пару вопросов на злобу дня:

1. Возможно ли заполнять св-ва сварных швов поля: материал или процесс из списка значений.

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

 

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

1. Возможно ли заполнять св-ва сварных швов поля: материал или процесс из списка значений.

По ощущениям Dassault прилепили сварку по ГОСТ, как наклейку, сбоку, полноценно не интегрируя в систему. Ибо текст через API прочитать еще возможно, а вот записать не получается. Я делал макрос и аддин с использованием WinAPI.

 

2 часа назад, Alex_72 сказал:

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

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

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

Можно еще пару вопросов на злобу дня:

1. Возможно ли заполнять св-ва сварных швов поля: материал или процесс из списка значений.

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

1. Св-ва заполнять можно вручную и они отобразятся в таблице на чертеже, никаких списков значений там нет- все придется набирать руками.

2. Логика простая - как швы расположены в дереве проектирования, в том же порядке и в таблице на чертеже.

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

- Можно добавлять только столбцы, скрывать(удалять) столбцы/строки и настраивать ширину/высоту столбца/строки. Вот и все.

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

Может кто видел макрос для сохранения чертежа в ПДФ, чтобы имя ПДФ-файла формировалось из Обозначения и Наименования. Ну и текущую дату, как опцию. 

У меня то система построена, когда имя файла равно обозначению, но на текущем месте работы народ зависает, когда файлы из одних цифр состоят. Просят Наименование добавлять, а мне вручную этого делать вообще неохота. :)

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

У меня то система построена, когда имя файла равно обозначению, но на текущем месте работы народ зависает, когда файлы из одних цифр состоят. Просят Наименование добавлять, а мне вручную этого делать вообще неохота. :)

Тогда логично чтобы таким же образом назывались и модели, и чертежи. И не будет проблем с именем файла pdf.

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

И не будет проблем с именем файла pdf.

Зато будут другие проблемы, т.к. у меня имя файла = Обозначение.

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

у меня имя файла = Обозначение

Это у тебя. Но им-то требуется другое. Или ты им передаешь только pdf, без моделей?

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

Зато будут другие проблемы, т.к. у меня имя файла = Обозначение.

 

По хорошему, имя файла = Обозначение_Наименование

Тогда никакой каши не будет.

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

Или ты им передаешь только pdf, без моделей?

Именно.

11 минут назад, Павлуха сказал:

По хорошему, имя файла = Обозначение_Наименование

Тогда никакой каши не будет.

Вопрос религиозный, на данном форуме обсуждался неоднократно. Я много лет работаю по системе имя файла = Обозначение. Никакой каши нет.  

В текущем месте работы бардак и хаос, потихоньку ставлю их на правильные рельсы, но их мозг пока впадает в ступор при виде голых Обозначений. :)

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

Именно.

Вопрос религиозный, на данном форуме обсуждался неоднократно. Я много лет работаю по системе имя файла = Обозначение. Никакой каши нет.  

В текущем месте работы бардак и хаос, потихоньку ставлю их на правильные рельсы, но их мозг пока впадает в ступор при виде голых Обозначений. :)

 

Наименование в свойствах ручками писать будете?

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

Наименование в свойствах ручками писать будете?

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

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • gudstartup
      лучше расточить резцом
    • Guhl
      А вы мануалы синтека по макросам смотрели?   Должны быть @502 и @503
    • Artas28
      Почему не заносятся параметры при калибровке смещения щупа? Syntec 220MA-5 Калибровка смещения щупа по X и по Y (O9802) Выходные параметры Сохраняются следующие данные: #502 = Смещение щупа по X #503 = Смещение щупа по Y Сделал программку как в книжке. (М60 включение датчика). А на выходе всё по нулям.     Если я сделаю Векторная калибровка радиуса наконечника щупа (O9804), Вместо O9803, то обычные измерительные циклы будут работать?  И у меня нету эталонного кольца. По расфрезерованному отверстию детальки можно  делать калибровку??
    • gudstartup
      можно назначить любую папку для карты памяти программой настройки
    • maxx2000
      @artberesta 2 раздела справки https://tflexcad.ru/help/cad/17/?ysclid=m3bnjiod40554176555 делается как и в любой другой CAD, протягиванием эскиза по траектории с вычитанием материала. 3D Построения. Опорная геометрия-3D путь-Проекция 3D пути на грань или тело Твердотельное моделирование-По траектории
    • artberesta
      Спасибо большое всем ответившим на мой вопрос. Я изучаю эту программу , и в силу своего возраста она дается мне тяжело. (Хотя и на русском языке) Я легко могу это сделать в 3 программах blender, fusion, zbruch. Если вам будет не сложно , покажите на примере как это сделать в t flex. Возможно , когда я это сделаю и пойму , я обязательно выложу ответ на рутубе.  
    • gudstartup
      @Madmax70 900 -ые параметры опций запишите отдельно так как их только вручную вводить нужно. это связано с тем что при установке того или иного бита опций меняется конфигурация системы и оа требует перезагрузки чтобы привести в соответствие память (выделить или убрать несколько кб)и включить установленные функции а при изменении размера памяти программ эта область полностью очищается и т.д. можете конечно  попробовать их ввести через 232 предварительно установив параметры связи но и reader/puncher inerface  может быть опциональным поэтому придётся соответствующий 9хх.х установить иначе связь вовсе не заработает. сколько раз я не пробовал вводить ни разу нормально все не ввелись может чего не так делал. да и на 10 11 серии фанука ввод опций только ручной через ипл меню
    • ALEKS
      Презентация пройдёт в Герцлии 5 декабря и в Кейсарии 26 ноября сего года. Записывайтесь у секретаршы Симатрона.
    • Artas28
      Что означает запись, например @135:=@127+@802;//(X*COR*POS) @140:=@135-#10 @  - ?  := ?  
    • Artas28
      Добрый день! Есть у кого программа для Inspection Plus. Измерение отверстия или вала по трем точкам (O9823). Желательно для Syntec. А то в станок O9804 Векторная калибровка радиуса сферического наконечника щупа загрузили, а измерение отв. по 3-м точкам нет:((
×
×
  • Создать...