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

Помогите разобраться с API


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

Определить, что создал польльзователь можно только исключениями. То есть запонимаешь все папки, что создает сам солид и те, что есть по умолчанию. Остальное будет считать созданно пользоваетелем

BSTR bFeatName,bFeatureTypeName;



hres = pFeature->get_Name( &bFeatName );	// считать имя feature 

CString featName( bFeatName );



hres = pFeature->GetTypeName(&bFeatureTypeName);   // считываем тип feature 

CString featureTypeName(bFeatureTypeName);
Ссылка на сообщение
Поделиться на других сайтах


А как поместить Деталь1-1 в Папку1?

Код

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swFeat = swModel.FeatureByName("Деталь1-1")

Set swFolder = swModel.FeatureByName("Папка1")

bRet = swModel.ReorderComponents(swFeat, swFolder, swReorderComponents_LastInFolder)
Debug.Print "bRet = " & bRet
End Sub

не работает :surrender:

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

А как поместить Деталь1-1 в Папку1?

......

не работает

По всей видимости и не будет работать. Эта функция использует в качестве первого аргумента указатель на массив компонентов, а не фьючерсов.

Этот код должен перемещать вашу деталь в папку. Но это как образец, полностью задачи я не знаю

Option Explicit



Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swAssembly As SldWorks.AssemblyDoc

Dim swSelMgr As SelectionMgr

Dim swFolder As SldWorks.Feature

Dim swComponent As SldWorks.Component2

Dim bres As Boolean



Sub main()



	Set swApp = Application.SldWorks

	Set swModel = swApp.ActiveDoc

	Set swSelMgr = swModel.SelectionManager

	Set swAssembly = swModel

	bres = swModel.Extension.SelectByID2("Деталь1-1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

	Set swComponent = swSelMgr.GetSelectedObject5(1)

	

	Set swFolder = swAssembly.FeatureByName("Папка1")

	bres = swAssembly.ReorderComponents(swComponent, swFolder, swReorderComponents_LastInFolder)



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

В АПИ 2007 есть появилась в SW 2005

Этот метод перемещает выбранную характеристику или папку в Менеджере Характеристики Твердого проектого дерева структуры Тел в определенную папку в Менеджере Характеристики Твердого проектого дерева структуры Тел.

IFeatureManager	  pFeatureManager = NULL;



pModelDoc2->get_FeatureManager ( &pFeatureManager);

ASSERT(pFeatureManager!=NULL);



pFeatureManager->MoveToFolder ( MoveToFeat, MoveFromFeat, isFolder, &retval);
Ссылка на сообщение
Поделиться на других сайтах

Shvg, так тоже не работает

bres = swAssembly.ReorderComponents(swComponent, swFolder, swReorderComponents_LastInFolder)

возвращает False

TEM, функция MoveToFolder как я понял из справки работает только с Solid Bodies и не работает с компонентами

А мне нужно в сборке детали разложить по папкам

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

Shvg, так тоже не работает

У меня прекрасно работал, правда в моей сборке. Проверь возвращенный результат из функции:

bres = swModel.Extension.SelectByID2("Деталь1-1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Если False, то присмотрись к правильности имен деталей и папок.
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Renovatio
    • Ветерок
      Свои настройки есть у ноута. У него наверняка кроме Квадры есть ещё своя встроенная. И в настройках надо указать, что задействовать Квадру, а не встроенную. Можно указать для каждой программы индивидуально.  
    • FPG93
      Приветствую всех. Интересует: получение навыков в написание постпроцессора в среде NX. За образец хотелось бы взять токарно-фрезерный станок с осью Y и контршпинделем.(Fanuc 0-TF). Итогом работы хочеться видеть рабочий пост, написанный мной с вашими ценными советами Важно:это не приобретение поста,а покупка времени человека который грамотно расскажет про его написание. Формат/время для общения такой какой будет удобен лично вам(онлайн/запись вашего видео с отправкой мне) Тех кого заинтересовало просьба отписаться на почту PF3011@YANDEX.RU.  С указанием стоимости за 1 академ час,или полной стоимости до конечного результата.        
    • maxx2000
      Тарантина и у своих не гнушается тырить
    • maxx2000
      мне мясо положено -положено ешь но оно мне не положено - не положено не ешь А так страшно, очень страшно, если бы мы знали что это такое но мы не знаем что это такое.   Единственное что я понял, у тебя в дереве не подсвечиваются элементы по которым ты тыкаешь в рабочем окне. Так?
    • Renovatio
      Доброе время суток, коллеги. Имеются сборки в которых элементы размножаются массивами. Так вот, в некоторых сборках при выборе элемента в графической части, он выделяется в дереве построения, а в некоторых не выделается. Не выделяется элемент массива, при этом если выбирать деталь/подсборку, которая является родителем массива, то она выделяется в любой сборке. Сборки могут быть равные по нагрузке, но в одной все работает, а в другой нет. Может кто-то сталкивался с такой проблемой и знает как избавиться от нее?   Пользуюсь Solidworks 2017 SP5.0
    • pescarbon
      В Санкт-Петербурге. Я перекидывал так программы обработки, проблем не возникло. А именно данные пусконаладки, когда опускаюсь в меню к ним, все меню зависает
    • Dordenis
      Добрый день.   В форме для литья алюминия необходимо вытащить знак на длину 130 мм. Остановились на том, чтобы знак извлекать с помощью гидроцилиндра.  Как примерно рассчитать усилие для извлечения знака с отливки, чтобы подобрать ГЦ с нужным усилием. 
    • BSV1
    • Говорящий Огурец
      По хорошему, с этого и надо было начинать. А то совершенно неочевидная постановка вопроса.
×
×
  • Создать...