首页 文章

Excel < - > Catia连接:tlb引用问题

提问于
浏览
-1

我正在编写一个excel宏,需要与CATIA合作绘图"on the fly" . 这意味着它需要从excel表中将一些东西放在绘图上,并根据用户需求从绘图到excel表 . 听起来很简单但是..在我的特定情况下,CATIA不是在本地安装的,而是在公司的服务器上安装的 . 为了获得连接用户需要通过"CNEXT.exe /regserver"命令注册它,首先查找网络磁盘上CNEXT.exe的路径 . 所以他需要启动命令:“ j:\appl...\CNEXT.exe /regsever ” . 在我的宏中,我需要通过引用* .tlb文件 Build 与CATIA对象的连接:Tools \ References并选择适当的参考(在我的情况下为 CATIA V5 InfInterfaces Object LibraryCATIA V5 DraftingInterfaces Object Library

参考资料截图

References screenshot

它仍然很容易,现在很棘手:只要我在工作并且网络磁盘可用,一切正常 . 一旦我尝试在外面打开这个excel文件,它就会挂起 . 我发现我定义的引用指示存储在CATIA所在的同一位置的* .tlb文件 . :(我正在开发的这个excel文件必须与我们的供应商共享,他们需要填写他们需要填写的manualy工作表,以及我公司的其他人无法访问CATIA以便能够查看它 . 一般的想法是,宏应该只由人们使用CATIA运行,手动修改工作表,审查应该可供其他人使用 . 在目前的情况下,无法访问“j:...”网络驱动器,任何人都无法打开excel文件,没有提到我正在写的启动宏 .

我的问题是:是否有可能强制excel不检查lanuch中的引用,并且仅通过其中一个初始化过程中的某个步骤来执行此操作?我写了一些代码来检查CATIA的可用性,其中Excel可以检查这些引用 . 另一个想法是以某种方式嵌入* .tlb文件或他们的内容在我的excel文件中永久可供任何人使用 .

我试图在代码中添加对* .tlb文件的引用,以指示相同的* .tlb文件,但是复制到我的计算机上的某个本地目录(为了能够在公司外部编写代码),但我得到了错误信息:

错误消息 - 未定义用户定义的类型

Error message - User-defined type not defined

小更新 - 我只是关于早期和晚期绑定的红色 . 我做了一个测试并编写了一个代码,它将CATIA对象声明为Object,而不是INFITF.Application . 现在我可以在不参考任何* .tlb文件的情况下进行编码 . 现在问题已经消失了,而且intellisense也消失了:(我无法想象没有它就编写代码 . 所以我想到了一个想法,我可以用* .tlb文件正确指示引用代码然后只是在将宏发布到整体用法之前,我可以将声明从“CATIA特定”交换到对象类型,但是这需要编写一个宏来修改宏来为整个代码中的所有实例更改这些声明:( :( :( . . 请帮帮我..

1 回答

  • 0

    我建议你维护两个excel文件“主文件”,其中包含与catia通信的宏和“数据文件”来存储数据 . “数据文件”不会有任何与catia通信的宏 .

    然后,您可以使用主文件中的表单/文件浏览VBA代码来浏览和选择“数据文件”,然后您可以轻松读取数据文件并执行操作 .

    我是为客户做的,相信我,比这更容易

    编写一个宏来修改宏,以便为整个代码中的所有实例更改这些声明

相关问题