Jump to content

Creo API (Си). Как обойти все элементы массива "PRO_E_DTMAXIS_CONSTRAINTS (Array of PRO_E_DTMAXIS_CONSTRAINT)"?


Alex_89

Recommended Posts

Добрый день! Подскажите пожалуйста, как можно обойти программно массив получаемый при обращении к "PRO_E_DTMAXIS_CONSTRAINTS " (Возвращает массив из PRO_E_DTMAXIS_CONSTRAINT)? 

Делю так:

ProError ErrorCreo;

 

ProElement ElementHandleCreo;
ErrorCreo = ProFeatureElemtreeExtract(&m_rFeatureCreo, NULL, PRO_FEAT_EXTRACT_NO_OPTS, &ElementHandleCreo);

 

ProElement* Children{ nullptr };
ErrorCreo = ProArrayAlloc(0, sizeof(ProElement), 1, (ProArray*)&Children);

 

ProElempath Path{};
ErrorCreo = ProElempathAlloc(&Path);
 

ProElempathItem Item[]{ {PRO_ELEM_PATH_ITEM_TYPE_ID, PRO_E_DTMAXIS_CONSTRAINTS}};
ErrorCreo = ProElempathDataSet(Path, Item, std::size(Item));

 

ErrorCreo = ProElementArrayGet(ElementHandleCreo, Path, &Children);

        
int SizeArray{};
ErrorCreo = ProArraySizeGet(Children, &SizeArray);

 

Но не могу понять, как далее обратиться к PRO_E_DTMAXIS_CONSTR_TYPE и PRO_E_DTMAXIS_CONSTR_REF содержащимся в каждом из PRO_E_DTMAXIS_CONSTRAINT полученного массива Children.

 

Дерево

#ifndef PRODTMAXISH
#define PRODTMAXISH

     PRO_E_FEATURE_TREE
       |
       |--PRO_E_FEATURE_TYPE
       |
       |--PRO_E_STD_FEATURE_NAME         (Optional)
       |
       |--PRO_E_DTMAXIS_CONSTRAINTS      (Array of PRO_E_DTMAXIS_CONSTRAINT)     <- нужно обойти этот массив
       |    |--PRO_E_DTMAXIS_CONSTRAINT  <- для каждого 
       |         |--PRO_E_DTMAXIS_CONSTR_TYPE  <- получить это 
       |         |--PRO_E_DTMAXIS_CONSTR_REF   <- и это значение
       |
       |--PRO_E_DTMAXIS_DIM_CONSTRAINTS  (Array of PRO_E_DTMAXIS_DIM_CONSTRAINT)
       |    |--PRO_E_DTMAXIS_DIM_CONSTRAINT
       |         |--PRO_E_DTMAXIS_DIM_CONSTR_REF
       |         |--PRO_E_DTMAXIS_DIM_CONSTR_VAL 
       |--PRO_E_DTMAXIS_FIT              (Optional)
            |--PRO_E_DTMAXIS_FIT_TYPE
            |--PRO_E_DTMAXIS_FIT_REF  If FIT_TYPE = PRO_DTMAXIS_FIT_REFERENCE
            |--PRO_E_DTMAXIS_FIT_LEN  If FIT_TYPE = PRO_DTMAXIS_FIT_LENGTH

Большое спасибо!

Link to post
Share on other sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




×
×
  • Create New...