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

                    }

                } 

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

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

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

相关推荐
techdashen3 分钟前
Go 1.25 新增 `reflect.TypeAssert`:更直接、更高效地从 `reflect.Value` 取出类型值
开发语言·后端·golang
2zcode6 分钟前
项目文档:基于MATLAB低采样率ISAR成像的快速稀疏重建算法研究
开发语言·算法·matlab
xixi092418 分钟前
JMeter5.6.3基础使用教程1
java·开发语言
এ慕ོ冬℘゜19 分钟前
原生 JS 实现自定义单选日历组件(无 UI 库、纯手写、禁用过去日期)
开发语言·javascript·ui
Ulyanov30 分钟前
刚体动力学方程——牛顿-欧拉与陀螺效应的奥秘
开发语言·python·目标跟踪·雷达电子对抗·导引头
罗超驿42 分钟前
15.Java异常处理:从束手无策到从容应对
java·开发语言
MoonBit月兔1 小时前
MoonBit v0.10.4版本更新
开发语言·人工智能·编程·moonbit
小樱花的樱花1 小时前
Linux 多线程编程:互斥锁(Mutex)详解
linux·c语言·开发语言
滴滴滴嘟嘟嘟.2 小时前
强化学习-PPO 奖励塑形实验:Pendulum-v1 中角速度惩罚权重的影响
开发语言·python
灵晔君2 小时前
【C++】标准模板库STL——set /multiset/map /multimap
开发语言·c++