2014-06-18 3 views
0

지식 퓨전을 처음 접했습니다. 표면 또는 솔리드의 값을 표현식에 추가 할 .dfa 스크립트를 작성하려고합니다. 탁월하다.NX9/UG 지식 퓨전 스크립트를 사용하여 표현식에 값을 추가하십시오.

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 문을 작성하는 방법을 알지 못합니다.

매우 어렵습니다. 온라인으로 정보가 거의 없으며 기능에 관한 문서를 찾을 수 없습니다. 시행 착오입니다.

아주 많이 나는 사람이 같은 문제가있는 경우 지역과 볼륨을 찾기 위해 찾아

답변

0

너무 많은이 감사에 도움과지도를 부탁드립니다. 개체가 단색인지 표면인지 묻지 않는 이유 때문에 if 문을 수행하는 방법을 여전히 파악할 수 있습니다.

그러나 둘 다 솔리드와 표면이 모두 작동하면 표면의 부피가 0이됩니다. 여기

코드입니다 : 그것은 사용자 정의 NX 기능을 만들려고 사람을 도울 방법

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