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

Макрос сохранения развертки в DWG


Vladimir_k55

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

Меня не интересуют шаблоны самого солида. У автокада тоже есть свои шаблоны, и вот когда солид делает dxf, он использует один из шаблонов самого автокада. Хотелось бы узнать какой...если это конечно вообще возможно. 

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


Спасибо за помощь, проблему решила самостоятельно. Указала солиду вручную путь к шаблону автокада для создания dxf.

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

Спасибо за помощь, проблему решила самостоятельно. Указала солиду вручную путь к шаблону автокада для создания dxf.

Теперь пожалуйста расскажите всем, что и как, желательно с рисунками, спасибо!

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

Если вам важно чтобы солид создавал dxf с учтём необходимых параметров (Шрифт, тип линий, может ещё какие-нибудь параметры) то вам необходимо прописать ему путь к уже настроенному шаблону Автокада. Шаблоны автокада часто лежат в коневой папке и вы их можете редактировать, или же вы сами можете создать в автокаде чертёж отредактировав его так как нужно и сохранить с расширением dwt куда угодно. Затем при сохранении развертки детали, выбираете "Сохранить как" выбираете расширение dxf, открываете "Параметры" сохранения. Шрифты выбираете "TrueType", в Пользовательском преобразовании ставите галочку на против "Включить". "Файл отображения"-это нужный вам отредактированный шаблон. Прописываете просто путь к этому файлу и теперь солид будет использовать его как шаблон по умолчанию для создания dxf. Даже если dxf генерируются макросом, все равно используется этот шаблон.

Насторйка параметров.png

Сохранить как.png

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

@Kometa_69 Спасибо за альтернативный вариант настройки сохранения DXF-файла, надо будет его попробовать и проверить (в данный момент у меня нет установленного Автокада).

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

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

@Snake 60 Да не за что) "Не показывать отображение при каждом перестроении" интересная штука но я пока не разобралась как работать в солиде со слоями, поэтому галочку оставила. Можно ли их вообще создавать на листовой детали или они работают только в чертеже?

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

@Snake 60 Мне вот только одно не понятно, если у меня установлен Автокад я понимаю где я могу найти шаблон для создания dxf. А если автокада нет, где солид берет это шаблон. Он заложен где-то в корневой папке. Вот только где, я так и не нашла:glare: 

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

Если вам важно чтобы солид создавал dxf с учтём необходимых параметров (Шрифт, тип линий, может ещё какие-нибудь параметры) то вам необходимо прописать ему путь к уже настроенному шаблону Автокада. Шаблоны автокада часто лежат в коневой папке и вы их можете редактировать, или же вы сами можете создать в автокаде чертёж отредактировав его так как нужно и сохранить с расширением dwt куда угодно. Затем при сохранении развертки детали, выбираете "Сохранить как" выбираете расширение dxf, открываете "Параметры" сохранения. Шрифты выбираете "TrueType", в Пользовательском преобразовании ставите галочку на против "Включить". "Файл отображения"-это нужный вам отредактированный шаблон. Прописываете просто путь к этому файлу и теперь солид будет использовать его как шаблон по умолчанию для создания dxf. Даже если dxf генерируются макросом, все равно используется этот шаблон.

Насторйка параметров.png

Сохранить как.png

Проверил, способ не работает, тупо подсунуть шаблон dwt не получится. У меня sw17sp5. Файл отображения это не шаблон автокада, а map файл настроек, это разные вещи

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

Проверил, способ не работает, тупо подсунуть шаблон dwt не получится. У меня sw17sp5. Файл отображения это не шаблон автокада, а map файл настроек, это разные вещи

Вот и у меня были такие же сомнения :g:спасибо, что проверил.

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

Здравствуйте, очень нужна ваша помощь. Есть ли похожий макрос на этот, но с некоторыми доработками. У меня уже есть готовая развертка в формате dxf,  мне нужно начертить сотни подобных деталей, которые будут увеличиваться по ширине на 10 мм, вручную чертить такое - *бнешся. А со скриптами я не очень хорош знаком. Solidworks 2017

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

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

