C# SolidWorks二次开发-第100篇 属性卡刷新方案

SolidWorks推出属性卡应该很多年了吧,毕竟可以用户自己定义界面,而且方便修改,毕竟点击自带的的属性按钮再去修改要操作好几次。

我们今天讲一个很简单的功能要求,就是在SolidWorks中实现零件的编码问题。

毕竟设计好的东西后面需要生产,进各种系统,进行流转。

需求:

设计在设计模型过程中,在右侧属性编码卡中选择零部件的类型信息,然后在插件中点击一个按钮,根据零部件信息进行编码,编码完成后要直接显示在属性编辑卡片中。

由于我能力有限,编码功能应该做不出来,我就画个示意吧。

然后常规的分解一下:

点击编码功能按钮->读取当前零件类型属性->弹出编码框->点击编码->取码->写属性到零件中->刷新属性卡

前面这些操作呢,可能也还有一些问题的,比如,用户选了,但是还没有点应用按钮,这时可能就需要重新在界面上选一次了。

当前这不是我们今天的重点内容,重点内容是,api里面就没提供刷新属性卡的功能。当然其实也是重新加载属性卡而已。

经过我的测试,发现零件下面只有切换右侧的TaskPane栏,会重新加载属性值进来。

装配体下面的话是可以清空选择之后 ,再选择特征树中的名称,也会重新加载选中零件的属性值 (这次不考虑)。

那我们就去api中找相关的api

那基本上伪代码就可以是这样了

csharp 复制代码
                if(swApp.IActiveDoc2!=null)
                {
                    var swModel= swApp.IActiveDoc2;
                    if (swModel != null)
                    {
                                        
                        var configName = swModel.ConfigurationManager.ActiveConfiguration.Name;

                        var swConfig = (Configuration)swModel.GetConfigurationByName(configName);

                        var manger = swModel.Extension.CustomPropertyManager[configName];
        
                        //增加一个属性到此配置
                        manger.Add3("零件部件编码", (int)swCustomInfoType_e.swCustomInfoText, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"), (int)swCustomPropertyAddOption_e.swCustomPropertyReplaceValue);
                        swApp.ActivateTaskPane(1);  //切换到库特征,当然也可能 改成别的。
                        swApp.ActivateTaskPane(5);  //重新切回属性卡          

                    }

                } 

我这里只是示意一下,真正的编码逻辑还是要告各位去实现了哈

基本上就结束了,留个思考题。

能否不需要去点编码按钮,在设计改完零部件类型等相关属性之后 ,在他点完应用,就自动去编码,让用户无感操作?

相关推荐
aramae7 分钟前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
Neil201336 分钟前
ajax跨域请求
c#
唐青枫1 小时前
别把 Razor 当成几段 HTML:C#.NET Razor Pages、MVC 视图与实战详解
c#·.net
jimy11 小时前
readelf 查看“派生类”的vtable符号
开发语言·c++
ctlover2 小时前
排序与查找算法详解
开发语言·python
YYYing.2 小时前
【C++进阶系列 (七)】C++ RTTI 深度剖析:从 typeid 到 dynamic_cast 的底层之旅
开发语言·c++·c/c++·rtti
nvvas3 小时前
Java 入门(四):数组——数据的集合管理
java·开发语言
Y3815326624 小时前
SERP 数据清洗实战:字段标准化、日期解析与去重键
开发语言·数据库·python·python数据库
君顾14 小时前
本地城市低空经济管理系统定制:城市级低空运营平台架构与落地实战
java·开发语言·飞手
多多鼠5 小时前
System Prompt 的“版本漂移”问题:从变更管理到 A/B 测试体系
开发语言·网络·人工智能·python·langchain