2014-06-18 2 views
0

Je suis nouveau à Knowledge Fusion, j'essaie de créer un script .dfa qui va ajouter des valeurs d'une surface ou solide aux expressions, afin que je puisse exporter exceller.NX9/UG Knowledge Fusion script pour ajouter des valeurs aux expressions

Voici ce que j'ai jusqu'à présent:

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:)); 

Cette partie trouve les centres et l'ajouter aux expressions:

(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:); 
}; 

Maintenant, je suis en train d'ajouter surface si l'objet sélectionné est une surface, ou un volume c'est un corps solide.

ce que j'ai essayé:

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

cela ne fonctionne pas, l'application se bloque, affirmant que n'est pas surface_area de classe.

Je ne sais pas non plus comment faire une instruction if dans la langue.

Il a été très difficile de créer ceci, il n'y a presque pas d'information en ligne et je n'ai pas pu trouver de documentation sur les fonctions, etc, tout a été jusqu'à présent une tentative et une erreur.

apprécierions beaucoup d'aide et des conseils sur cette Merci beaucoup

Répondre

0

je trouve de trouver des domaines et des volumes si quelqu'un a le même problème. Encore pourrait comprendre comment faire l'instruction if parce que je ne peux pas trouver un pourquoi demander si l'objet est un solide ou une surface.

Cependant, les deux fonctionnent si les solides et la surface, donnent simplement 0 pour le volume d'une surface évidemment.

Voici le code:

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

Comment ça aide toute personne essayant de créer des fonctions personnalisées NX

Questions connexes