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

Помогите пожалуйста в дороботки SolidWorks макроса по выгрузке DXF формата


Operator 1945

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

Всем привет Работаю на железных дверях конструкторм нужна помощь в дороботке макроса Сам макрос работает но нужно чтоб он мне еще создавал там же подпапки по разделению по металлу Допустим папка с 0,5 папка с 1,2 и так далее Чтоб шло деление по металлам Так как в дальнейшем я их группирую и отправляю в цех заготовки на лазер В одной сборке может быть разный металл Прошу помощи у знатоков Зарание спасибо
Нужно только допилить Сам пробовал но что-то шло все время не так Решил попросить Вас товарищи
Сам макрос
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2

Public swModel As SldWorks.ModelDoc2
Public swApp As SldWorks.SldWorks
Public PathOfDirectory As String ' каталог, в котором находится сборка
Public PathOfLocks As Variant
Public DOOR As String ' тип косяка

Sub main()
Dim bRebuild As Boolean
Dim successRebuild As Integer
Dim path As String
Dim swsheetmetal As SldWorks.SheetMetalFeatureData

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

' каталог, в котором находится сборка


PathOfDirectory = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ""))
PathOfLocks = PathOfDirectory

' тип косяка
path = Left(PathOfDirectory, Len(PathOfDirectory) - 1)
DOOR = Right(path, Len(path) - InStrRev(path, ""))

' rebuild part
bRebuild = swModel.EditRebuild3()
bRebuild = swModel.EditRebuild3()
If bRebuild Then
Debug.Print "Successful rebuild of part."
Else
successRebuild = MsgBox("UnSuccessful rebuild of part. Do you still want to proceed export to dxf?", 4)
'Debug.Print "successRebuild: " & successRebuild
If successRebuild <> 1 And successRebuild <> 6 Then
End
End If
End If
swModel.ShowNamedView2 "*Спереди", 1
swModel.ViewZoomtofit2


UserForm1.Show

End Sub

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


UnPinned posts
11 часов назад, Operator 1945 сказал:

Всем привет Работаю на железных дверях конструкторм нужна помощь в дороботке макроса Сам макрос работает но нужно чтоб он мне еще создавал там же подпапки по разделению по металлу Допустим папка с 0,5 папка с 1,2 и так далее Чтоб шло деление по металлам Так как в дальнейшем я их группирую и отправляю в цех заготовки на лазер В одной сборке может быть разный металл Прошу помощи у знатоков Зарание спасибо
Нужно только допилить Сам пробовал но что-то шло все время не так Решил попросить Вас товарищи
Сам макрос
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2

Public swModel As SldWorks.ModelDoc2
Public swApp As SldWorks.SldWorks
Public PathOfDirectory As String ' каталог, в котором находится сборка
Public PathOfLocks As Variant
Public DOOR As String ' тип косяка

Sub main()
Dim bRebuild As Boolean
Dim successRebuild As Integer
Dim path As String
Dim swsheetmetal As SldWorks.SheetMetalFeatureData

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

' каталог, в котором находится сборка


PathOfDirectory = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ""))
PathOfLocks = PathOfDirectory

' тип косяка
path = Left(PathOfDirectory, Len(PathOfDirectory) - 1)
DOOR = Right(path, Len(path) - InStrRev(path, ""))

' rebuild part
bRebuild = swModel.EditRebuild3()
bRebuild = swModel.EditRebuild3()
If bRebuild Then
Debug.Print "Successful rebuild of part."
Else
successRebuild = MsgBox("UnSuccessful rebuild of part. Do you still want to proceed export to dxf?", 4)
'Debug.Print "successRebuild: " & successRebuild
If successRebuild <> 1 And successRebuild <> 6 Then
End
End If
End If
swModel.ShowNamedView2 "*Спереди", 1
swModel.ViewZoomtofit2


UserForm1.Show

End Sub

Здравствуйте. Не совсем понял ваш код. Где в нём сохранение в dxf? 

Где присвоение имени новым файлам? 

Где каталог куда они должны сохраняться? 

 

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

Здравствуйте. Не совсем понял ваш код. Где в нём сохранение в dxf? 

Где присвоение имени новым файлам? 

