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

                    }

                } 

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

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

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

相关推荐
Ada's2 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_962885723 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪3 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
倔强的石头1065 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
传人once5 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
NeilYuen5 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
蜗牛互联网6 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
weixin_307779136 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
ttwuai6 小时前
Go后台管理系统开源项目:4个官方仓库怎么追溯和核验
开发语言·golang·开源
谢亮_vipxieliang6 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang