我在NX中使用收敛的面体,在NXOpen中使用NXOpen。在此过程中,我使用UFSession.Facet.AskAdjacentFacet函数获取每个方面的相邻方面。但是在使用这个特定的命令时,NXOpen会抛出错误,说明"NXOpen.NXException:这个操作不支持facet对象“。我查看了NXOpen文档(https://docs.plm.automation.siemens.com/data_services/resources/nx/10/nx_api/en_US/custom/ugopen_doc/uf_facet/uf_facet_eg2.c)中给出的示例,并使用了类似的方法,但是这个错误以任何方式显示出来。下面是我尝试过的脚本。
“”“
public static void Main(string[] args)
{
NXOpen.UF.UFFacet myFacet = UFSession.Facet;
int facetID;
int edgeID;
int adjFacID;
int edgeIDinAdjFac;
int null_facet_ID = UFConstants.UF_FACET_NULL_FACET_ID;
facetID = null_facet_ID;
foreach (NXOpen.Facet.FacetedBody facetBody in workPart.FacetedBodies)
{
myFacet.CycleFacets(facetBody.Tag, ref facetID); // initialise for cycling
while (facetID != null_facet_ID)
{
List<int> Adj_fac_list = new List<int>();
for (edgeID = 0; edgeID < 3; edgeID++)
{
myFacet.AskAdjacentFacet(facetBody.Tag, facetID, edgeID, out adjFacID, out edgeIDinAdjFac);
if (adjFacID != UFConstants.UF_FACET_NULL_FACET_ID)
{
Adj_fac_list.Add(adjFacID);
}
}
}
}
}注意:我可以在函数UFSession.FACET.AskNumVertsInFacet中使用相同的模型标记和facet id,并且脚本工作得很好。但我不知道为什么AskAdjacentFacet不起作用。有谁能帮我解释一下为什么会有错误,以及如何让它起作用?
发布于 2022-04-11 19:03:19
首先,我看到的问题是,您还没有初始化变量myFacet,而它是null。因为它是null,所以您不能调用它的成员。
因此,将代码的一行更改为
NXOpen.UF.UFFacet myFacet = UFSession.Facet;至
NXOpen.UF.UFFacet myFacet = UFSession.GetUFSession().Facet;https://stackoverflow.com/questions/71828235
复制相似问题