С помощью таблицы параметров ( это делается за пару минут) создаете нужное количество конфигураций (хоть 200). Далее используете имеющиеся макросы без всяких дополнительных скриптов. Зачем все усложнять?

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

С помощью таблицы параметров ( это делается за пару минут) создаете нужное количество конфигураций (хоть 200). Далее используете имеющиеся макросы без всяких дополнительных скриптов. Зачем все усложнять?

Я просто не настолько прошаренный в солиде, больше использую его как автокад

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

Я просто не настолько прошаренный в солиде, больше использую его как автокад

Любой инструмент желательно использовать по назначению.

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

Если что непонятно - открываете справку изучаете, если после этого вопросы остаются - задаете на форуме.

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

Добрый день, есть код макроса из первых постов темы:

' Export Flat Pattern ---------------------------------10/26/09

' Preconditions: A Sheet metal part is open.

' Postconditions: Macro will export flat pattern view for all configuration(s)
' and save as dxf in the same location.

' ------------------------------------------------------------------------------
' Written by: Deepak Gupta (http://gupta9665.wordpress.com/)
' ------------------------------------------------------------------------------

Option Explicit

Sub main()

    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim vConfNameArr            As Variant
    Dim sConfigName             As String
    Dim nStart                  As Single
    Dim i                       As Long
    Dim bShowConfig             As Boolean
    Dim bRebuild                As Boolean
    Dim bRet                    As Boolean
    Dim CurFeature              As SldWorks.Feature

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc

' Is document active?

If swModel Is Nothing Then

    swApp.SendMsgToUser2 "A sheet metal part must be open.", swMbWarning, swMbOk

    Exit Sub

End If

 ' Is it a part document?

Dim modelType As Long

modelType = swModel.GetType

If modelType <> SwConst.swDocPART Then

    swApp.SendMsgToUser2 "A sheet metal part must be open.", swMbWarning, swMbOk

    Exit Sub

End If

        vConfNameArr = swModel.GetConfigurationNames

    For i = 0 To UBound(vConfNameArr)

        sConfigName = vConfNameArr(i)
        
bShowConfig = swModel.ShowConfiguration2(sConfigName)

bRebuild = swModel.ForceRebuild3(False)

Dim FilePath As String
Dim PathSize As Long
Dim PathNoExtension As String
Dim NewFilePath As String

FilePath = swModel.GetPathName
PathSize = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)

NewFilePath = PathNoExtension + sConfigName & ".DXF"

'Export Flat Pattern
bRet = swModel.ExportFlatPatternView(NewFilePath, 1)

Next i
End Sub

что нужно изменить для сохранения не разверток, а видов спереди ( или текущих) всех конфигураций детали? Спасибо.

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

что нужно изменить для сохранения не разверток, а видов спереди ( или текущих) всех конфигураций детали?

Макрос - сохраняет виды спереди всех конфигураций детали в dwg (если нужен dxf, то просто заменить двг на дхв в тексте макроса)

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

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim sModelName As String
Dim sPathName As String
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(0) As String
Dim vConfNameArr As Variant
Dim sConfigName As String
Dim i As Long
Dim bShowConfig As Boolean
Dim bRebuild As Boolean
Dim bRet As Boolean
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    sModelName = swModel.GetPathName
    vConfNameArr = swModel.GetConfigurationNames
For i = 0 To UBound(vConfNameArr)
    sConfigName = vConfNameArr(i)
    bShowConfig = swModel.ShowConfiguration2(sConfigName)
    bRebuild = swModel.ForceRebuild3(False)
    sPathName = swModel.GetPathName
    sPathName = Left(sPathName, Len(sPathName) - 7)
    sPathName = sPathName + "-" + sConfigName + ".dwg"
    Set swPart = swModel
    dataAlignment(0) = 0#
    dataAlignment(1) = 0#
    dataAlignment(2) = 0#
    dataAlignment(3) = 0#
    dataAlignment(4) = 0#
    dataAlignment(5) = 0#
    dataAlignment(6) = 0#
    dataAlignment(7) = 0#
    dataAlignment(8) = 0#
    dataAlignment(9) = 0#
    dataAlignment(10) = 0#
    dataAlignment(11) = 0#
    varAlignment = dataAlignment
    dataViews(0) = "*Front" '"*Current" *Front
    varViews = dataViews
    swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
