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

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


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

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

 

все вроде понятно но вот незнаю  как перебрать детали сборки чз переменную.. наверно из массива и команду   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 пользователей

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




  • Сообщения

    • Барс
      И где в этом ролике показано, что он может посчитать реакции шарниров? Там показан расчёт так называемой "силы двигателя". Это я и так умею уже давно. Там, правда, тоже странности имеются, но это в отдельной теме лучше обсудить.   А мне реакции шарниров научиться бы выпрашивать у Моушена. И очень желательно именно в блоках.
    • Viktor2004
      ну да ну да. Снял архив с Сименса (а сниматься он будет около получаса), тут же пытаешься залить его в станок, а он в процессе кучу ошибок выдает. Ну мы ведь его только что сняли. Что там может быть не так? С Фанука бэкап снимается одним движением. Минута и архив готов. И он стопроцентов загрузится и вернет станок к той конфигурации которая была. Какой у вас Фанук вы даже не написали. Старые от новых отличаются. Меню там разные
    • Guhl
      Может у вас с приводом проблема? Например один выходной транзистор не работает
    • vimed
      Добавлю, что ResCurrentState появился в версии 2201. В более ранних приходится использовать некоторую комбинацию из AvailableForMediation, CurrentSpeed, Occupied.
    • SAPRonOff
      А что надо было показывать?:) Там был живой показ - был оператор за ПК, которому выступающие давали поручения что-то сделать, и потом шёл комментарий о том - что происходит на экране: нативная подержка Линукс, поддержка своего ядра РГК - текущие доработки.
    • Lmstr
      По Фануку вообще документация не особо приветливая... А вот еще вопрос, при изменении параметров в меню PMM нужно делать "To restore the parameters from the CNC to the Beta" или это только для бэкапов? Над методикой создания бэкапов на Fanuc просто удивляюсь, мягко говоря: нужно держать какие-то кнопки при загрузке, выходить в потаенные меню, и не дай Бог ошибёшься. При чём делаются сразу все кучей и приводные и ЧПУшные и PLC. То ли дело на Siemens: PLC, приводные архивы, NCK - всё наглядно, ошибиться не так легко )))
    • Lmstr
      Спасибо за файлик. Да, была ошибка 410, 411, решили попробовать другой движок, но и этот вел себя также с такими же ошибками
    • ak762
      да может он посчитать если формулами не охота, в интернере не пробовали искать?    
    • maxx2000
      Кто-то тут на форуме давал видео как согнуть узкий глубокий П-образный профиль. Суть там была в том что заготовку сначала прогибают по середине в обратную сторону, затем загибают полки и выравнивают прогиб.  Продублируйте если можно ссылку.
    • mamomot
      В новом Разделе 4 "Фрезерная обстановка" Главы 8 "Механическая обработка" появился первый Параграф. В оснастке ведется обработка детали "Вилка", которая предварительно была обработана в технологическом оснащении, представленном в прошлой публикации. 8_4_1 Оснастка для вилки.pdf
×
×
  • Создать...