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);  //重新切回属性卡          

                    }

                } 

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

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

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

相关推荐
CANI_PLUS36 分钟前
python 列表-元组-集合-字典
开发语言·python
老秦包你会39 分钟前
QT第六课------QT界面优化------QSS
开发语言·qt
難釋懷40 分钟前
JavaScript基础-history 对象
开发语言·前端·javascript
东方佑42 分钟前
使用 Python 自动处理 Excel 数据缺失值的完整指南
开发语言·python·excel
看到我,请让我去学习1 小时前
C语言快速入门-C语言基础知识
c语言·开发语言·c++·vscode
froginwe112 小时前
CSS 属性选择器详解
开发语言
Non importa2 小时前
【初阶数据结构】线性表之双链表
c语言·开发语言·数据结构·c++·考研·链表·学习方法
躺着听Jay2 小时前
QT错误集合
开发语言·qt
长流小哥2 小时前
Qt 动画学习 入门Qt,怎能少了学动画!
开发语言·qt·学习
学习同学2 小时前
C++初阶知识复习 (31~45)
开发语言·c++