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

Как получить список деталей в сборке


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

Создаю макрос, на каждую деталь в сборке нужно создать отдельную конфигурацию, со скрытыми остальными деталями  сборки.

 

все вроде понятно но вот незнаю  как перебрать детали сборки чз переменную.. наверно из массива и команду   getchildren , может кто укажет ссылку на работающий код или так подскажет?

спасибо

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


отдельную конфигурацию, со скрытыми остальными деталями сборки

А просто открыть нужную деталь религия не позволяет? К чему такие извращения?

Да и по сути "сборка, состоящая из одной детали"- это не сборка.

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

   :biggrin: А что, кто-то когда-то указывал на неработающий?

 

 

на каждую деталь в сборке нужно создать отдельную конфигурацию, со скрытыми остальными деталями  сборки.

 

Конфигурация детали никак не зависит от видимости компонентов сборки. Вам нужно создавать конфигурации сборки.

перебрать детали сборки чз переменную
 чз переменную чего? Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах

Очень извиняюсь может сумбурно написал, торопился с работы), еще и знаний пока неочень)

 

В общем тема простая, пытаюсь автоматизировать разнесение компонентов сборки для эскизов документации.

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

 

Так вот с помощью записи макроса удалось получить код процесса на выделенные детали. а вот перебрать все детали сборки автоматически в VB как то неудается. Может кто подскажет?)

Изменено пользователем K_SW
Ссылка на сообщение
Поделиться на других сайтах
Гдето вычитал что можно создать кучу конфигураций на сборку, каждая из которых включает только одну деталь, а потом эти конфигурации соединить в чертеже со сдвигом каждой детали.

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

 

Чертёж детали - это чертёж детали. Это отдельный файл (ОДИН файл!) чертежа, который привязан к конкретной детали, а не к сборке.

 

И не пытайтесь сделать из Солида Автокад или работать в Солиде, как в Автокаде. НЕЛЬЗЯ! В Солиде надо работать по-другому - так, как это надо делать в СОлиде.

 

Постарайтесь сперва понять как работает Солид, и как надо в нём работать - работать правильно и эффективно. А потом уже занимайтесь макросами.

Ссылка на сообщение
Поделиться на других сайтах
а потом эти конфигурации соединить в чертеже со сдвигом каждой детали.

 

Ох уж эти макросописатели)))

http://help.solidworks.com/2012/russian/SolidWorks/sldworks/C_Exploded_Views_in_Multibody_Parts.htm?id=fe39a69b7fcb47648257a82cc3275d35#Pg0&ProductType=&ProductName=

http://help.solidworks.com/2012/russian/SolidWorks/sldworks/c_Exploded_Views_in_Assemblies.htm?id=7f669604f91e4618a7e567a3b6c57213#Pg0

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах

Оттуда: ...•Равномерно разместить разнесенные комплекты твердых тел.

Это как,руками что-ли? Типа

Не занимайтесь онанизмом!

Изменено пользователем zloyuri
Ссылка на сообщение
Поделиться на других сайтах
Это как,руками что-ли?
 мышку можно двигать любой частью тела. На кнопку не любой нажмёшь  :biggrin:
Ссылка на сообщение
Поделиться на других сайтах

Просто мне приходится разносить много сборок, вручную это делать довольно муторно, хотел автоматизировать процесс, может тогда подскажете как по другому автоматизировать?

 

А вот когда проявляешь креатив вроде веселее становится).

вот тут код обращается к детали

boolstatus = Part.Extension.SelectByID2("Шайба 6402-10@NRDEZ00006", "COMPONENT", 0, 0, 0, True, 0, Nothing, 0)

 

хотелось бы вместо Шайбы подставить переменную, а как загнать список в массив незнаю(.

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

мышку можно двигать любой частью тела. На кнопку не любой нажмёшь  :biggrin:

О том разговор: тему можно переносить.
Ссылка на сообщение
Поделиться на других сайтах
Да про список деталей)

 

http://help.solidworks.com/2012/English/api/sldworksapi/traverse_assembly_at_component_level_example_vb.htm

 

http://help.solidworks.com/2012/English/Api/sldworksapi/Traverse_FeatureManager_Design_Tree_VB.htm

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

 

Так делать нельзя.. Вот как надо:

 

1. Открыть модель детали.

2. Меню Файл->Создать чертеж из детали..

Ну или то же самое, но программно..

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

 

Так делать нельзя.. Вот как надо:

 

1. Открыть модель детали.

2. Меню Файл->Создать чертеж из детали..

Ну или то же самое, но программно..

 

Если просто наоткрывать все детали входяцие в сборку по отдельности  тогда они потеряют свою ориентацию в сборке и это будет просто хаотичный набор деталей

Изменено пользователем K_SW
Ссылка на сообщение
Поделиться на других сайтах

@K_SW, Вы можете объяснить ЧТО Вы хотите получить в результате?

Вы хотите получить чертежи всех деталей на одном листе? Это неправильно. Вам объяснили как делать правильно.

Вы хотите получить сборку в разнесённом состоянии? Вам объяснили как делать правильно.

Или есть ещё какие-то задачи, которые не понятны никому, кроме Вас?

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

Ок вопрос всетаки простой.

Есть сборка с деталями

47da441a1afb.jpg

 

