C# SolidWorks 二次开发 API --- 包围框(Bounding Box)

很多情况下我们都要获取零件的尺寸,用来包装. 在2018版之前,solidworks提供了GetBox这个函数来获取相关数据.

但是默认获取的都是零件坐标系方向上的,当然特定情况下我们也是可以通过旋转零件来获取最小空间上的包装尺寸.

在2018版中,Solidworks提供了一个自带的BoundingBox 新功能.它默认显示的就是空间上的最小方向,最好的一点就是它会随着零件的修改自动更新.虽然测试下来有一些bug.但是平时使用没有问题.

提示下: 装配体中没有这个功能,而之前版本中提供的装配体的那个GetBox尺寸不准确,要获取精确的包装箱大小,可以先把装配体存成一个零件,再通过此方法来获取大小.

 

 

上代码:

 private void btnBounding_Click(object sender, EventArgs e)
        {
            //首先请打开一个零件.

            ISldWorks swApp = Utility.ConnectToSolidWorks();

            ModelDoc2 swModel = swApp.ActiveDoc;

            FeatureManager featureManager = swModel.FeatureManager;

            PartDoc partDoc = (PartDoc)swModel;
            //通过特征名字获取特征
            Feature feature = partDoc.FeatureByName("Bounding Box");
            int longstatus;
            if (feature == null)//特征为null时将创建Bounding Box

            {
                feature = featureManager.InsertGlobalBoundingBox((int)swGlobalBoundingBoxFitOptions_e.swBoundingBoxType_BestFit, true, false, out longstatus);
            }

            // 显示 Bounding Box sketch
            var b = swModel.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swViewDispGlobalBBox, true);

            //获取自动生成的属性值
            string str;
            string str2;
            string str3;
            string str4;
            IConfiguration configuration = swModel.GetActiveConfiguration();
            CustomPropertyManager manager2 = swModel.Extension.get_CustomPropertyManager(configuration.Name);

            manager2.Get3("Total Bounding Box Length", true, out str, out str2);
            manager2.Get3("Total Bounding Box Width", true, out str, out str3);
            manager2.Get3("Total Bounding Box Thickness", true, out str, out str4);

            swApp.SendMsgToUser($"size={str2}x{str3}x{str4}");
        }

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paine Zeng

如果对有帮助,请我喝咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值