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

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

Sla_68

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

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


26 минут назад, alek77 сказал:

Sla_68

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

Set bConf = selpart.GetActiveConfiguration
bconfname = bConf.Name 'извлекаем имя активной конвигурации базовой детали ( то же самое детаем в цикле и сравниваем названия)

 

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

Я честно говоря не большой знаток АПИ, стаж всего несколько месяцев, но что  то мне подсказывает что специального метода нет. До этого штудировал методы для детали , теперь перешел в к изучению сборок. И у меня вопросов у самого больше чем ответов.

Сегодня как кость в горле следующая проблема: (мне проще описать ситуацию). В сборке присутствуют разные и одинаковые компоненты. Я хочу клацнуть мышкой по 2 любым детялям и их объектам (вершина, кромка, поверхность). Далее жмем выполнить макрос. Макрос определяет body1(0) в каждой детальке(Bodies1 = part1.GetBodies2(swSolidBody, False)). Ищет на каждой самую большую поверхность(faces = body.GetFaces )и делает замер расстояния между поверхностями 1 и 2 тела.

Вообщем, такой замер легко произвожу с многотельной деталью, а вот в сборке результат =-1.  Не работает и  "face.SelectByMark False, 2". А точнее работает если выполняя код построчно в сборке, ( определив эти самые максимальные поверхности как face1 и face2 ) остановить ход выполнения , открыть деталь1 вручную в отдельном окне.  Как перевести эти объекты на язык понимания сборки????

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

@Sla_68 дык всё ж легко))

У вас не получается макросом выделять сущности в сборке?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, streamdown сказал:

@Sla_68 дык всё ж легко))

У вас не получается макросом выделять сущности в сборке?

И у нас не получается, можно немного разжевать для особо непродвинутых?

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

Подскажите пожалуйста, в чем разница между строками:

 

Set swCustPropMgr = CmpDoc.Extension.CustomPropertyManager(swComp.ReferencedConfiguration)
Set swCustPropMgr = CmpDoc.Extension.CustomPropertyManager("")

 

Пока не получается разобраться, как взять свойство пользователя Наименование из компонента.

У меня свойство Наименование допустим болтов прописаны на вкладке Конфигурация, а деталей на вкладке настройки.

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

И наоборот, если беру вторую строку, для болтов - пусто, а у деталей все в порядке.

Подскажите как быть или что писать в скобках после CustomPropertyManager, чтобы Наименование можно было взять и у болтов и у деталей?

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, alek77 сказал:

Пока не получается разобраться, как взять свойство пользователя Наименование из компонента.

'....
Dim valin As String
Dim valout As String

Set selpart = comp.GetModelDoc2

Set selpartExt = selpart.Extension
   Set swCustProp = selpartExt.CustomPropertyManager("")
            bool = swCustProp.Get4("Наименование", False, valin , valout)

nametxt=valout

может так ?

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

Вопрос глобального масштаба. Есть ли  способ конвертации параметров координат модели входящей в какую либо сборку? Я имею ввиду случай  когда системы координат сборки и детали не совпадают. Или нужно писать свою функцию с матрицами перехода?

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Sla_68 сказал:

Или нужно писать свою функцию с матрицами перехода?

Оно ж легко)))

http://help.solidworks.com/2015/english/api/sldworksapi/transform_point_from_component_space_to_assembly_space_example_csharp.htm

Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, Sla_68 сказал:

Вопрос глобального масштаба. Есть ли  способ конвертации параметров координат модели входящей в какую либо сборку? Я имею ввиду случай  когда системы координат сборки и детали не совпадают. Или нужно писать свою функцию с матрицами перехода?

Сорри!!! Нашел пример Transform Point from Component Space to Assembly Space Example

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

- Получить координаты в модели

- Получить матрицу поворотов компонента

- получить матрицу поворотов сборки

С этими данными перекидываться координатами

 

---------------------

Посмотрите ещё пример с Inverse()

http://help.solidworks.com/2015/english/api/sldworksapi/transform_coordinates_from_sketch_to_model_space_example_vb.htm

пригодится

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

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

Олег, спасибо вам за оперативную наводку. Вы не могли бы еще подсказать на счет метода копирования проекта? (выше я уже задавал вопрос) Есть ли способ? Так я его пока что не нашел.

И еще вопросик, как правильно двигать деталь в сборке (пока что мысль пришла с помощью сопряжений и последующих их удалений)

 

 

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Sla_68 сказал:

метода копирования проекта

Сообщение 1782 - внимательней прочитайте.

2 минуты назад, Sla_68 сказал:

как правильно двигать деталь в сборке

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

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

Сообщение 1782 - внимательней прочитайте.

Я думал это не по моему вопросу ответ ну и не обратил внимание в конце.

7 минут назад, streamdown сказал:

По подробнее опишите задачу.

По сути берется на модели вершина и модель перемещается в заранее рассчитанную точку сборки

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Sla_68 сказал:

перемещается в заранее рассчитанную точку сборки

Сам не пробовал, но ЭТО вам нужно

Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, Sla_68 сказал:

'....
Dim valin As String
Dim valout As String

Set selpart = comp.GetModelDoc2

Set selpartExt = selpart.Extension
   Set swCustProp = selpartExt.CustomPropertyManager("")
            bool = swCustProp.Get4("Наименование", False, valin , valout)

nametxt=valout

может так ?

В том то и дело, что этим способом  ("") мы берем наименование с вкладки Настройка. А если там пусто, я делаю проверку и беру Наименование уже с аргументом (swComp.ReferencedConfiguration). Подскажите пожалуйста, такой выбор с проверкой правильный или есть какой-то другой аргумент для указания в скобках ()?

Ссылка на сообщение
Поделиться на других сайтах
11 час назад, alek77 сказал:

В том то и дело, что этим способом  ("") мы берем наименование с вкладки Настройка. А если там пусто, я делаю проверку и беру Наименование уже с аргументом (swComp.ReferencedConfiguration). Подскажите пожалуйста, такой выбор с проверкой правильный или есть какой-то другой аргумент для указания в скобках ()?

Уже я вам тут не подскажу, поскольку с другой вкладкой не работал.

 

У меня у самого есть вопросик интересный. Заключается он вот в чем. Мне нужно снять координату точки в том месте ,  куда я "клацну" мышкой на поверхность или кромку. Можно ли это сделать? Теоретически это должно быть как-то реализовано, поскольку я же могу в перспективе расставлять на эскизах точки..И у них после появления однозначные координаты. Ну вот я и подумал. А вообще,  в качестве практического применения, это нужно для нахождения впоследствии ближайших тел к данной точке в заданном векторном направлении.

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...