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

Помогите пожалуйста в дороботки 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 пользователей

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




  • Сообщения

    • lem_on
      Твое образование деградация называется, в очередной раз убедился. 
    • Nata24
    • Maik812
    • sloter
      Крайняя версия, где этот плагин поддерживается официально - 2020. Дальше, вроде бы, то же можно, но с некими "танцами". Где то попадалось описание - поищите. Если такая задача будет регулярно, то имеет смысл. Если разово - имхо быстрее ручками достичь результата.
    • Guhl
      И не лень тебе, дурачку, писать такую простыню было? Иди, лучше, образование получи
    • aleksejj
      Здравствуйте в принципе вопрос закрыт нашел способы. Уже все на чпу отработали и отшлифовали.
    • BASH_HD
      Здравия желаю, знатоки Фанука, покинувшего Россию. Опишу свою проблему: Имеем станок fanuc robodrill 2008 год.   стойка 31i-А.   4 непрерывные оси имеем.   необходимо еще добавить индексную ось. Ладдер имеет подготовку под 5 ось.  Но он видимо универсальный под все рободриллы, а они есть пятиосевые. по дескрипшенам на стойку она поддерживает до 20 осей (4 непрерывных)  и то и другое это опции.   опция расширения от 3 базовых до 4 очевидно уже установлена. но в описании два варианта:   1 вариант:  Controllable axes expansion (each path) (including PMC axes and Cs axes)   2 вариант   Simultaneously controlled axes expansion (each path)   непонятно установлены оба пакета или последний. как они работают взаимо-дополняют друг друга или исключают. Никакой документации по названию опций и как определить какие именно опции установлены в станке я не нашел.   прикладываю информацию, которая может говорить о установленных опциях:   % SYSTEM CONFIGURATION    1.HARDWARE CONFIGURATION      NAME           ID-1     ID-2   SLOT +-------------+----------+--------+----+   MAIN BOARD       MAIN BOARD   00321 30 0                   CPU CARD     0041E 40 0 70000203          SERVO CARD   0010B 20 1                   PMC MODULE   00700 30 0                   FROM/SRAM    C3/03                       DISPLAY          DISP ID      1010                        OTHERS           MDI ID       02                           B.UNIT ID    00                           2.SOFTWARE CONFIGURATION      SYSTEM     SERIES  EDITION  +------------+--------+--------+   CNC(BASIC)     G143     07.0      CNC(OPT A1)    G143     07.0      CNC(OPT A2)    G143     07.0      CNC(OPT A3)    G143     07.0      CNC(MSG ENG)   G143     07.0      CNC(OPT A21)   G143     07.0      CNC(OPT A22)   G143     07.0      BOOT           60W2     0002      PMC(SYSTEM)    40A2     04.0      PMC(LADDER1)   472I       04      PMC(LADDER2)   472L       02      PMC(LAD DCS)   472J       04      SERVO          90ED     0014      SERVO          90E3     0001      SPINDLE-1      9D80     0008      GRAPHIC        60VH     0005      MACRO EXE2     471Y     0001      MACRO MGI-M    BJ12     0003      CEXELIB        GZ0K     02.0      CEXEAPL        472N     0004      MGILIB         GZ0J     02.5      MGIAPL         BX51     0009      NET CONTROL    656S     0002      EMBED ETHER    656R     0003      DEVNT SOFT     6577     0003      %   есть интересные файлы в папке SYSTEM (помимо всех обычных) NC1A OPT NC2A OPT NC3A OPT NCL1 OPT NCD1 OPT       потому вопрос первый - как понять какие опции касающиеся управляемых осей установлены в данный момент и что они позволяют. (понимаю что шанс 1%, но вдруг уже можно добавить ось без доустановки опций) тогда я сразу приобрету драйв и мотор.    вопрос второй - в нынешней ситуации, когда фанук официально никаких опций продать/установить не может   какие существуют варианты это сделать?  может есть смелые посредники официалы соседних стран, или материнскую плату отправить в другую страну и там прошить или же есть успехи хакерские в этом направлении на просторах нашей родины.   Прикладываю разные файлы со всеми параметрами станка. и системные.  OPR INF  тоже прикладываю, может пригодится. главное в чужую стойку не заливать.   да, можно конечно просто через M-коды управлять. сейчас так и подключаю. но это временный костыль. хочется на родном фанук железе все надежно собрать. FULL_PARAMETER_LIST.prm FULL_PARAMETER_LIST.cncidnum MAINTINF.000 OPRM_INF.000
    • Jenny
      Как-то не правильно залилось видео. Черный экран Это разные вещи? Я просто только только осваиваю. До этого сделала точно так же. И все хорошо было.   
    • Нафаня
      Добрый день! Сразу скажу что я не спец по бошертам но эти станки очень похожи на станки трумпф а точнее на их модели предыдущих поколений. Так вот, мне кажется что Вам нужно замерить длинну инструмента и понять от какой точки станок его расчитывает. Станки трумпф отсчитывают длинну инструмента от верхней кромки юстировчного кольца не учитывая хвостовик инструмента. В старых моделях станков трумпф указывалась фактическая длинна и то на сколько вы его сточили. прмер, длинна нового инструмента 38мм, вы его сточили на 1мм и соответственно в поле "переточка" вы указываете 1мм, ЧПУ станка высчитывает глубину погружения пуансона в матрицу. Параметр PU overlap могу предположить что это зазор матрицы для данного инструмента в вашем случае стоит 0.2мм а это значит что инструмент был собран под пробивку металла тощиной 1мм. возможно tool length это ход ползуна, хотя 71.2мм это как то многовато. Мой вам совет, напишите простую программу с одним этим инструментом и меняя параметры посмотрите как ведет себя пуансон.
    • Killerchik
      Команды обычно те же - в смысле М03. Я встречал М код, то есть надо было руками переключить, и ещё М код ввести, при том что на рукоятке были концевики. Но это дичь какая-то. Посмотрите, есть ли на Вашей рукоятке какие-то концевики.
×
×
  • Создать...