Как изменить точность отображения массы на чертеже?

Автор Тема: Как изменить точность отображения массы на чертеже?  (Прочитано 7550 раз)

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

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Доброго времени суток, уважаемые форумчане. Помогите пожалуйста решить задачу, обозначенную в теме. Не могу понять, где искать это свойство. Буду благодарен за любую помощь.
В программировании я новичок...но ненадолго! ;)

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Залез в рамку, посмотрел что вроде как отображается свойство масса из коллекции 'Свойства ГОСТ". До свойства "масса" я докопаться смог:

Код - Visual Basic [Выбрать]
  1. Private Sub test_dwg_12()
  2.     Dim oDoc_dwg As DrawingDocument
  3.     Set oDoc_dwg = ThisApplication.ActiveDocument
  4.     Dim GostPropSet As PropertySet
  5.     Set GostPropSet = oDoc_dwg.PropertySets("Свойства ГОСТ")
  6.     Dim GostMass As Property
  7.     Set GostMass = GostPropSet("Масса")
  8. End Sub

Но как регулировать его точность, с которым она отображается в основной надписи?
В программировании я новичок...но ненадолго! ;)

Отмечено как Решение R.I.Chernov 13-09-2016, 15:26:10

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
PartComponentDefinition.MassProperties() As MassProperties
Ну отображение точности это не сложная задача, мой старый кода на vb.net:

Код - vb.net [Выбрать]
  1.     Private Function CorrectMass(ByVal ViewMass As Double) As String
  2.         'Округление массы и отбрасывание малозначительной части числа
  3.         Dim MassSuffix As String = ""
  4.  
  5.         Select Case ViewMass
  6.             Case Is >= 100000
  7.                 ViewMass = ViewMass / 1000
  8.                 ViewMass = Math.Round(ViewMass)
  9.                 MassSuffix = "т"
  10.             Case Is >= 10000
  11.                 ViewMass = ViewMass / 1000
  12.                 ViewMass = Math.Round(ViewMass * 10) / 10
  13.                 MassSuffix = "т"
  14.             Case Is >= 100
  15.                 ViewMass = Math.Round(ViewMass)
  16.             Case Is >= 10
  17.                 ViewMass = Math.Round(ViewMass * 10) / 10
  18.             Case Is >= 1
  19.                 ViewMass = Math.Round(ViewMass * 100) / 100
  20.             Case Else
  21.                 ViewMass = Math.Round((ViewMass + 0.001) * 1000) / 1000
  22.         End Select
  23.  
  24.         'Перевод значения массы в строковый вид
  25.         Return CStr(ViewMass) & MassSuffix
  26.     End Function

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
PartComponentDefinition.MassProperties() As MassProperties
Ну отображение точности это не сложная задача, мой старый кода на vb.net:
Спасибо, Михаил. Хм..либо я не понимаю ваш ответ, либо вы не поняли мой вопрос...
Вы хотите сказать, что реализованная в пользовательском интерфейсе возможность управлять округлением массы на чертеже, это по сути переписывание MassProperties() детали / сборки?
В программировании я новичок...но ненадолго! ;)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Set GostPropSet = oDoc_dwg.PropertySets("Свойства ГОСТ")
Категория свойств с названием "Свойства ГОСТ" не относится к внутреннему инструментарию инвентора. Эту категорию создает AddIn с названием GOST Support, который в свое время пропихнул в поставку Инвентора Виноградов. Но это всего лишь AddIn. При желании можно сделать свою категорию свойств и пользоваться ей.

Вы хотите сказать, что реализованная в пользовательском интерфейсе возможность управлять округлением массы на чертеже, это по сути переписывание MassProperties() детали / сборки?
Это так. Правда есть встроенная категория свойств с массой (см. скрин), но использование этих свойств в повседневной работе радости не вызовет.

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Спасибо, Михал.
Категория свойств с названием "Свойства ГОСТ" не относится к внутреннему инструментарию инвентора ... это всего лишь AddIn. При желании можно сделать свою категорию свойств и пользоваться ей.
НЕ могли бы вы пояснить, чем отличаются свойства "масса" в категории "Свойства ГОСТ" и в категории "Physical Properties - Model"? Они же по идее оба должны ссылаться на MassProperties?
В программировании я новичок...но ненадолго! ;)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
чем отличаются свойства "масса" в категории "Свойства ГОСТ" и в категории "Physical Properties - Model"? Они же по идее оба должны ссылаться на MassProperties?
Как я писал выше, "масса" в категории "Свойства ГОСТ" - это Addin GOST Support. А Physical Properties - Model это свойство для вывода массы на чертеж через сам инвентор, причем в формате который понравился автодеску. Physical Properties - Model появился не так давно. Что тут еще скажешь.