Создание обозначения сварного шва

Автор Тема: Создание обозначения сварного шва  (Прочитано 1864 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн OwnWayАвтор темы

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
Здравствуйте. Разобрался с реализацией SketchedSymbols и добавлением Leader. Но хотелось бы реализовать вставку по аналогии с встроенной возможностью Inventor.
Интересует момент с указанием курсором начальной точки Leader и добавлением своего SketchedSymbols. Не могу найти информацию о том, как это реализовать в коде. Возможно кто-то уже с этим сталкивался?


Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Создание обозначения сварного шва
« Ответ #1 : 04-03-2020, 08:40:43 »
В хэлпе есть сэмпл Basic Selection Using Interaction Events API Sample на основе InteractionEvents
В строчке добавляется фильтр при выборе:
Код - Visual Basic [Выбрать]
  1. ' Set the filter using the value passed in.
  2.    oSelectEvents.AddSelectionFilter filter
  3.  
можно создавать комбинированный фильтр при необходимости как сумму перечислений

Оффлайн OwnWayАвтор темы

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
Re: Создание обозначения сварного шва
« Ответ #2 : 03-04-2020, 14:13:28 »
mikazakov, меня в большей степени интересует реализация функции Inventor "Добавить вершину/выноску”. Хотелось бы повторить функционал Inventor, где пользователь устанавливает начальную и конечную точку AddLeader.
В help предложены варианты с заранее указанными точками вставки.



Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Создание обозначения сварного шва
« Ответ #3 : 03-04-2020, 17:30:37 »
 вот пример из хэлпа с привязкой скетч-символа к концу линии

Код - Visual Basic [Выбрать]
  1. Public Sub AddSymbolWithLeader()
  2.     ' Set a reference to the drawing document.
  3.    ' This assumes a drawing document is active.
  4.    Dim oDrawDoc As DrawingDocument
  5.     Set oDrawDoc = ThisApplication.ActiveDocument
  6.  
  7.     ' Set a reference to the active sheet.
  8.    Dim oActiveSheet As Sheet
  9.     Set oActiveSheet = oDrawDoc.ActiveSheet
  10.  
  11.     ' Set a reference to the drawing curve segment.
  12.    ' This assumes that a drwaing curve is selected.
  13.    Dim oDrawingCurveSegment As DrawingCurveSegment
  14.     Set oDrawingCurveSegment = oDrawDoc.SelectSet.Item(1)
  15.  
  16.     ' Set a reference to the drawing curve.
  17.    Dim oDrawingCurve As DrawingCurve
  18.     Set oDrawingCurve = oDrawingCurveSegment.Parent
  19.  
  20.     ' Get the mid point of the selected curve
  21.    ' assuming that the selection curve is linear
  22.    Dim oMidPoint As Point2d
  23.     Set oMidPoint = oDrawingCurve.MidPoint
  24.  
  25.     ' Set a reference to the TransientGeometry object.
  26.    Dim oTG As TransientGeometry
  27.     Set oTG = ThisApplication.TransientGeometry
  28.  
  29.     Dim oLeaderPoints As ObjectCollection
  30.     Set oLeaderPoints = ThisApplication.TransientObjects.CreateObjectCollection
  31.  
  32.     ' Create a few leader points.
  33.    Call oLeaderPoints.Add(oTG.CreatePoint2d(oMidPoint.X + 10, oMidPoint.Y + 10))
  34.     Call oLeaderPoints.Add(oTG.CreatePoint2d(oMidPoint.X + 10, oMidPoint.Y + 5))
  35.  
  36.     ' Create an intent and add to the leader points collection.
  37.    ' This is the geometry that the symbol will attach to.
  38.    Dim oGeometryIntent As GeometryIntent
  39.     Set oGeometryIntent = oActiveSheet.CreateGeometryIntent(oDrawingCurve)
  40.  
  41.     Call oLeaderPoints.Add(oGeometryIntent)
  42.  
  43.     ' Get the first symbol definition
  44.    Dim oSketchSymDef As SketchedSymbolDefinition
  45.     Set oSketchSymDef = oDrawDoc.SketchedSymbolDefinitions.Item(1)
  46.    
  47.     ' Create the symbol with a leader
  48.    Dim oSketchedSymbol As SketchedSymbol
  49.     Set oSketchedSymbol = oActiveSheet.SketchedSymbols.AddWithLeader(oSketchSymDef, oLeaderPoints)
  50. End Sub
  51.