SldWorks问题1: 在装配体中获取零件的面

问题

我为零件的某个面进行了命名,以此查找,进行配合。

在使用先前写好的查找方法时,有时会出现找不到的情况。

然后捣鼓了半天,发现:

只有当“零件文档显示的配置,和已放置的零件配置一致”时,才能找到所需面。

我之前测试时,只有默认配置,就没有出现问题。

API文档上真是一点也不提啊。

在这里插入图片描述

处理

设置零件文档显示的配置,使其和零件当前使用的配置一致。

在这里插入图片描述

// 在装配体文档中,找到零件中已命名的面
public static Entity GetFaceByName(AssemblyDoc assemblyDoc, string partName, string faceName)
 {
     Component2 swComponent = assemblyDoc.GetComponentByName(partName);
     ModelDoc2 swModel = swComponent.GetModelDoc2() as ModelDoc2;
     
    // 这一步很重要,调整零件文档显示的配置,否则下方 swFace 可能为空
     swModel.ShowConfiguration2(swComponent.ReferencedConfiguration);
    
     PartDoc swPart = swModel as PartDoc;
     Entity swEntity = swPart.GetEntityByName(faceName, (int)swSelectType_e.swSelFACES) as Entity;

     // 这一步很重要,使用这个方法才能在装配体中拿到零件的面
     Entity swFace = swComponent.GetCorrespondingEntity(swEntity) as Entity;

     return swFace;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值