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

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


andreymr

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

Добрый день всем. Нужна помощь гуру по API SolidWorks. :surrender:

Пишу дополнение для SW (в виде DLL), встала задача реализовать вставку в сборку детали с предпросмотром через API.

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

Буду рад, если кто-то подскажет хотя бы примерные команды API для этого дела.

Или хотя бы примерно как это можно реализовать.

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


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

Rotate Assembly Component on Axis Example (VB)

This example shows how to rotate an assembly component about an assembly axis using DragOperator::Drag.

'------------------------------------------------------------------



' 



' Problem:



'	   This code shows how to use the MathUtility object



'	   to directly create a transformation matrix (object)



'	   that represents rotation about a point and an axis,



'	   without having to know details of the OpenGL transformations.



'



' Preconditions:



'	   (1) Assembly is open and fully resolved.



'	   (2) Assembly component is selected.



'



' Postconditions: Selected component is rotated 90° about assembly X axis.



'



'------------------------------------------------------------------



 



Option Explicit



 



Const PI				As Double = 3.14159



Const RadPerDeg		 As Double = PI / 180#



'   DragOperator::TransformType



'	   Translation	 0



'	   Transform is translation only



'



'	   Axial rotation  1



'	   Transform is rotation only



'



'	   General		 2



'	   Transform can be translation or rotation or both



'   DragOperator::DragMode



'	   Minimum Move	0



'	   Move smallest number of geometries



'



'	   Maximum Move	1



'	   Move geometries rigidly if possible



'



'	   Relaxation	  2



'	   Solve geometries using relaxation



