NX9/UG知识融合脚本,为表达式添加值



我是新的知识融合,我试图创建一个。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。

我也不知道如何在语言中使用if语句。

创建这个是非常困难的,网上几乎没有信息,我找不到关于函数等的文档,到目前为止,一切都是反复试验。

将非常感谢在这方面的帮助和指导Thank so much

如果有人有同样的问题,我想找到面积和体积。我还是能弄清楚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函数

最新更新