Как добраться до внутренних переменных?

Автор Richi, 11.01.12, 07:20:02

« назад - далее »

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

Richi

В хэлпе подробно описано как добраться до внешних переменных через IVariableCollection, а до вутренних подобным способом возможно?
Интересуют переменные типа V9, V11 (смотри скрин).
Единственный вариант который приходит в голову это брать каждый эскиз, потом каждый размер, и оттуда добираться до переменной. Но данный вариант может упустить некоторые переменные и немного длинноват путь, может можно проще.
Попутный вопрос где брать значения верхнего и нижнего предела допуска, если только в динамическом массиве, привязанном к параметрам размера LDimParam->dPar->pText, то где можно посмотреть структуру построения данного массива?
Буду благодарен за помощь.

По переменным почитайте в SDK про IKompasDocument2D1::Variable, IKompasDocument2D1::Variables и IVariable7.

chelkar

Весь список переменных, напрямую, получить нельзя.
Можно взять коллекцию операций и у каждой взять переменные, а дальше идти по сформированному массиву и что-то делать с переменными.
Что-то вроде этого:
-----
FeatureCol = TopFeature.SubFeatureCollection (0, 0)
FeatureCount = FeatureCol.GetCount ()
print FeatureCount
n = 0
for n in range (0, FeatureCount, 1):
    Feature = FeatureCol.GetByIndex(n)
    VarCol = Feature.VariableCollectionEx(0)
    VarCount = VarCol.GetCount ()
    print VarCount
------

Структура pText описана в справке.
-------
1. Строки в pText должны лежать в последовательности с учетом включения битовых флагов в bitFlag: текст перед номиналом, номинал, квалитет, верхнее отклонение, нижнее отклонение, единицы измерения, текст после размера, последующие строки.
-------
Там еще несколько примечаний есть.

Наверное проще взять значения отклонений через API7:
- IDimensionText::HighDeviation
- IDimensionText::LowDeviation


Во вложении пара макросов, на Питоне. Игрался с пересчетом модели в по полям допусков.
Комментариев маловато :(, но может и пригодится ...