Sub main()



 



	Dim swApp				   As SldWorks.SldWorks



	Dim swModel				 As SldWorks.ModelDoc2



	Dim swAssy				  As SldWorks.AssemblyDoc



	Dim swDragOp				As SldWorks.DragOperator



	Dim swSelMgr				As SldWorks.SelectionMgr



	Dim swComp				  As SldWorks.Component2



	Dim swXform				 As SldWorks.MathTransform



	Dim swMathUtil			  As SldWorks.MathUtility



	Dim swOriginPt			  As SldWorks.MathPoint



	Dim swX_Axis				As SldWorks.MathVector



	Dim nPts(2)				 As Double



	Dim vData				   As Variant



	Dim nNow					As Single



	Dim i					   As Long



	Dim bRet					As Boolean



	



	



	Set swApp = CreateObject("SldWorks.Application")



	Set swModel = swApp.ActiveDoc



	Set swAssy = swModel



	Set swDragOp = swAssy.GetDragOperator



	Set swSelMgr = swModel.SelectionManager



	Set swComp = swSelMgr.GetSelectedObjectsComponent2(1)



	Set swMathUtil = swApp.GetMathUtility



	



	nPts(0) = 0#



	nPts(1) = 0#



	nPts(2) = 0#



	vData = nPts



	Set swOriginPt = swMathUtil.CreatePoint(vData)



	



	nPts(0) = 1#



	nPts(1) = 0#



	nPts(2) = 0#



	vData = nPts



	Set swX_Axis = swMathUtil.CreateVector(vData)



	' This is an incremental rotation,



	' so angle is always the same



	Set swXform = swMathUtil.CreateTransformRotateAxis( _



						swOriginPt, swX_Axis, 1# * RadPerDeg)



	



	



	bRet = swDragOp.AddComponent(swComp, False)



	Debug.Assert bRet



	



	swDragOp.CollisionDetectionEnabled = False



	swDragOp.DynamicClearanceEnabled = False



	



	' Axial rotation



	swDragOp.TransformType = 1



	



	' Solve by relaxation



	swDragOp.DragMode = 2



	



	bRet = swDragOp.BeginDrag



	Debug.Assert bRet



	For i = 0 To 90



		' Returns false if drag fails, for example, because of a collision



		bRet = swDragOp.Drag(swXform)



		



		' Wait for 0.1 secs



		nNow = Timer



		While Timer < nNow + 0.1



			' Process event loop



			DoEvents



		Wend



	Next i



	bRet = swDragOp.EndDrag



	Debug.Assert bRet



End Sub



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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • malvi.dp
      В спецификации солида никак, только навести порядок и заменить одинаковые по параметрам детали, тогда они отобразятся под одной позицией с правильными количеством. Если это очень долго - сохранить спецификацию в Эксель, отсортировать и вручную сделать как нужно.
    • Александр1979
      Во время прогона с блокировкой должны изменяться абсолютные и относительные координаты, машинные координаты не должны изменяться.
    • maxx2000
      Автора темы не было с 2 мая. Я такого звзидунка давно не встречал
    • Дарья Фролова
      Мы изобретаем будущее вместе с командой, которую любим,Разрабатываем уникальное оборудование, реализуем их в масштабные проекты и каждый раз ставим новые планки! Ищем талантливого главного инженера-конструктора с глубокими знаниями механики, который готов руководить стратегией разработки серийного производства. Если вы готовы развиваться, переосмыслять наш текущий опыт и превращать его в отлаженную методологию, то будем рады видеть вас частью нашей команды!
 Мы аккредитованная ИТ компания — предоставляется бронь. Проект: Роботизированная система очистки солнечных панелей;
 Компетенции: Глубокие знания механики, подготовка к серийному/массовому производству;
 Руководитель/наставник: СOО компании; Команда: до 10 человек;
 Работа в офисе (возможно обсуждение гибрида после испытательного срока) Мы предлагаем:- Авторская разработка, уникальный продукт - партнерство на международном рынке;
 - Обучение и развитие новым скилам за счет компании; - Команда сильных инженеров; - Руководитель - это в первую очередь коллега и наставник;
 - Перспективы профессионального и карьерного роста (команда расширяется, есть возможность расти вместе с нами); - Приятные бенефиты от компании. 
Примеры задач: - Разработка ТЗ, конструирование, прототипирование, испытания, сопровождением сертификации, подготовку к производству на Российских и Зарубежных производственных мощностях. - Ведение технической базы знаний и результатов проектов для постоянной оптимизации процессов разработки. - Общий анализ производимости нового продукта компании с выдвижением предложений о дальнейшей стратегии разработки для серийного производства. Мы ждем, что у вас сильный опыт в механике, опыт подготовки к серийному/массовому производству и управлении командой инженеров, состоящей из конструкторов, электронщиков и программистов, разработки уникальных мехатронных систем в различных областях промышленности. Компетенции: - Высшее техническое образование; - Опыт проектирования: сложных изделий из металлов с учетом динамических и прочностных характеристик; - Опыт работы в области конструирования механических систем;- Умение рассчитать себестоимость проекта для дальнейшей реализации; - Опыт работы в аналогичной должности не менее 3 лет;
 - Системность, структурность, желание во всем наводить порядок; - Умение работать в показателях результата; Впереди много задач по изобретению систем очистки для разных промышленных отраслей - ждем вас в нашей команде!
    • Dimetil Gidrozin Dnepr
      куда пропал твой парень? с ним в паре вы замечательно смотрелись и ты был гораздо круче спасибо. я уже с автором темы связался он мне ссылок дал и где качать и как ставить. понту мне смотреть то чего у меня нет)) я поставлю то что он мне дал и посмотрю по нему. он видеоуроки пишет. норм чувак кста
    • IgorT
      Да че там хорошего? По мне уже то, что нет возможности выбрать плоскость симметрии напряг.
    • AlexKaz
      А если сделать такой финт: есть два тела, на телах две площадки с одинаковой сеткой. Что будет, если создать много RBE2 от площадки к площадке, но каждый RBE2 связывает только 1 узел на первой площадке с 1 узлом на второй (а не несколько узлов с одним узлом)? По логике вещей, получается аналог нескольких простых MPC узел в узел, т.е. для каждой пары узлов с разных площадок имеем Ux1-Ux2=0, Uy1-Uy2=0, Uz1-Uz2=0. Т.е. получим деформируемые границы площадок (вместо абсл. жёстких), но "сшитые" попарно по площадкам узлы, и попарные узлы на площадках должны перемещаться на одинаковое расстояние. Или нет?
    • Anat2015
      Не путайте модель станка и модель ЧПУ. Синумерик - это ЧПУ, у вас точно ЧПУ Sinumerik SN-770, или это все таки название станка, не встречал, чтобы Сименс станки делал. Определитесь с точным названием УЧПУ.   Теоретически, да, но можно и с внешнего инструмента (ноутбука) а процесс восстановления привязан к модели ЧПУ. Только arc. (архив) бывает разный, могут быть отдельно архивы NCU, PLC, HMI, а может быть объединенный. Где батарейка, какие настройки вы имеете ввиду? Может и архивы не надо восстановливать? Подробнее опишите свои проблемы.
    • ID_Hacker
      Бывает на пульте кнопка, бывает М командами откидывается. Если заходите в меню измерения инструмента в режиме Jog, возможно надо выбрать параметры измерения и нажать "Цикл старт" Вариантов реализации много, и без осмотра подсказать практически нереально. Вы вообще уверены, что у вас моторизированная рука, а не откидываемая руками? Правильно вам пишут - необходимо смотреть в руководстве пользователя станка. Если нет руководства, просить поставщика, производителя. Ну а если уже совсем край, искать специалиста, готового провести исследование и возможно пусконаладку.
    • Мрачный
      Компас напоминает в своих способностях SW 2001-2006 г. Очень во многих местах. А вот с зеркальными деталями-сборками там вроде бы все весьма неплохо, гораздо лучше чем в SW. Вот такое неоднозначие...
×
×
  • Создать...