Jump to content

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


Operator 1945

Recommended Posts

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

Link to post
Share on other sites


UnPinned posts
Sturmann
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? 

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

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

 

Link to post
Share on other sites
Operator 1945
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, "\"))
    

Link to post
Share on other sites
Sturmann
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

Link to post
Share on other sites
Operator 1945

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

 

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

Link to post
Share on other sites
Sturmann
2 минуты назад, Operator 1945 сказал:

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

 

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

Link to post
Share on other sites
Operator 1945
4 минуты назад, Sturmann сказал:

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

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

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

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

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

Link to post
Share on other sites
Sturmann
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. 

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

Link to post
Share on other sites
Operator 1945
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 И потом уже там со своими листами разбирается под лазер 

 

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

Link to post
Share on other sites
vasyam
1 час назад, Operator 1945 сказал:

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

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

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

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

 

Link to post
Share on other sites
Maik812

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

Link to post
Share on other sites
Operator 1945
1 час назад, vasyam сказал:

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

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

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

 

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

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

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

 

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

Link to post
Share on other sites
Snake 60

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

Link to post
Share on other sites
Kelny
19 часов назад, Operator 1945 сказал:

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

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

Link to post
Share on other sites
Operator 1945
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 сказал:

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

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

Link to post
Share on other sites
Operator 1945
2 часа назад, Kelny сказал:

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

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

Link to post
Share on other sites
Snake 60

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

Link to post
Share on other sites
Maik812
3 часа назад, Operator 1945 сказал:

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

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

 

Link to post
Share on other sites
Operator 1945
10 часов назад, Snake 60 сказал:

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

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

 

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

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

 

да

 

Link to post
Share on other sites
Maik812
1 час назад, Operator 1945 сказал:

да

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • karachun
      В материале тоже есть определенное демпфирование но если брать сталь и другие металлы но потери внутри материала будут на порядок - два меньше чем потери в местах крепления деталей конструкции вместе. Вот, даже в справке солидворкса есть отдельно коєффициенты для материалов и для конструкций. https://help.solidworks.com/2018/russian/SolidWorks/cworks/r_viscous_damping_ratios.htm
    • Гранник
      Мое любимое место:   И все понятно, да?
    • Hikoo_1918
      В том-то и беда, что очень часто приходится спайном выделять объект для вида т.к он или вытянутый, или находится под углом. Думал мб кто-то победил эту шляпу или хотя бы знает последовательность действия. при которой такая штука возникает 100%, чтобы в дальнейшем избегать такого
    • kkk
      Бывает. Решения не знаю. Знаю только то, что таких глюков у меня не бывает при использовании штатной окружности, если рисовать свой профиль, то вылезают такие глюки.
    • Plumber
      Попробовать запустить установку SW  в режиме исправления, ну а лучше всего произвести чистую установку и выбирать только те компоненты, которые действительно нужны.
    • karachun
      @an_rushin Никто не верит расчетчикам, кроме самих расчетчиков. Все верят экспериментаторам кроме самих экспериментаторов.
    • Chivotangi
      @Quaoar Здравствуйте! Очень заинтересовала Ваша, работа, можете поделиться еще раз, ежели это возможно конечно? Спасибо!
    • Fedor
      На Западе иная концепция. Мне доводилось проектировать фундаменты для больших станков из железобетона. Там изготовитель станков давал просто план приямков и всяких закладных. И требования на прогибы. При стотонной нагрузке приложенной в некоторых точках прогиб в других точках 0.5 мм. Они размещают такое оборудование в горах на скалах и там нет проблем, а мы , чтобы спасти гидроэнергетику страны, должны были разместить на берегу Невы в болоте, по существу .  Ничего справились :) 
    • Plumber
      Не знаю, какая цель преследуется при использовании данного инструмента, но повторюсь - SW не совсем та программа, в которой необходимо делать подобные манипуляции. Для качественной векторизации растровых исходников, лучше всего использовать инструменты, которые это делают намного лучше, к примеру CorelDRAW.
    • gudstartup
      Если у вас нет dual safety check то и кнопка вам не нужна в противном случае  она как правило активирована Ее можно временно отключить но для этого нужно знать пароль 3225 если он введен то изменить 1902 параметр не удастся.   А также нужно удалить DSC ладдер  иначе будет ошибка 
×
×
  • Create New...