添加自定义属性宏代码报错

在尝试使用VBA在SolidWorks自定义属性中添加公式时遇到错误。代码段展示了尝试设置物料编码和名称的逻辑,但遇到了问题。求助如何修改代码以成功将计算后的值写入自定义属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面一段代码,想在自定义属性中加入一串公式:Part.Extension.CustomPropertyManager("").Set("物料编码",Rtrim(Left(Part.GetTitle,InStr(Part.GetTitle," ")))),如图,以下代码总是报错,求大神帮助看怎么改,才能成功把后面打红的成功写入到自定义属性里,像图2的成功效果图片

'从这里开始复制:
'定义solidwork
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim strmat As String
Dim strmass As String
Dim strYes As String
Dim tempvalue As String
Sub main()
'link solidworks
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

vCustInfoNameArr2 = Part.GetCustomInfoNames

  If Not IsEmpty(vCustInfoNameArr2) Then
     For Each vCustInfoName2 In vCustInfoNameArr2
         bRet = Part

### 关于 QPushButton 和点击事件中的错误分析 在 C++ 的 Qt 开发环境中,`QPushButton` 是用于创建按钮控件的核心类之一。当遇到 `hitButton@QPushButton` 或者与 `QPoint` 相关的报错时,通常表明存在函数签名不匹配或者动态链接库 (DLL) 加载失败的情况。 #### 错误原因分析 1. **函数签名冲突** 报错信息提到无法定位程序输入点 `hitButton@QPushButton`,这可能是因为编译器或运行环境未能找到该方法的具体实现。需要注意的是,在标准的 Qt 库中,并不存在名为 `hitButton` 的公共成员函数[^2]。如果此名称来自自定义扩展,则可能是由于未正确加载对应的 DLL 文件所致。 2. **动态链接库问题** 使用 `windeployqt` 工具部署应用程序时,默认会复制一组预设的依赖项到目标目录下。然而,某些特定功能所需的额外模块可能会被忽略掉。例如,涉及图形处理的功能可能需要显式添加如 `Qt5Widgets.dll`, `Qt5Gui.dll` 等文件。此外,版本兼容性也是一个重要因素——不同版本间的 API 可能有所变化甚至移除旧有接口。 3. **样式表设置的影响** 虽然给定样例展示了如何通过调用 setStyleSheet 方法来定制外观属性[^1],但这部分操作一般不会直接影响到内部逻辑行为比如鼠标按下检测机制等。不过为了保险起见还是建议检查一下是否有其他地方修改了默认的行为模式从而间接引发了上述异常状况。 #### 解决方案探讨 以下是几种可行的方法用来排查并修复此类问题: - #### 验证是否存在自定义重写 如果项目中有继承自 QPushButton 并重新实现了 mousePressEvent() 函数的话,请仔细核对该处代码是否按照官方文档规定的方式进行了编写以及参数传递是否准确无误。 - #### 更新 windeployqt 参数配置 尝试手动指定更多选项让工具能够识别全部必要的组件资源。可以尝试执行命令如下所示: ```bash windeployqt --qmldir your_qml_directory_path application_executable_file.exe ``` - #### 明确声明使用的具体版本号 在 pro 文件里加入 VERSION 宏定义语句指明所依据的基础框架级别;同时也要确认本地安装包里的头文件路径指向最新稳定发行版而非测试分支之类不稳定状态下的产物。 ```cpp #include <QPushButton> #include <QDebug> void testFunction(){ QPushButton button("Test Button"); QObject::connect(&button,SIGNAL(clicked()), [&]() { qDebug()<<"Button clicked!"; }); } ``` 以上片段展示了一个简单的信号槽连接例子,其中运用 lambda 表达式简化匿名回调处理器结构。确保类似的绑定关系均处于良好工作状态下有助于减少潜在隐患的发生几率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值