Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: R.I.Chernov от 27-12-2019, 01:09:25

Название: Удаление размеров в эскизе.
Отправлено: R.I.Chernov от 27-12-2019, 01:09:25
Доброго времени суток, уважаемые форумчане. Ищу вашей помощи с таком вот вопросе:
Есть эскиз в детали, я построил в нем точку и привязал ее двумя размерами к проекции начала координат. Существует ли способ обращения к коллекции, которая содержала бы только размеры, относящиеся к данной точке?  Ну то есть цель такая: удалить размеры, перенести в новое место, нанести размеры. Или возможно есть команда удаления всех размеров, относящихся к точке? Или быть может есть способ игнорирования размеров при переносе?
Название: Re: Удаление размеров в эскизе.
Отправлено: mikazakov от 27-12-2019, 08:09:50
Ну можно так получить доступ к размерам, для работы нужна открытая деталь с активным плоским эскизом и пара точек в нем, вторая должна быть образмерена линейными размерами:
Код - Visual Basic [Выбрать]
  1. Public Sub DimensionConstrant()
  2.    
  3. Dim doc As PartDocument: Set doc = ThisApplication.ActiveDocument
  4. Dim sk As Sketch: Set sk = ThisApplication.ActiveEditObject
  5. Dim sk_point As SketchPoint: Set sk_point = sk.SketchPoints(2)
  6. Dim constrant As TwoPointDistanceDimConstraint: Set constrant = sk_point.Constraints(2)
  7. MsgBox (constrant.Parameter.Value)
  8.  
  9. End Sub
  10.  
  11.  
Название: Re: Удаление размеров в эскизе.
Отправлено: mikazakov от 27-12-2019, 08:13:54
Или быть может есть способ игнорирования размеров при переносе?
попробовать сделать "растягиваемый" размер:
TwoPointDistanceDimConstraint.Driven=true
Название: Re: Удаление размеров в эскизе.
Отправлено: R.I.Chernov от 27-12-2019, 15:29:03
попробовать сделать "растягиваемый" размер:
TwoPointDistanceDimConstraint.Driven=true
Спасибо. Я думал про это, но тогда мне нужно найти ссылку на размер, а значит все сводится к изначальной задаче.
Название: Re: Удаление размеров в эскизе.
Отправлено: R.I.Chernov от 27-12-2019, 16:09:22
Спасибо, Михаил за помощь! Итоговый код у меня получился такой:
Код - C# [Выбрать]
  1.                 for (int i = p.Constraints.Count; i > 0; i--)
  2.                 {
  3.                     ((Inventor.TwoPointDistanceDimConstraint)p.Constraints[i]).Delete();
  4.                 }

где p - ссылка на точку эскиза в детали
Название: Re: Удаление размеров в эскизе.
Отправлено: R.I.Chernov от 27-12-2019, 16:12:27
По идее можно переделать перебор, сделать свойство TwoPointDistanceDimConstraint.Driven=true, передвигать точку и восстанавливать значение свойства на "false" тем же перебором,  но это уже тонкости.