Где каталог куда они должны сохраняться? 

 

 

 ' каталог, в котором находится сборка
    PathOfDirectory = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
    PathOfLocks = PathOfDirectory
    ' тип косяка
    path = Left(PathOfDirectory, Len(PathOfDirectory) - 1)
    DOOR = Right(path, Len(path) - InStrRev(path, "\"))
    

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

 

 ' каталог, в котором находится сборка
    PathOfDirectory = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))
    PathOfLocks = PathOfDirectory
    ' тип косяка
    path = Left(PathOfDirectory, Len(PathOfDirectory) - 1)
    DOOR = Right(path, Len(path) - InStrRev(path, "\"))
    

Где сборка что понял. 

А где сохранение в dxf? 

http://help.solidworks.com/2017/english/api/sldworksapi/save_drawing_as_dxf_example_vb.htm

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

https://prnt.sc/sSQn9rDKLOSZ Вот оставил ссылку Принта-скрина  там полность отчетливо видно весь код Код лично я не писал Но он рабочий

 

Что не ужели хитрый такой код что не смог разобраться 

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

https://prnt.sc/sSQn9rDKLOSZ Вот оставил ссылку Принта-скрина  там полность отчетливо видно весь код Код лично я не писал Но он рабочий

 

А в форме есть какой нибудь код? 

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

А в форме есть какой нибудь код? 

Можно уточнить какой код Если более подробно Собираешь дверь на уровнениях Потом запускаешь этот макрас Он тебе дает табличку небольшую Типа напиши как будет называться папка Пишишь любое название И он тебе выгружает папку с этим название в сому папку со сборокой где все находиться И в той самой папки которую ты обозвал он все детали выгружает в формате DXF  и их там тьма огромная И ты потом сомастоятельно создаешь еще папки И раскидываешь этот хлам по папка-толщинам Работа капец геморойная Надо как-то дописать этот дурацкий код Чтоб он создавал под -папки по толщинам Потому что этот делать каждый день Это ужас

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

А в форме есть какой нибудь код? 

Или будьте добры есть какой-нибудь другой макрос Который будет все этот делать Чтоб выгружал все по папка толщинам металла Но есть одно условие Не надо чтоб он выгружал именно по-детально То есть из сборки он берет показывете тебе деталь потом выгружает  И так какждую деталь Таких макрасов вагон в сети Я пока одну дверь по детально буду выгружать у меня весь рабочий день уйдет Я так уже пробывал выгрузить одну дверь У меня мин 30 ушло только на одну дверь А этот макрос который скинул Он без паказа все выгружает примерно 15-20 сек Так как там деталей вагон 

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

Можно уточнить какой код Если более подробно Собираешь дверь на уровнениях Потом запускаешь этот макрас Он тебе дает табличку небольшую Типа напиши как будет называться папка Пишишь любое название И он тебе выгружает папку с этим название в сому папку со сборокой где все находиться И в той самой папки которую ты обозвал он все детали выгружает в формате DXF  и их там тьма огромная И ты потом сомастоятельно создаешь еще папки И раскидываешь этот хлам по папка-толщинам Работа капец геморойная Надо как-то дописать этот дурацкий код Чтоб он создавал под -папки по толщинам Потому что этот делать каждый день Это ужас

Или будьте добры есть какой-нибудь другой макрос Который будет все этот делать Чтоб выгружал все по папка толщинам металла Но есть одно условие Не надо чтоб он выгружал именно по-детально То есть из сборки он берет показывете тебе деталь потом выгружает  И так какждую деталь Таких макрасов вагон в сети Я пока одну дверь по детально буду выгружать у меня весь рабочий день уйдет Я так уже пробывал выгрузить одну дверь У меня мин 30 ушло только на одну дверь А этот макрос который скинул Он без паказа все выгружает примерно 15-20 сек Так как там деталей вагон 

Ок. А сколько в двери деталей которые нужно вырезать на лазере? Просто порядок : их 10 или 1000? Я имею ввиду уникальных деталей. Если деталь повторяется 5 раз это всё равно одна деталь. 

https://www.techonthenet.com/excel/formulas/mkdir.php#:~:text=The Microsoft Excel MKDIR statement,function (VBA) in Excel.

 

Создание парки в vba. 

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

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

Ок. А сколько в двери деталей которые нужно вырезать на лазере? Просто порядок : их 10 или 1000? Я имею ввиду уникальных деталей. Если деталь повторяется 5 раз это всё равно одна деталь. 

Ага понял вас Повторяющихся деталей нету !!!!! в основном идут толщины 0,5 1,2 1,4 1,8 В одной двери бывают все эти толщины примерно от 14 деталей до 40-45 деталий И у них все разные толщины Я с этип просто употеваю И вот придставте этот макрос пихает все в одну папку И тебе надо все это разбирать по толщинам детали А тебе дадут заявок кучу И капец и так каждый божи день Надо как-то упростить себе задачу Потом из одной двери раскидал все по толщинам все детали и отправляешь в цех заготовки И там лазерщик уже сам все видет по папка м  что тут детали из 1,4 Тут в папке 1,2 И потом уже там со своими листами разбирается под лазер 

 

3 минуты назад, Operator 1945 сказал:

Ага понял вас Повторяющихся деталей нету !!!!! в основном идут толщины 0,5 1,2 1,4 1,8 В одной двери бывают все эти толщины примерно от 14 деталей до 40-45 деталий И у них все разные толщины Я с этип просто употеваю И вот придставте этот макрос пихает все в одну папку И тебе надо все это разбирать по толщинам детали А тебе дадут заявок кучу И капец и так каждый божи день Надо как-то упростить себе задачу Потом из одной двери раскидал все по толщинам все детали и отправляешь в цех заготовки И там лазерщик уже сам все видет по папка м  что тут детали из 1,4 Тут в папке 1,2 И потом уже там со своими листами разбирается под лазер 

 

Практицески нету !!!! Макрос это тоже учитывает и выгружает то что подсвечено в сборке !!!! 

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

Можно уточнить какой код

Тыкните в UserForm1 правой кнопкой мыши и выберите пункт ViewCode, выложите  то что откроется

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

Без названия.png

 

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

А чем вам не нравится в имени файла толщина и выборка просто двумя клацками нужных файлов файлов?

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

Тыкните в UserForm1 правой кнопкой мыши и выберите пункт ViewCode, выложите  то что откроется

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

Без названия.png

 

Спасибо огромное что помогаете Я вам вечером скину Сейчас работой загружен

1 час назад, Maik812 сказал:

А чем вам не нравится в имени файла толщина и выборка просто двумя клацками нужных файлов файлов?

 

Мне все нравиться в этом макросе Но то что он в папку выгружает все фалы dxf а мне нужно чтоб в основной папки он делал под папки с толщинами Тоесть я когда запускаю макрас Он мне выдает табличку Мол введите название папки Я все ввожу название папки И он мне все пихает в эту папку все файлы dxf А мне нужно что он еше делал под папки в основной папки Так как деталей много и они все разной толщины Спасибо что подключились к разговору Может вы что поможете

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

@Operator 1945 Вы бы лучше выложили полностью макрос. тогда точно можно будет помочь. "На пальцах" объяснить вряд ли получиться...

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

Допустим папка с 0,5 папка с 1,2 и так далее Чтоб шло деление по металлам

Если это детали полученные инструментом Листовой металл, то можно зачитать  Глобальную переменную: ТОЛЩИНА и взяв от туда размер толщины при экспорте в нужный формат сохранять в соответствующие подпапки или иное нужное место (а может и сразу сформировать заказ и отправить письмо/файлы куда следует).

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

Тыкните в UserForm1 правой кнопкой мыши и выберите пункт ViewCode, выложите  то что откроется

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

Без названия.png

 

 

Вот что показало  https://prnt.sc/C1bOvUI0Y-G6 вот принт-скрин Сюда не дает мне выкидывать скрнишоты Говорит брузер не могу 

3 минуты назад, Operator 1945 сказал:

 

Вот что показало  https://prnt.sc/C1bOvUI0Y-G6 вот принт-скрин Сюда не дает мне выкидывать скрнишоты Говорит брузер не могу  Вот сам макрос https://prnt.sc/Z8F5ufK68S0S

 

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

@Operator 1945 Вы бы лучше выложили полностью макрос. тогда точно можно будет помочь. "На пальцах" объяснить вряд ли получиться...

Вот он сам Макрос https://prnt.sc/ja9Ldz6U7tPF Могу только ссылками кидать Скрины не дает сюда выкинуть Браузер рукаеться на этот сайт

 

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

@Operator 1945 Вы бы лучше выложили полностью макрос. тогда точно можно будет помочь. "На пальцах" объяснить вряд ли получиться...

 

8 часов назад, Maik812 сказал:

А чем вам не нравится в имени файла толщина и выборка просто двумя клацками нужных файлов файлов?

Вы читали мою статью ???? И  мою проблема И для чего ее нужно решить ???? 

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

Если это детали полученные инструментом Листовой металл, то можно зачитать  Глобальную переменную: ТОЛЩИНА и взяв от туда размер толщины при экспорте в нужный формат сохранять в соответствующие подпапки или иное нужное место (а может и сразу сформировать заказ и отправить письмо/файлы куда следует).

Здрасте Да у меня все из листового металла И работаю в своей модели только через глобальные уровнения Можн орасписать что да как вот вам скрин https://prnt.sc/c1XOdZDovd-4 Там пометил где указываю толщины изделий 

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

@Operator 1945  в чём проблема выложить макрос на любой файло-обменник и запостить здесь ссылку? Вы понимаете, что на Ваших скринах не весь код? Да и набирать руками со скрина, чтобы его воспроизвести - то еще удовольствие.

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

И работаю в своей модели только через глобальные уровнения

В конфигурациях сохраняются изменения в глобальных переменных? или как раньше не может?

 

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

@Operator 1945  в чём проблема выложить макрос на любой файло-обменник и запостить здесь ссылку? Вы понимаете, что на Ваших скринах не весь код? Да и набирать руками со скрина, чтобы его воспроизвести - то еще удовольствие.

https://disk.yandex.ru/d/WInGXQyfkT751g Вот держи

 

9 часов назад, Maik812 сказал:

В конфигурациях сохраняются изменения в глобальных переменных? или как раньше не может?

 

да

 

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

да

нет или не может? есть конфигурации разные с разными переменными?

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

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

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

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

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

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

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

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

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

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

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




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