Jump to content

Макрос экспорта из сборки файлов IGS с пользовательскими свойствами в именах файлов.


Recommended Posts

dicty

Всем здравствуйте!

Для файлов DXF довольно много прекрасных макросов, и с GUI, и -без, а вот для IGS (SAT, STEP,Parasolid) - как-то скудно (или плохо искал).

Пользуемся простеньким макросом (по сути - файл/сохранить как/IGS) для экспорта IGS для лазерного трубореза , который при активации в сборке вываливает в то же место, и сборка, файлы (с учетом конфигураций добавляется -01, 02 в имя файла).

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

 

Вопрос  в том, чтобы в имя файла добавлять пользовательские свойства, после этого просто удаляются из общей массы ненужные файлы, глядя на Материал в названии файла.  Ну а количество берется тоже из свойств (макрос записывает значение для макроса DXF)

Кто-то может помочь с макросом? Или, возможно, идеей? (в древней теме про такой же вопрос @Kelny отсылал к хелпу, но моих компетенций, видимо недостаточно для осовения этой науки) 

 

Макрос, который создает DXF выдает нам название файла и формирует папки в виде:

Const OUT_NAME_TEMPLATE As String = "[Развертка]\Толщина <$CLPRP:Толщина листового металла>мм\<_FileName_> (исп.<_ConfName_>) - <$PRP:SWP-Материал> - <$CLPRP:Толщина листового металла>мм - R <$CLPRP:Радиус сгиба> - K <$CLPRP:Допуск сгиба>  <$PRP:Qty> шт..dxf"
 

Вот что-то примерное и хотелось бы для IGS.

Сейчас вот это работает:

 

Option Explicit

Dim swApp        As SldWorks.SldWorks
Dim swModel      As SldWorks.ModelDoc
Dim nPath        As String
Dim FileName     As String
Dim NewFileName  As String
  
Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    
        If swModel Is Nothing Then
        swApp.SendMsgToUser2 "Please open a SolidWork Part/Assembly first and try again!!", swMbWarning, swMbOk
    Exit Sub
End If
    
        If swModel.GetType = swDocDRAWING Then
        swApp.SendMsgToUser2 "Please open a SolidWork Part/Assembly first and try again!!", swMbWarning, swMbOk
    Exit Sub
End If

    
        nPath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ".") - 1)
        swModel.SaveAs nPath & ".igs"
           
        FileName = nPath & ".igs"

End Sub

Link to post
Share on other sites


UnPinned posts
Kelny
27 минут назад, dicty сказал:

Макрос, который создает DXF выдает нам название файла и формирует папки в виде:

Const OUT_NAME_TEMPLATE As String = "[Развертка]\Толщина <$CLPRP:Толщина листового металла>мм\<_FileName_> (исп.<_ConfName_>) - <$PRP:SWP-Материал> - <$CLPRP:Толщина листового металла>мм - R <$CLPRP:Радиус сгиба> - K <$CLPRP:Допуск сгиба>  <$PRP:Qty> шт..dxf"
 

Вот что-то примерное и хотелось бы для IGS.

Пробовали заменить .DXF на .IGS и запустить макрос?

Link to post
Share on other sites
dicty
Posted (edited)
19 минут назад, Kelny сказал:

Пробовали заменить .DXF на .IGS и запустить макрос?

Не пробовал, потому что в том макросе идет отбор деталей из листового материала, а они как раз мне и не нужны.

Razvertka All_example.swp

UPD: Пробовал, не отрабатывает, выдаёт ошибку

Edited by dicty
Link to post
Share on other sites
Chuvak

@dicty  Я как-то писал на заказ макрос очень подходящий под Ваши требования. Если Вы предоставите пример модели сборки в Solidworks, укажите версию программы и более подробное описание задачи, то за некоторое вознаграждение и в короткие сроки можно реализовать Ваши требования.

Вам нужен макрос наподобие этого ?

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

 

Edited by Chuvak
Link to post
Share on other sites
Snake 60

@Chuvak А он выравнивает трубы созданные под углом+ скосы на концах труб? Имею ввиду, чтобы поменялась система координат в такой детали одной из осей вдоль самого длинного размера?

Link to post
Share on other sites
Chuvak

Заказчик для данного макроса таких требований не ставил, да и я сам не уверен, что такое можно реализовать программно, но точно не знаю, не копал так глубоко.

