我是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。
我也不知道如何用语言编写if语句。
这是非常难以创建这个,几乎没有在线信息,我找不到功能等文档,一切都是试验和错误。
非常感谢对此的一些帮助和指导。非常感谢
如果有人遇到同样的问题我会找到区域和卷。仍然可以弄清楚如何做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功能