Next i
End Sub

 

Можно одновременно и другие виды сохранять, если нужно

2015 SOLIDWORKS API Help - Export Part to DWG Example (VBA)

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

Макрос - сохраняет виды спереди всех конфигураций детали в dwg (если нужен dxf, то просто заменить двг на дхв в тексте макроса)

  Показать содержимое

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim sModelName As String
Dim sPathName As String
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(0) As String
Dim vConfNameArr As Variant
Dim sConfigName As String
Dim i As Long
Dim bShowConfig As Boolean
Dim bRebuild As Boolean
Dim bRet As Boolean
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    sModelName = swModel.GetPathName
    vConfNameArr = swModel.GetConfigurationNames
For i = 0 To UBound(vConfNameArr)
    sConfigName = vConfNameArr(i)
    bShowConfig = swModel.ShowConfiguration2(sConfigName)
    bRebuild = swModel.ForceRebuild3(False)
    sPathName = swModel.GetPathName
    sPathName = Left(sPathName, Len(sPathName) - 7)
    sPathName = sPathName + "-" + sConfigName + ".dwg"
    Set swPart = swModel
    dataAlignment(0) = 0#
    dataAlignment(1) = 0#
    dataAlignment(2) = 0#
    dataAlignment(3) = 0#
    dataAlignment(4) = 0#
    dataAlignment(5) = 0#
    dataAlignment(6) = 0#
    dataAlignment(7) = 0#
    dataAlignment(8) = 0#
    dataAlignment(9) = 0#
    dataAlignment(10) = 0#
    dataAlignment(11) = 0#
    varAlignment = dataAlignment
    dataViews(0) = "*Front" '"*Current" *Front
    varViews = dataViews
    swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
Next i
End Sub

 

Можно одновременно и другие виды сохранять, если нужно

2015 SOLIDWORKS API Help - Export Part to DWG Example (VBA)

Спасибо, за ответ. Но макрос не сохраняет ничего, просто пробегает по конфигурациям. 
Тот макрос, что я выкладывал, устраивал до поры, но мешают минусы:
1) Создаёт производную конфигурацию для каждой конфигурации в листовом металле.

2) Сохраняет вид спереди (когда деталь не из листового материала), а необходим текущий .
3) Долго отрабатывает при количестве конфигураций более 10, возможно из-за перестроений детали.
пытался один с другим скрестить - не получается (
Подскажите, пожалуйста, как добавить в макрос "Export Flat Pattern":
1) Сохранение файла перед выполнением макроса (потому что он иногда крашит SW).
2) Сохранение текущего вида (можно вместо развертки).
3) Ускорение работы (может путём отключения перестраивания).
4) После отработки макроса закрытие файла без сохранения (так созданные производные конфигурации не сохранятся).
или реализовать в макросе, который вы скинули, если он заработает, пункты 1,4

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

макрос не сохраняет ничего, просто пробегает по конфигурациям

Сохраняет норм. Запусти солид от админа. Двг сохраняются в папку с деталью, проверь права доступа на папку.

Чтоб не перестраивалось, закомментируй строчку bRebuild = swModel.ForceRebuild3(False)

Если нужен текущий вид, замени Front на Current - dataViews(0) = "*Front" '"*Current" *Front

 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
18.08.2020 в 17:51, Snake 60 сказал:

Огромное спасибо за макрос. К сожалению на моем производстве не применим. Часто убираю линии фасок, циковок, резьбовых отверстий. Есть-ли возможность появления окна с корректированием линий DXF?

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

Огромное спасибо за макрос. К сожалению на моем производстве не применим. Часто убираю линии фасок, циковок, резьбовых отверстий. Есть-ли возможность появления окна с корректированием линий DXF?

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

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

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

Если о стандартном окне очистки? То, есть макрос  с окном предосмотра, сохраняет текущую конфигурацию файла в формате "толщина материала""мм"_"Обозначение" "Наименование".dxf

Так и где он? :)

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

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

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

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

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

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

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

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

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

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

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




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