Нужно получить массив PART(i) со списком типа

 

PART(1) = hvac duct end-1

PART(2) = hvac duct end-2

PART(3) = hvac duct end-3

 

PART(6) = HVAC Ducting1

 

итд

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

Ок вопрос всетаки простой.

Есть сборка с деталями

47da441a1afb.jpg

 

Нужно получить массив PART(i) со списком типа

 

PART(1) = hvac duct end-1

PART(2) = hvac duct end-2

PART(3) = hvac duct end-3

 

PART(6) = HVAC Ducting1

 

итд

API SW. Один из вариантов. Пройтись по дереву сборки.

 

private void FindTreeItem()
{
    SldWorks swApp = GetSolidWorks(false); //
    if (swApp == null)
        return;
    IModelDoc2 swModel = swApp.IActiveDoc2;
    if (swModel.GetType() != (int)swDocumentTypes_e.swDocASSEMBLY)
        return;

    IFeatureManager swFeatureMgr = swModel.FeatureManager;
    ITreeControlItem swTreeCtrItemRoot = swFeatureMgr.GetFeatureTreeRootItem();

    ITreeControlItem swTreeCtrItem = swTreeCtrItemRoot.GetFirstChild();

    List<string> listName = new List<string>(); // список имен компонентов
    while (swTreeCtrItem != null)
    {
        int objType = swTreeCtrItem.ObjectType;
        
        if (objType != (int)swTreeControlItemType_e.swFeatureManagerItem_Component)
        {
            swTreeCtrItem = swTreeCtrItem.GetNext();                        
            continue;
        }

        // ********* вариант с компонентом ==============================
        IComponent2 swComponent = swTreeCtrItem.Object as IComponent2;
        if (swComponent == null)
        {
            swTreeCtrItem = swTreeCtrItem.GetNext();
            continue;
        }

        string nameComponent = swComponent.Name2;
        listName.Add(nameComponent);


        swTreeCtrItem = swTreeCtrItem.GetNext();
    }
}
Ссылка на сообщение
Поделиться на других сайтах

спасибо всем запомощь)

дело движется но есть вопросики

 

2 вложенных цикла перебирают компоненты сборки, нужные высвечивают, остальные скрывают. Но при создании конфигурации фокус переходит на новую конфигурацию и ход цикла нарушается. как создать новую конфигурацию оставаясь в старой?

      For Each vChildComp1 In vChildCompArr1
        Set swChildComp1 = vChildComp1
    
    swChildComp1.Visible = swComponentVisible
    
    For Each vChildComp In vChildCompArr
        Set swChildComp = vChildComp
   
     

        If swChildComp.Name2 <> swChildComp1.Name2 Then
            swChildComp.Visible = swComponentHidden
        End If
      

    Next

 bRet = swModel.AddConfiguration2(swChildComp1.Name2, "", "", False, False, False, True, 256)

'   TraverseComponent swRootComp, 1
  Next
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      вы тоже думаете что можно все компоненты чпу заменить и ничего не изменится и предупреждение о том чтобы oprminf не восстанавливали на другой машине которое фанук встроил даже в загрузчик это просто алармисткий текст и ничего не будет..... ну и ну и где написано что она mate как например здесь с чего тогда базовый чпу mate если гл.плата не mate мне непонятно из-за экрана что ли
    • статист
      Охренеть, ни за что бы не догадался. Хоть бы словом где обмолвились об этом в документации. Короче нужна команда EMODIF, E_ID, 3, N_ID где E_ID - номер элемента, который мы собираемся модифицировать. Так как используется BEAM188, то у него не два узла оказывается рассматривается, а три, где первые два принадлежат элементу, а третий узел - направляющий. И соответственно число 3 - это номер узла балки, который мы собираемся модифицировать, то есть направляющий узел. И мы этот узел соответственно заменяем на узел с номером N_ID. И тогда сечение реально вращается. Разобрался по этому видео.    
    • Александр1979
      Материнка такая в руководстве есть. На 0i-D я менял материнку, опции не слетели. 
    • gudstartup
      @Viktor2004 кстати конкретно модели автора в руководстве нет хотя оно последней редакции 18 года
    • Viktor2004
      конкретно на этой не менял. На каких менял, написал выше
    • gudstartup
      какие платы и на каких системах вот в чем ворос конкретно на этой возникут проблемы
    • Viktor2004
      ну да. А то что я менял платы это мои бредовые фантазии   Ну исправили в паспорте. И что?
    • gudstartup
      это догадки и гадание на кофейной гуще а япривожу документ где написано про то что прочитайте пункт 4.11 а там представляете вот что 4) Замена печатной платы может привести к изменению идентификационного номера ЧПУ. Проверьте это на Экран ЧПУ. Если оно отличается от описанного в техническом паспорте, исправьте его.  
    • Viktor2004
      я менял все платы. И на форуме наверное не я один их менял. И никто еще не писал что при этом у него слетел сертификат Возможно ID номера проверяются только в момент установки опции, а когда они уже установлены и мирно хранятся в OPRM INF возможно ти уже на ID наплевать
    • gudstartup
      для кого это написано CAUTION Before replacing a printed circuit board, be sure to read Section 4.11, “OPTION INFORMATION FILE” to confirm the procedure.  
×
×
  • Создать...