@Snake 60 , я забыл сказать, что данный макрос отбирает из главной сборки только детали, сделанные с помощью инструментa сварные детали ( метод IsWeldment), и сохраняет в них отдельно тела в файл igs.

Link to post
Share on other sites
Chuvak

Насчёт скосов не совсем понял, но реализовать выравнивание системы координат вдоль самой длинной стороны трубы скорее всего возможно, почему бы и нет)

Link to post
Share on other sites
Snake 60
1 час назад, Chuvak сказал:

Насчёт скосов не совсем понял

Я имел ввиду трубы, которые являются раскосинами, допустим в фермах. У них система координат наследуется от многотельной детали и в ней труба повернута на произвольный угол (согласно ее положения в сборке) + такая труба имеет подрезку на концах. Такую деталь скармливать труборезу черевато, Обычно народ делает новую систему координат, так чтобы одна из осей была параллельна длине (желательно чтобы это была Х координата, хотя не обязательно) и только потом экспортируют в IGS с выбором этой СК. Вопрос, реализуемо ли создание СК || длине трубы средствами API? Есть пример, хотелось бы глянуть...

Link to post
Share on other sites
dicty
16 часов назад, Chuvak сказал:

@dicty  Я как-то писал на заказ макрос очень подходящий под Ваши требования. Если Вы предоставите пример модели сборки в Solidworks, укажите версию программы и более подробное описание задачи, то за некоторое вознаграждение и в короткие сроки можно реализовать Ваши требования.

Вам нужен макрос наподобие этого ?

 

Да, очень похоже на то, что нужно. В ЛС озвучьте, пожалуйста, условия.

SW2022.

ТЗ очень простое: запуск макроса из сборки, сохраняем все активные детали всех уровней сборки в IGS, в имя файла IGS добавляем пользовательские свойства.

Link to post
Share on other sites
Chuvak

@Snake 60 По моему мнению, в этой операции нет большого смысла, т.к. трубы скорее всего выравнивают в программе. которая идет в придачу к станку. В Solidworks это сделать можно, но геморройно)

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.

  • Сообщения

    • maxx2000
      @Ветерок , Максимка не может установить все системы, поэтому делает предположения касательно тех или иных возможностей.
    • DJ Astro
      @amateur2009 привет, коллега по несчастью)))) много лет CAD/CAM-лю в Creo, сейчас нужно CAD-ить в NX. И после Creo это боль, унижения и страдания.    как заполучить в эскиз линию образующей поверхности вращения? Видимо, как и с пересечениями:  
    • Ветерок
      Крео может. С разверткой. Только он не скручивает посредине, а добавляет скрученный участок к краю. Это если в шитметале. Может скрутить посредине, но это будет обычная деформация, не листовая.   Максимка до сих пор считает, что все системы одинаковые. И дает совет по всем системам.
    • Timon1
      Всем доброго.  По К-график Вот такой вопрос. Рисую линию 50 мм. Чтобы видеть ее длинну1:1 на экране. Вынужден ставить мастаб (1.5).   Какой параметр в пк или видеокарте, или это от железа(ноут) зависит что бы видеть на экране ее  в (1:1) 
    • gudstartup
      у вас simodrive 611d  а эта программа для simodrive 611u и она вам не подойдет. конфигурация и настройка только средствами чпу или через toolbox @RomanSV вам уже написали что  нужно сделать для диагностики  
    • Kaslenz
      Текстовый файл со свойствами можно также редактировать в любом текстовом редакторе. Текстовому файлу присвоено имя properties.txt.. Месторасположение файла по умолчанию: C:\ProgramData\SOLIDWORKS\SOLIDWORKS <версия>\lang\English  
    • Udav817
      у многих это у каких? я вот как раз слышал, что такое автоматически не разворачивается. Solid Edge, Kompas, T-Flex точно не могут. В SolidWorks мне говорили, что такое тоже не сделать. Построить модель, чтобы выглядела похоже - можно во всех CAD. А развёрнуть её - ну я не знаю. Может NX или что-то ещё такого уровня.
    • Fedor
      Обычно говорят о герцевских напряжениях. Их получают экспериментально. Они еще и от числа циклов зависят, то есть усталости. Тут надо в Деталях машин смотреть. Усталость дело  чисто экспериментальное...    https://pinega3.narod.ru/durabi/Durability.htm  вот тут пытался все объединить :) 
    • Guhl
    • RomanSV
×
×
  • Create New...