iCAx开思工具箱

标题: 关于遍历面得问题(C#) [打印本页]

作者: littlemou    时间: 2009-6-17 12:35
标题: 关于遍历面得问题(C#)
基于OPEN C得实体遍历,可以得到一个part的body和face edge的TAG

在NX。net中,body和face dege都是一种类型,里面不仅仅包含TAG信息。

请问在。net中,哪个命令可以遍历实体,返回值不是TAG,而是face类型的返回值

如果不行,当只知道了face的TAG值,如何找到FACE类型的值呢?

谢谢
作者: littlemou    时间: 2009-6-17 12:36
在。net中,常用findobject,后面的string怎么定义呢?
有什么规范吗?
作者: tealy    时间: 2009-6-17 23:02
.NET里面是将各种类型联合到一起,形成一个完整的类关联,不像OPEN C那样各种类型是单独独立的。
首先是.NET里面的根类型。
Session theSession = NXOpen.Session.GetSession(); //首先获得操作会话,一切的起点
Body[] bodies = theSession.Parts.Work.Bodies.ToArray();  //获得工作组件内部所有实体,不必担心一下获取所有实体速度会变慢,我曾经获取过1000个实体,速度没有任何问题,然后Body类型下面就包含Face, edge, Feature可以使用下面函数来获得
    public Edge[] GetEdges();
    public Face[] GetFaces();
    public Feature[] GetFeatures();
依然是数组。
当然也可以通过Face来获得拥有它的实体public Body GetBody();
也可以获得Face的edge,public Edge[] GetEdges();

至于FindObject的string 就是部件导航器里面的特征名,但需要是英文的,比如BLOCK(0),CYLINDER(1)这样的,但这仅仅是打开单个部件的时候是这样,在打开装配体时候,需要PROTO#.Bodies|BLOCK(0)这样表示,所以不是很常用,

在使用NXOpen.UF类时经常需要将TAG转换为类,这时候应该强制转换类型:
(类型)NXObjectManager.Get(tag)

乱乱的说了很多,希望对你有帮助。
作者: ffhi    时间: 2009-6-18 11:16
学习了,谢谢!
3#  
作者: littlemou    时间: 2009-6-21 12:58
说的真是太好了!
非常有用!

谢谢
作者: jiangziyi_0    时间: 2009-8-7 01:17
grip能做到这一点吗
怎么做,请高手指点




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3