Скрипт NX9/UG Knowledge Fusion для добавления значений в выражения

Я новичок в Knowledge Fusion, я пытаюсь создать сценарий.dfa, который добавит некоторые значения из поверхности или твердого тела в выражения, чтобы я мог затем экспортировать в Excel.

Вот что у меня так далеко:

DefClass: centers (%nx_application %ui_comp);

(Boolean) %on_solid?:           false;                          
(String Parameter) %ask_name:   "Centers";          
(string) %icon_name:            "section_inertia";              
(Integer) %edit_dialog:         ug_invokeClassDialog(self:);    
(List Uncached)                 %onObjectHighlight:             centers:;
(Boolean) %atTimeStamp?:        false;

(child) UI_Select:  {
        class,      %ui_comp_selection;
        Many,       False;
        Label,      "Select surface or solid to analyse";
        Tooltip,    "Select the Surface or Solid to analyse";
        FilterTriple,   {{ 70, 0, 35 },{ 70, 0, 36 }};   
}; 

(Instance) objet: ug_adoptObject(nth(1,UI_Select:SelectedObjects:));

Эта часть находит центры и добавляет их в выражения:

(child uncached) x:         {
        Class,      ug_expression;
        Name,       "x";    
        Value,      localX(objet:centroid:);
};
(child uncached) y:         {
        Class,      ug_expression;
        Name,       "y";    
        Value,      localY(objet:centroid:);
};
(child uncached) z:         {
        Class,      ug_expression;
        Name,       "z";    
        Value,      localZ(objet:centroid:);
};

Теперь я пытаюсь добавить площадь поверхности, если выбранный объект - это поверхность, или объем - это твердое тело.

вот что я попробовал:

(child uncached) area:          {
        Class,      ug_expression;
        Name,       "area"; 
        Value,      area(objet:surface_area:);
};

это не сработало, приложение вылетает, говоря, что это не класс surface_area.

Я также не знаю, как сделать заявление на языке.

Это было очень сложно создать, информации в Интернете почти нет, и я не смог найти документацию по функциям и т. Д., Все, что было методом проб и ошибок.

был бы очень признателен за некоторую помощь и руководство по этому большое спасибо

1 ответ

Я узнаю, чтобы найти области и объемы, если у кого-то есть такая же проблема. Тем не менее можно выяснить, как сделать оператор if, потому что я не могу найти, почему спросить, является ли объект твердым телом или поверхностью.

Однако оба работают, если и твердые тела и поверхность, просто дайте 0 для объема поверхности, очевидно.

вот код:

(child uncached) area:          {
    Class,          ug_expression;
    Name,           "area";
    Value,          object:Surface_Area:;
};
(child uncached) Volume:        {
    Class,          ug_expression;
    Name,           "Volume";
    Value,          object:Volume:;
};

Как это может помочь любому, кто пытается создать пользовательские функции NX

Другие вопросы по тегам