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

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


Vladimir_k55

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

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

Макрос dxf с окном предосмотра для текущего исполнения.

Работает норм. Для солида с инглишфейсом в макросе нужно менять "Развертка" на "Flat-Pattern"

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


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

Работает норм. Для солида с инглишфейсом в макросе нужно менять "Развертка" на "Flat-Pattern"

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

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

ссылки на макросы для пакетных сохранений разверток и деталей без разверток в dxf

Посмотри этот, сохраняет деталь в двг (для дхв поменяй в коде dwg на dxf). Чуть выше макрос для сохранения развёрток

 

 

 

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

Посмотри этот, сохраняет деталь в двг (для дхв поменяй в коде dwg на dxf). Чуть выше макрос для сохранения развёрток

 

 

 

Вот этот как раз  и пробовал. При запуске - молчание

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

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

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

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

 

Тоже самое. Перебирает все конфигурации, открывает на доли секунд чертежи и все. Ничего не сохраняет

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

Перебирает все конфигурации, открывает на доли секунд чертежи и все. Ничего не сохраняет

Если солид в русском интерфейсе, попробуй заменить в макросе "Front" на "Спереди" или сделать деталь в английском интерфейсе и шаблон возьми английский для проверки, может тоже макрос зависит от языка

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

Если солид в русском интерфейсе, попробуй заменить в макросе "Front" на "Спереди" или сделать деталь в английском интерфейсе и шаблон возьми английский для проверки, может тоже макрос зависит от языка

Спасибо! Помогло

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

Если солид в русском интерфейсе, попробуй заменить в макросе "Front" на "Спереди" или сделать деталь в английском интерфейсе и шаблон возьми английский для проверки, может тоже макрос зависит от языка

А не знаешь, как убрать надпись вида на созданном файле, у меня, например, прибавляется слово "Спереди"?

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

Товарищи, такое дело, пользуюсь Макросом "Export Flat Pattern View" для сохранения развертки в DXF, но со временем (через 1000 деталей) макрос начинает сохранять не в масштабе, при этом CypCut и Автокад открывает эти файлы нормально. Что делать?

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

как убрать надпись вида на созданном файле, у меня, например, прибавляется слово "Спереди"

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

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

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
    
    ' Named View
swModel.ShowNamedView2 "", 1
swModel.ViewZoomtofit2
    
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) = "" '"*Current" *Front
    varViews = dataViews
    swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
Next i
End Sub

 

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

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

  Скрыть содержимое

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
    
    ' Named View
swModel.ShowNamedView2 "", 1
swModel.ViewZoomtofit2
    
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) = "" '"*Current" *Front
    varViews = dataViews
    swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
Next i
End Sub

 

Спасибо! Протестирую!

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

Исправленная версия для английского и русского интерфейса

Наверное, чтоб совсем уж для любого интерфейса (или переименует кто фичерс), проверку наличия развёртки по типу можно делать GetTypeName = "FlatPattern" как в примере из справки 2012 SOLIDWORKS API Help - Exclude Faces Before Flattening Example (VBA)

 

Ссылка на сообщение
Поделиться на других сайтах
Вадим Митрофанович

Уважаемые форумчане. Перепробовал 10 макросов для ДХФ. Выяснилось, что одни работают только для развертки, а другие для платиков! Если в детали не указано, что это,типа развертка, то макрос не работает! Есть ли макрос ДХФ, что бы работал на любую деталь, например для детали для лазера и для гибочной детали.

Вот макросы, что пробовал. И те, что остались для работы

Снимок.JPG

Изменено пользователем Вадим Митрофанович
Ссылка на сообщение
Поделиться на других сайтах
22.03.2021 в 12:41, Вадим Митрофанович сказал:

Уважаемые форумчане. Перепробовал 10 макросов для ДХФ. Выяснилось, что одни работают только для развертки, а другие для платиков! Если в детали не указано, что это,типа развертка, то макрос не работает! Есть ли макрос ДХФ, что бы работал на любую деталь, например для детали для лазера и для гибочной детали.

Вот макросы, что пробовал. И те, что остались для работы

Снимок.JPG

Макрос не всемогущий. Он призван программными функциями сделать за один клик то, что иначе пришлось бы каждый раз настраивать по несколько минут щёлкая мышью. Поэтому, если деталь изначально прорисована, как "неразворачиваемая", а соответственно и нет конфигурации с развёрткой, то макрос тоже ее не сделает. Разве что использовать макрос, который сначала создаст из твердого тела согнутое, но врядли такой вообще существует. Мне не встречался. 

Ссылка на сообщение
Поделиться на других сайтах
22.03.2021 в 12:41, Вадим Митрофанович сказал:

Уважаемые форумчане. Перепробовал 10 макросов для ДХФ. Выяснилось, что одни работают только для развертки, а другие для платиков! Если в детали не указано, что это,типа развертка, то макрос не работает! Есть ли макрос ДХФ, что бы работал на любую деталь, например для детали для лазера и для гибочной детали.

Вот макросы, что пробовал. И те, что остались для работы

Снимок.JPG

Добрый день, попробуйте этот:
 

Sub main()

    Dim swApp            As SldWorks.SldWorks
    Dim Part             As Object
    Dim boolstatus       As Boolean

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Save

    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
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

swApp.CloseDoc ""

End Sub

 

Ссылка на сообщение
Поделиться на других сайтах
Вадим Митрофанович
23 часа назад, mrNicetone сказал:

Добрый день, попробуйте этот:
 


Sub main()

    Dim swApp            As SldWorks.SldWorks
    Dim Part             As Object
    Dim boolstatus       As Boolean

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Save

    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
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

swApp.CloseDoc ""

End Sub

А готовый макрос ДХФ и для гибочной детали и для просто платика, у вас есть?

Я в этом не понимаю.

 

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

to dxf.swp (dropmefiles.com)

22 минуты назад, Вадим Митрофанович сказал:

Доступ на скачку закрыт

to dxf.swp теперь скачивание доступно

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

важный момент забыл сказать.
в нелистовой детали макрос сохраняет в dxf вид параллельный базовой плоскости "спереди" вне зависимости как расположена деталь.

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

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

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

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

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

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

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

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

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

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

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




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